registerResourceModule function
Make a resource family reachable as client.resourceByName(resourceName).
Implementation
void registerResourceModule(String resourceName, ResourceFactory factory) {
if (resourceName.startsWith('_') ||
!_identifier.hasMatch(resourceName) ||
_reservedWords.contains(resourceName)) {
throw SdkUsageError(
"cannot register resource '$resourceName': a resource name must be a "
'Dart identifier that is not a reserved word and does not start with an '
'underscore, or no lookup could ever reach it - pick another name');
}
if (_clientMemberNames.contains(resourceName)) {
throw SdkUsageError(
"cannot register resource '$resourceName': ExsitedClient already "
'has a member of that name, and it would win every lookup - pick '
'another name');
}
final registered = _resourceModules[resourceName];
if (registered != null && registered != factory) {
// Re-registering the same factory is a no-op; a different one is refused.
throw SdkUsageError(
"cannot register resource '$resourceName': it is already registered "
'against a different factory, and clients built before the change would '
'keep the old one - pick another name');
}
_resourceModules[resourceName] = factory;
}