@alterior/runtime 3.6.4 → 3.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,UAAU,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAsB,MAAM,cAAc,CAAC;AAGtE;;;GAGG;AACH,qBAAa,gBAAgB;IACzB,QAAQ,EAAG,gBAAgB,CAAC;IAC5B,MAAM,EAAG,GAAG,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAEnB,QAAQ,CAAC,UAAU,EAAG,gBAAgB;IACtC,QAAQ,CAAC,QAAQ,EAAG,GAAG;gBADd,UAAU,EAAG,gBAAgB,EAC7B,QAAQ,EAAG,GAAG;CAG9B;AAED;;;;GAIG;AACH,qBAAa,OAAO;gBACJ,WAAW,EAAG,QAAQ;IAIlC,WAAW,EAAG,gBAAgB,EAAE,CAAM;IACtC,OAAO,EAAG,UAAU,EAAE,CAAM;IAC5B,SAAS,EAAG,cAAc,EAAE,CAAQ;IAEpC;;;OAGG;IACH,UAAU,CAAC,CAAC,EAAE,IAAI,EAAG;QAAE,KAAI,GAAG,IAAI,OAAA,GAAI,CAAC,CAAA;KAAE,GAAG,CAAC;IAI7C;;;OAGG;IACH,SAAS,EAAG,QAAQ,EAAE,CAAM;IAE5B;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,EAAG,QAAQ,EAAE;IAQ1C;;OAEG;IACH,SAAS;IAqCT,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED,kBAAkB,CAAC,IAAI,EAAG,MAAM,EAAE;IA2DlC;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAG,MAAM;IAO5B,OAAO,CAAC,SAAS,CAAmB;IAEpC;;;OAGG;IACH,IAAI,QAAQ,aAEX;IAED;;;;;;OAMG;IACH,IAAI,CAAC,QAAQ,EAAG,QAAQ,GAAG,cAAc,EAAE;IA6B3C;;;;;;;;OAQG;IACG,IAAI;IAMV;;;;;;;OAOG;IACH,KAAK;IAOL;;OAEG;IACG,QAAQ;IAKd;;;;;;;OAOG;IACI,oBAAoB,CAAC,MAAM,EAAG,UAAU,GAAG,gBAAgB;IAIlE;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAmDxB"}
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,UAAU,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAsB,MAAM,cAAc,CAAC;AAGtE;;;GAGG;AACH,qBAAa,gBAAgB;IACzB,QAAQ,EAAG,gBAAgB,CAAC;IAC5B,MAAM,EAAG,GAAG,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAEnB,QAAQ,CAAC,UAAU,EAAG,gBAAgB;IACtC,QAAQ,CAAC,QAAQ,EAAG,GAAG;gBADd,UAAU,EAAG,gBAAgB,EAC7B,QAAQ,EAAG,GAAG;CAG9B;AAED;;;;GAIG;AACH,qBAAa,OAAO;gBACJ,WAAW,EAAG,QAAQ;IAIlC,WAAW,EAAG,gBAAgB,EAAE,CAAM;IACtC,OAAO,EAAG,UAAU,EAAE,CAAM;IAC5B,SAAS,EAAG,cAAc,EAAE,CAAQ;IAEpC;;;OAGG;IACH,UAAU,CAAC,CAAC,EAAE,IAAI,EAAG;QAAE,KAAI,GAAG,IAAI,OAAA,GAAI,CAAC,CAAA;KAAE,GAAG,CAAC;IAI7C;;;OAGG;IACH,SAAS,EAAG,QAAQ,EAAE,CAAM;IAE5B;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,EAAG,QAAQ,EAAE;IAQ1C;;OAEG;IACH,SAAS;IAiCT,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED,kBAAkB,CAAC,IAAI,EAAG,MAAM,EAAE;IA2ClC;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAG,MAAM;IAO5B,OAAO,CAAC,SAAS,CAAmB;IAEpC;;;OAGG;IACH,IAAI,QAAQ,aAEX;IAED;;;;;;OAMG;IACH,IAAI,CAAC,QAAQ,EAAG,QAAQ,GAAG,cAAc,EAAE;IA6B3C;;;;;;;;OAQG;IACG,IAAI;IAMV;;;;;;;OAOG;IACH,KAAK;IAOL;;OAEG;IACG,QAAQ;IAKd;;;;;;;OAOG;IACI,oBAAoB,CAAC,MAAM,EAAG,UAAU,GAAG,gBAAgB;IAIlE;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAmDxB"}
package/dist/modules.js CHANGED
@@ -68,29 +68,25 @@ class Runtime {
68
68
  * Perform runtime configuration steps
69
69
  */
70
70
  configure() {
71
- let environment = this.injector.get(common_1.Environment);
72
- let rolesService = this.injector.get(roles_service_1.RolesService);
73
- let allRoles = rolesService.roles;
74
- if (environment.get().ALT_ROLES_ONLY) {
75
- let value = environment.get().ALT_ROLES_ONLY;
76
- let roles = value.split(',')
77
- .map(x => allRoles.find(y => y.identifier == x))
78
- .map(x => x.class);
79
- rolesService.configure({ mode: 'only', roles });
71
+ let roleEnv = this.injector.get(common_1.Environment)
72
+ .get();
73
+ let roleMode = 'default';
74
+ let roles = [];
75
+ if (roleEnv.ALT_ROLES_ONLY) {
76
+ roleMode = 'only';
77
+ roles = roleEnv.ALT_ROLES_ONLY.split(',');
80
78
  }
81
- else if (environment.get().ALT_ROLES_ALL_EXCEPT) {
82
- let value = environment.get().ALT_ROLES_ALL_EXCEPT;
83
- let roles = value.split(',')
84
- .map(x => allRoles.find(y => y.identifier == x))
85
- .map(x => x.class);
86
- rolesService.configure({ mode: 'all-except', roles });
79
+ else if (roleEnv.ALT_ROLES_ALL_EXCEPT) {
80
+ roleMode = 'all-except';
81
+ roles = roleEnv.ALT_ROLES_ALL_EXCEPT.split(',');
87
82
  }
88
- else if (environment.get().ALT_ROLES_DEFAULT_EXCEPT) {
89
- let value = environment.get().ALT_ROLES_DEFAULT_EXCEPT;
90
- let roles = value.split(',')
91
- .map(x => allRoles.find(y => y.identifier == x))
92
- .map(x => x.class);
93
- rolesService.configure({ mode: 'default-except', roles });
83
+ else if (roleEnv.ALT_ROLES_DEFAULT_EXCEPT) {
84
+ roleMode = 'default-except';
85
+ roles = roleEnv.ALT_ROLES_DEFAULT_EXCEPT.split(',');
86
+ }
87
+ let rolesService = this.injector.get(roles_service_1.RolesService);
88
+ if (roleMode !== 'default') {
89
+ rolesService.configure({ mode: roleMode, roles });
94
90
  }
95
91
  if (typeof process !== 'undefined' && process.argv) {
96
92
  this.processCommandLine(process.argv.slice(2));
@@ -103,9 +99,8 @@ class Runtime {
103
99
  return this._selfTest;
104
100
  }
105
101
  processCommandLine(args) {
106
- let rolesService = this.injector.get(roles_service_1.RolesService);
107
102
  let argIndex = 0;
108
- let getArgumentValue = () => {
103
+ let optionValue = () => {
109
104
  let arg = args[argIndex];
110
105
  if (argIndex + 1 >= args.length)
111
106
  throw new Error(`You must specify a value for option ${arg}`);
@@ -115,37 +110,30 @@ class Runtime {
115
110
  }
116
111
  return value;
117
112
  };
118
- let allRoles = rolesService.roles;
113
+ let roleMode = 'default';
114
+ let roles;
119
115
  for (; argIndex < args.length; ++argIndex) {
120
116
  let arg = args[argIndex];
121
117
  if (arg === '--self-test') {
122
118
  this._selfTest = true;
123
119
  }
124
120
  else if (arg == '-r' || arg == '--roles-only') {
125
- let value = getArgumentValue();
126
- let roles = value.split(',')
127
- .map(x => allRoles.find(y => y.identifier == x))
128
- .filter(x => x)
129
- .map(x => x.class);
130
- rolesService.configure({ mode: 'only', roles });
121
+ roleMode = 'only';
122
+ roles = optionValue().split(',');
131
123
  }
132
124
  else if (arg == '-x' || arg == '--roles-skip') {
133
- let value = getArgumentValue();
134
- let roles = value.split(',')
135
- .map(x => allRoles.find(y => y.identifier == x))
136
- .filter(x => x)
137
- .map(x => x.class);
138
- rolesService.configure({ mode: 'default-except', roles });
125
+ roleMode = 'default-except';
126
+ roles = optionValue().split(',');
139
127
  }
140
128
  else if (arg == '-R' || arg == '--roles-all-except') {
141
- let value = getArgumentValue();
142
- let roles = value.split(',')
143
- .map(x => allRoles.find(y => y.identifier == x))
144
- .filter(x => x)
145
- .map(x => x.class);
146
- rolesService.configure({ mode: 'all-except', roles });
129
+ roleMode = 'all-except';
130
+ roles = optionValue().split(',');
147
131
  }
148
132
  }
133
+ let rolesService = this.injector.get(roles_service_1.RolesService);
134
+ if (roleMode !== 'default') {
135
+ rolesService.configure({ mode: 'only', roles });
136
+ }
149
137
  }
150
138
  /**
151
139
  * Fire an event to all modules which understand it. Should be upper-camel-case, meaning
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export interface RoleRegistration {
12
12
  * The instance of the module being registered. This should be `this` for the caller in most cases, as it should be
13
13
  * called from an Alterior module's `altOnInit()` method.
14
14
  */
15
- instance: any;
15
+ instance?: any;
16
16
  /**
17
17
  * Set to false to cause this role to be disabled unless explicitly asked for. When unspecified, the default is
18
18
  * true.
@@ -1 +1 @@
1
- {"version":3,"file":"roles.service.d.ts","sourceRoot":"","sources":["../src/roles.service.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,GAAG,YAAY,GAAG,MAAM,CAAG;AAE3F,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAG,qBAAqB,CAAC;IAC7B,KAAK,EAAG,GAAG,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,QAAQ,EAAG,GAAG,CAAC;IAEf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAG,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IAC/C,KAAK,EAAG,GAAG,CAAC;IACZ,OAAO,EAAG,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBACa,YAAY;;IAKrB,YAAY,EAAG,GAAG,EAAE,CAAQ;IAC5B,cAAc,EAAG,iBAAiB,CAAkC;IACpE,MAAM,EAAG,SAAS,EAAE,CAAM;IAE1B,IAAI,aAAa,IAAK,iBAAiB,CAEtC;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAG,gBAAgB;IAYpC,IAAI,KAAK,IAAI,SAAS,EAAE,CAEvB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,SAAS,EAAE,CAahC;IAED,IAAI,WAAW,IAAI,SAAS,EAAE,CAE7B;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAG,iBAAiB;IAOpC,YAAY,CAAC,eAAe,KAAA;IAS5B,OAAO,CAAC,EAAE,EAAG,MAAM;IASb,UAAU;IAMhB,MAAM,UAAS;IAET,QAAQ;IAYR,OAAO;CAWhB"}
1
+ {"version":3,"file":"roles.service.d.ts","sourceRoot":"","sources":["../src/roles.service.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,GAAG,YAAY,GAAG,MAAM,CAAG;AAE3F,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAG,qBAAqB,CAAC;IAC7B,KAAK,EAAG,GAAG,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAG,GAAG,CAAC;IAEhB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAG,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IAC/C,KAAK,EAAG,GAAG,CAAC;IACZ,OAAO,EAAG,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBACa,YAAY;;IAKrB,YAAY,EAAG,GAAG,EAAE,CAAQ;IAC5B,cAAc,EAAG,iBAAiB,CAAkC;IACpE,MAAM,EAAG,SAAS,EAAE,CAAM;IAE1B,IAAI,aAAa,IAAK,iBAAiB,CAEtC;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAG,gBAAgB;IAYpC,IAAI,KAAK,IAAI,SAAS,EAAE,CAEvB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,SAAS,EAAE,CAmBhC;IAED,IAAI,WAAW,IAAI,SAAS,EAAE,CAE7B;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAG,iBAAiB;IAYpC,YAAY,CAAC,eAAe,KAAA;IAY5B,OAAO,CAAC,EAAE,EAAG,MAAM;IASb,UAAU;IAMhB,MAAM,UAAS;IAET,QAAQ;IAYR,OAAO;CAWhB"}
@@ -25,8 +25,9 @@ let RolesService = class RolesService {
25
25
  * Register a role which can be managed by this service.
26
26
  */
27
27
  registerRole(role) {
28
+ var _a, _b;
28
29
  let roleState = Object.assign(role, {
29
- class: role.instance.constructor,
30
+ class: (_b = (_a = role.instance) === null || _a === void 0 ? void 0 : _a.constructor) !== null && _b !== void 0 ? _b : {},
30
31
  running: false
31
32
  });
32
33
  this._roles.push(roleState);
@@ -39,14 +40,23 @@ let RolesService = class RolesService {
39
40
  */
40
41
  get effectiveRoles() {
41
42
  let config = this._configuration;
42
- if (config.mode === 'default')
43
- return this._roles.filter(x => x.enabledByDefault !== false);
44
- else if (config.mode == 'all-except')
45
- return this._roles.filter(x => !config.roles.includes(x.class));
46
- else if (config.mode == 'default-except')
47
- return this._roles.filter(x => x.enabledByDefault !== false).filter(x => !config.roles.includes(x.class));
48
- else if (config.mode == 'only')
49
- return this._roles.filter(x => config.roles.includes(x.class));
43
+ if (config.mode === 'default') {
44
+ return this._roles
45
+ .filter(x => x.enabledByDefault !== false);
46
+ }
47
+ else if (config.mode == 'all-except') {
48
+ return this._roles
49
+ .filter(x => !config.roles.includes(x.class) && !config.roles.includes(x.identifier));
50
+ }
51
+ else if (config.mode == 'default-except') {
52
+ return this._roles
53
+ .filter(x => x.enabledByDefault !== false)
54
+ .filter(x => !config.roles.includes(x.class) && !config.roles.includes(x.identifier));
55
+ }
56
+ else if (config.mode == 'only') {
57
+ return this._roles
58
+ .filter(x => config.roles.includes(x.class) || config.roles.includes(x.identifier));
59
+ }
50
60
  return [];
51
61
  }
52
62
  get activeRoles() {
@@ -58,13 +68,19 @@ let RolesService = class RolesService {
58
68
  configure(config) {
59
69
  if (!SUPPORTED_ROLE_MODES.includes(config.mode))
60
70
  throw new common_1.InvalidOperationError(`Role mode '${config.mode}' is not supported (supports 'all-except', 'only')`);
71
+ let missingRoles = config.roles.filter(x => !this.roles.find(y => y.identifier === x || y.class === x));
72
+ if (missingRoles.length > 0) {
73
+ throw new Error(`The following roles have not been defined: ${missingRoles.join(', ')}. Did you define roles in altOnStart() instead of altOnInit()?`);
74
+ }
61
75
  this._configuration = config;
62
76
  }
63
77
  getForModule(roleModuleClass) {
64
- let role = this._roles.find(x => x.class === roleModuleClass);
65
- if (!role)
78
+ let roles = this._roles.filter(x => x.class === roleModuleClass);
79
+ if (roles.length === 0)
66
80
  throw new common_1.ArgumentError(`Role module class ${roleModuleClass.name} is not registered`);
67
- return role;
81
+ if (roles.length > 0)
82
+ throw new common_1.ArgumentError(`More than one role associated with module '${roleModuleClass.name}'`);
83
+ return roles[0];
68
84
  }
69
85
  getById(id) {
70
86
  let role = this._roles.find(x => x.identifier === id);
@@ -1 +1 @@
1
- {"version":3,"file":"roles.service.js","sourceRoot":"","sources":["../src/roles.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.service.js","sourceRoot":"","sources":["../src/roles.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,UAAU,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAsB,MAAM,cAAc,CAAC;AAGtE;;;GAGG;AACH,qBAAa,gBAAgB;IACzB,QAAQ,EAAG,gBAAgB,CAAC;IAC5B,MAAM,EAAG,GAAG,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAEnB,QAAQ,CAAC,UAAU,EAAG,gBAAgB;IACtC,QAAQ,CAAC,QAAQ,EAAG,GAAG;gBADd,UAAU,EAAG,gBAAgB,EAC7B,QAAQ,EAAG,GAAG;CAG9B;AAED;;;;GAIG;AACH,qBAAa,OAAO;gBACJ,WAAW,EAAG,QAAQ;IAIlC,WAAW,EAAG,gBAAgB,EAAE,CAAM;IACtC,OAAO,EAAG,UAAU,EAAE,CAAM;IAC5B,SAAS,EAAG,cAAc,EAAE,CAAQ;IAEpC;;;OAGG;IACH,UAAU,CAAC,CAAC,EAAE,IAAI,EAAG;QAAE,KAAI,GAAG,IAAI,OAAA,GAAI,CAAC,CAAA;KAAE,GAAG,CAAC;IAI7C;;;OAGG;IACH,SAAS,EAAG,QAAQ,EAAE,CAAM;IAE5B;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,EAAG,QAAQ,EAAE;IAQ1C;;OAEG;IACH,SAAS;IAqCT,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED,kBAAkB,CAAC,IAAI,EAAG,MAAM,EAAE;IA2DlC;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAG,MAAM;IAO5B,OAAO,CAAC,SAAS,CAAmB;IAEpC;;;OAGG;IACH,IAAI,QAAQ,aAEX;IAED;;;;;;OAMG;IACH,IAAI,CAAC,QAAQ,EAAG,QAAQ,GAAG,cAAc,EAAE;IA6B3C;;;;;;;;OAQG;IACG,IAAI;IAMV;;;;;;;OAOG;IACH,KAAK;IAOL;;OAEG;IACG,QAAQ;IAKd;;;;;;;OAOG;IACI,oBAAoB,CAAC,MAAM,EAAG,UAAU,GAAG,gBAAgB;IAIlE;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAmDxB"}
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,UAAU,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAsB,MAAM,cAAc,CAAC;AAGtE;;;GAGG;AACH,qBAAa,gBAAgB;IACzB,QAAQ,EAAG,gBAAgB,CAAC;IAC5B,MAAM,EAAG,GAAG,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAEnB,QAAQ,CAAC,UAAU,EAAG,gBAAgB;IACtC,QAAQ,CAAC,QAAQ,EAAG,GAAG;gBADd,UAAU,EAAG,gBAAgB,EAC7B,QAAQ,EAAG,GAAG;CAG9B;AAED;;;;GAIG;AACH,qBAAa,OAAO;gBACJ,WAAW,EAAG,QAAQ;IAIlC,WAAW,EAAG,gBAAgB,EAAE,CAAM;IACtC,OAAO,EAAG,UAAU,EAAE,CAAM;IAC5B,SAAS,EAAG,cAAc,EAAE,CAAQ;IAEpC;;;OAGG;IACH,UAAU,CAAC,CAAC,EAAE,IAAI,EAAG;QAAE,KAAI,GAAG,IAAI,OAAA,GAAI,CAAC,CAAA;KAAE,GAAG,CAAC;IAI7C;;;OAGG;IACH,SAAS,EAAG,QAAQ,EAAE,CAAM;IAE5B;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,EAAG,QAAQ,EAAE;IAQ1C;;OAEG;IACH,SAAS;IAiCT,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED,kBAAkB,CAAC,IAAI,EAAG,MAAM,EAAE;IA2ClC;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAG,MAAM;IAO5B,OAAO,CAAC,SAAS,CAAmB;IAEpC;;;OAGG;IACH,IAAI,QAAQ,aAEX;IAED;;;;;;OAMG;IACH,IAAI,CAAC,QAAQ,EAAG,QAAQ,GAAG,cAAc,EAAE;IA6B3C;;;;;;;;OAQG;IACG,IAAI;IAMV;;;;;;;OAOG;IACH,KAAK;IAOL;;OAEG;IACG,QAAQ;IAKd;;;;;;;OAOG;IACI,oBAAoB,CAAC,MAAM,EAAG,UAAU,GAAG,gBAAgB;IAIlE;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAmDxB"}
@@ -63,29 +63,25 @@ export class Runtime {
63
63
  * Perform runtime configuration steps
64
64
  */
65
65
  configure() {
66
- let environment = this.injector.get(Environment);
67
- let rolesService = this.injector.get(RolesService);
68
- let allRoles = rolesService.roles;
69
- if (environment.get().ALT_ROLES_ONLY) {
70
- let value = environment.get().ALT_ROLES_ONLY;
71
- let roles = value.split(',')
72
- .map(x => allRoles.find(y => y.identifier == x))
73
- .map(x => x.class);
74
- rolesService.configure({ mode: 'only', roles });
66
+ let roleEnv = this.injector.get(Environment)
67
+ .get();
68
+ let roleMode = 'default';
69
+ let roles = [];
70
+ if (roleEnv.ALT_ROLES_ONLY) {
71
+ roleMode = 'only';
72
+ roles = roleEnv.ALT_ROLES_ONLY.split(',');
75
73
  }
76
- else if (environment.get().ALT_ROLES_ALL_EXCEPT) {
77
- let value = environment.get().ALT_ROLES_ALL_EXCEPT;
78
- let roles = value.split(',')
79
- .map(x => allRoles.find(y => y.identifier == x))
80
- .map(x => x.class);
81
- rolesService.configure({ mode: 'all-except', roles });
74
+ else if (roleEnv.ALT_ROLES_ALL_EXCEPT) {
75
+ roleMode = 'all-except';
76
+ roles = roleEnv.ALT_ROLES_ALL_EXCEPT.split(',');
82
77
  }
83
- else if (environment.get().ALT_ROLES_DEFAULT_EXCEPT) {
84
- let value = environment.get().ALT_ROLES_DEFAULT_EXCEPT;
85
- let roles = value.split(',')
86
- .map(x => allRoles.find(y => y.identifier == x))
87
- .map(x => x.class);
88
- rolesService.configure({ mode: 'default-except', roles });
78
+ else if (roleEnv.ALT_ROLES_DEFAULT_EXCEPT) {
79
+ roleMode = 'default-except';
80
+ roles = roleEnv.ALT_ROLES_DEFAULT_EXCEPT.split(',');
81
+ }
82
+ let rolesService = this.injector.get(RolesService);
83
+ if (roleMode !== 'default') {
84
+ rolesService.configure({ mode: roleMode, roles });
89
85
  }
90
86
  if (typeof process !== 'undefined' && process.argv) {
91
87
  this.processCommandLine(process.argv.slice(2));
@@ -98,9 +94,8 @@ export class Runtime {
98
94
  return this._selfTest;
99
95
  }
100
96
  processCommandLine(args) {
101
- let rolesService = this.injector.get(RolesService);
102
97
  let argIndex = 0;
103
- let getArgumentValue = () => {
98
+ let optionValue = () => {
104
99
  let arg = args[argIndex];
105
100
  if (argIndex + 1 >= args.length)
106
101
  throw new Error(`You must specify a value for option ${arg}`);
@@ -110,37 +105,30 @@ export class Runtime {
110
105
  }
111
106
  return value;
112
107
  };
113
- let allRoles = rolesService.roles;
108
+ let roleMode = 'default';
109
+ let roles;
114
110
  for (; argIndex < args.length; ++argIndex) {
115
111
  let arg = args[argIndex];
116
112
  if (arg === '--self-test') {
117
113
  this._selfTest = true;
118
114
  }
119
115
  else if (arg == '-r' || arg == '--roles-only') {
120
- let value = getArgumentValue();
121
- let roles = value.split(',')
122
- .map(x => allRoles.find(y => y.identifier == x))
123
- .filter(x => x)
124
- .map(x => x.class);
125
- rolesService.configure({ mode: 'only', roles });
116
+ roleMode = 'only';
117
+ roles = optionValue().split(',');
126
118
  }
127
119
  else if (arg == '-x' || arg == '--roles-skip') {
128
- let value = getArgumentValue();
129
- let roles = value.split(',')
130
- .map(x => allRoles.find(y => y.identifier == x))
131
- .filter(x => x)
132
- .map(x => x.class);
133
- rolesService.configure({ mode: 'default-except', roles });
120
+ roleMode = 'default-except';
121
+ roles = optionValue().split(',');
134
122
  }
135
123
  else if (arg == '-R' || arg == '--roles-all-except') {
136
- let value = getArgumentValue();
137
- let roles = value.split(',')
138
- .map(x => allRoles.find(y => y.identifier == x))
139
- .filter(x => x)
140
- .map(x => x.class);
141
- rolesService.configure({ mode: 'all-except', roles });
124
+ roleMode = 'all-except';
125
+ roles = optionValue().split(',');
142
126
  }
143
127
  }
128
+ let rolesService = this.injector.get(RolesService);
129
+ if (roleMode !== 'default') {
130
+ rolesService.configure({ mode: 'only', roles });
131
+ }
144
132
  }
145
133
  /**
146
134
  * Fire an event to all modules which understand it. Should be upper-camel-case, meaning
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAiB,MAAM,EAAc,MAAM,cAAc,CAAC;AACnF,OAAO,EAAsB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAW,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C;;;GAGG;AACH,MAAM,OAAO,gBAAgB;CAG5B;AAED;;;;GAIG;AACH,MAAM,OAAO,cAAc;IACvB,YACa,UAA6B,EAC7B,QAAc;QADd,eAAU,GAAV,UAAU,CAAmB;QAC7B,aAAQ,GAAR,QAAQ,CAAM;IAE3B,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,OAAO,OAAO;IAChB,YAAY,WAAsB;QAIlC,gBAAW,GAAwB,EAAE,CAAC;QACtC,YAAO,GAAkB,EAAE,CAAC;QAC5B,cAAS,GAAsB,IAAI,CAAC;QAUpC;;;WAGG;QACH,cAAS,GAAgB,EAAE,CAAC;QAyDpB,cAAS,GAAG,KAAK,CAAC;QAgFlB,cAAS,GAAc,IAAI,CAAC;QA5JhC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAMD;;;OAGG;IACH,UAAU,CAAI,IAA2B;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAQD;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAsB;QACtC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW;aACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;aACxD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAC/D;IACL,CAAC;IAED;;OAEG;IACH,SAAS;QAEL,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;QAElC,IAAI,WAAW,CAAC,GAAG,EAAO,CAAC,cAAc,EAAE;YACvC,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,EAAO,CAAC,cAAc,CAAC;YAClD,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;YAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;SACnD;aAAM,IAAI,WAAW,CAAC,GAAG,EAAO,CAAC,oBAAoB,EAAE;YACpD,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,EAAO,CAAC,oBAAoB,CAAC;YACxD,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;YAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;SACzD;aAAM,IAAI,WAAW,CAAC,GAAG,EAAO,CAAC,wBAAwB,EAAE;YACxD,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,EAAO,CAAC,wBAAwB,CAAC;YAC5D,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;YAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;SAC7D;QAED,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE;YAChD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;IACL,CAAC;IAID;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,kBAAkB,CAAC,IAAe;QAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,IAAI,gBAAgB,GAAG,GAAG,EAAE;YACxB,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;gBAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;YAGlE,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YAE7B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,yBAAyB,KAAK,YAAY,CAAC,CAAC;aACzG;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QAEF,IAAI,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,OAAO,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE;YACvC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzB,IAAI,GAAG,KAAK,aAAa,EAAE;gBACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACzB;iBAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,cAAc,EAAE;gBAC7C,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;gBAE/B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;qBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;qBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;gBAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;aACnD;iBAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,cAAc,EAAE;gBAC7C,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;gBAE/B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;qBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;qBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;gBAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;aAC7D;iBAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,oBAAoB,EAAE;gBACnD,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;gBAE/B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;qBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;qBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;gBAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;aACzD;SACJ;IACL,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,SAAkB;QACxB,KAAK,IAAI,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,SAAS,EAAE,CAAC;gBACvC,WAAW,CAAC,QAAQ,CAAC,MAAM,SAAS,EAAE,CAAC,EAAE,CAAC;SACjD;IACL,CAAC;IAID;;;OAGG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CAAC,QAAmB;QACpB,IAAI,IAAI,CAAC,SAAS;YACd,OAAO;QAEX,IAAI,WAAgC,CAAC;QACrC,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI;YACA,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAC7C,SAAS,EACT,QAAQ,CACX,CAAC;SACL;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9B,MAAM,CAAC,CAAC;SACX;QAED,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;QAE7B,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;QAEjC,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACG,IAAI;;YACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,YAAY,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KAAA;IAED;;;;;;;OAOG;IACH,KAAK;QACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE1B,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnD,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACG,QAAQ;;YACV,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC;KAAA;IAED;;;;;;;OAOG;IACI,oBAAoB,CAAC,MAAmB;QAC3C,OAAO,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,MAAmB;QAErC,6BAA6B;QAE7B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC7B,OAAO;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1B,kCAAkC;QAClC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;YACnB,WAAW,GAAG,IAAI,CAAC;YACnB,iBAAiB;YACjB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACnC,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,OAAO,GAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAa,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YAEzB,IAAI,CAAC,OAAO,CAAC,OAAO;gBAChB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;YAEzB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAElB,IAAM,SAAS,GAAf,MAAM,SAAS;aAAG,CAAA;YAAZ,SAAS;gBAA/B,MAAM,CAAC,OAAO,CAAC;eAAO,SAAS,CAAG;YAAA,CAAC;YACpC,MAAM,GAAG,SAAS,CAAC;YAEnB,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACpD;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE;YAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,KAAK,IAAI,cAAc,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACzC,IAAI,CAAC,cAAc,EAAE;oBACjB,MAAM,IAAI,KAAK,CAAC,mDAAmD,QAAQ,OAAO,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBAC1G;gBAED,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACnC,EAAE,QAAQ,CAAC;aACd;SACJ;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAClB,MAAM,EAAE,MAAM;YACd,QAAQ;SACX,CAAC,CAAC;IAEP,CAAC;CACJ"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export interface RoleRegistration {
12
12
  * The instance of the module being registered. This should be `this` for the caller in most cases, as it should be
13
13
  * called from an Alterior module's `altOnInit()` method.
14
14
  */
15
- instance: any;
15
+ instance?: any;
16
16
  /**
17
17
  * Set to false to cause this role to be disabled unless explicitly asked for. When unspecified, the default is
18
18
  * true.
@@ -1 +1 @@
1
- {"version":3,"file":"roles.service.d.ts","sourceRoot":"","sources":["../src/roles.service.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,GAAG,YAAY,GAAG,MAAM,CAAG;AAE3F,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAG,qBAAqB,CAAC;IAC7B,KAAK,EAAG,GAAG,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,QAAQ,EAAG,GAAG,CAAC;IAEf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAG,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IAC/C,KAAK,EAAG,GAAG,CAAC;IACZ,OAAO,EAAG,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBACa,YAAY;;IAKrB,YAAY,EAAG,GAAG,EAAE,CAAQ;IAC5B,cAAc,EAAG,iBAAiB,CAAkC;IACpE,MAAM,EAAG,SAAS,EAAE,CAAM;IAE1B,IAAI,aAAa,IAAK,iBAAiB,CAEtC;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAG,gBAAgB;IAYpC,IAAI,KAAK,IAAI,SAAS,EAAE,CAEvB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,SAAS,EAAE,CAahC;IAED,IAAI,WAAW,IAAI,SAAS,EAAE,CAE7B;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAG,iBAAiB;IAOpC,YAAY,CAAC,eAAe,KAAA;IAS5B,OAAO,CAAC,EAAE,EAAG,MAAM;IASb,UAAU;IAMhB,MAAM,UAAS;IAET,QAAQ;IAYR,OAAO;CAWhB"}
1
+ {"version":3,"file":"roles.service.d.ts","sourceRoot":"","sources":["../src/roles.service.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,GAAG,YAAY,GAAG,MAAM,CAAG;AAE3F,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAG,qBAAqB,CAAC;IAC7B,KAAK,EAAG,GAAG,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAG,GAAG,CAAC;IAEhB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAG,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IAC/C,KAAK,EAAG,GAAG,CAAC;IACZ,OAAO,EAAG,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBACa,YAAY;;IAKrB,YAAY,EAAG,GAAG,EAAE,CAAQ;IAC5B,cAAc,EAAG,iBAAiB,CAAkC;IACpE,MAAM,EAAG,SAAS,EAAE,CAAM;IAE1B,IAAI,aAAa,IAAK,iBAAiB,CAEtC;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAG,gBAAgB;IAYpC,IAAI,KAAK,IAAI,SAAS,EAAE,CAEvB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,SAAS,EAAE,CAmBhC;IAED,IAAI,WAAW,IAAI,SAAS,EAAE,CAE7B;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAG,iBAAiB;IAYpC,YAAY,CAAC,eAAe,KAAA;IAY5B,OAAO,CAAC,EAAE,EAAG,MAAM;IASb,UAAU;IAMhB,MAAM,UAAS;IAET,QAAQ;IAYR,OAAO;CAWhB"}
@@ -22,8 +22,9 @@ let RolesService = class RolesService {
22
22
  * Register a role which can be managed by this service.
23
23
  */
24
24
  registerRole(role) {
25
+ var _a, _b;
25
26
  let roleState = Object.assign(role, {
26
- class: role.instance.constructor,
27
+ class: (_b = (_a = role.instance) === null || _a === void 0 ? void 0 : _a.constructor) !== null && _b !== void 0 ? _b : {},
27
28
  running: false
28
29
  });
29
30
  this._roles.push(roleState);
@@ -36,14 +37,23 @@ let RolesService = class RolesService {
36
37
  */
37
38
  get effectiveRoles() {
38
39
  let config = this._configuration;
39
- if (config.mode === 'default')
40
- return this._roles.filter(x => x.enabledByDefault !== false);
41
- else if (config.mode == 'all-except')
42
- return this._roles.filter(x => !config.roles.includes(x.class));
43
- else if (config.mode == 'default-except')
44
- return this._roles.filter(x => x.enabledByDefault !== false).filter(x => !config.roles.includes(x.class));
45
- else if (config.mode == 'only')
46
- return this._roles.filter(x => config.roles.includes(x.class));
40
+ if (config.mode === 'default') {
41
+ return this._roles
42
+ .filter(x => x.enabledByDefault !== false);
43
+ }
44
+ else if (config.mode == 'all-except') {
45
+ return this._roles
46
+ .filter(x => !config.roles.includes(x.class) && !config.roles.includes(x.identifier));
47
+ }
48
+ else if (config.mode == 'default-except') {
49
+ return this._roles
50
+ .filter(x => x.enabledByDefault !== false)
51
+ .filter(x => !config.roles.includes(x.class) && !config.roles.includes(x.identifier));
52
+ }
53
+ else if (config.mode == 'only') {
54
+ return this._roles
55
+ .filter(x => config.roles.includes(x.class) || config.roles.includes(x.identifier));
56
+ }
47
57
  return [];
48
58
  }
49
59
  get activeRoles() {
@@ -55,13 +65,19 @@ let RolesService = class RolesService {
55
65
  configure(config) {
56
66
  if (!SUPPORTED_ROLE_MODES.includes(config.mode))
57
67
  throw new InvalidOperationError(`Role mode '${config.mode}' is not supported (supports 'all-except', 'only')`);
68
+ let missingRoles = config.roles.filter(x => !this.roles.find(y => y.identifier === x || y.class === x));
69
+ if (missingRoles.length > 0) {
70
+ throw new Error(`The following roles have not been defined: ${missingRoles.join(', ')}. Did you define roles in altOnStart() instead of altOnInit()?`);
71
+ }
58
72
  this._configuration = config;
59
73
  }
60
74
  getForModule(roleModuleClass) {
61
- let role = this._roles.find(x => x.class === roleModuleClass);
62
- if (!role)
75
+ let roles = this._roles.filter(x => x.class === roleModuleClass);
76
+ if (roles.length === 0)
63
77
  throw new ArgumentError(`Role module class ${roleModuleClass.name} is not registered`);
64
- return role;
78
+ if (roles.length > 0)
79
+ throw new ArgumentError(`More than one role associated with module '${roleModuleClass.name}'`);
80
+ return roles[0];
65
81
  }
66
82
  getById(id) {
67
83
  let role = this._roles.find(x => x.identifier === id);
@@ -1 +1 @@
1
- {"version":3,"file":"roles.service.js","sourceRoot":"","sources":["../src/roles.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.service.js","sourceRoot":"","sources":["../src/roles.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alterior/runtime",
3
- "version": "3.6.4",
3
+ "version": "3.6.7",
4
4
  "description": "Core runtime for Alterior apps",
5
5
  "author": "The Alterior Project (https://github.com/alterior-mvc)",
6
6
  "license": "MIT",
@@ -37,9 +37,9 @@
37
37
  "docs": "typedoc ."
38
38
  },
39
39
  "dependencies": {
40
- "@alterior/annotations": "^3.6.4",
41
- "@alterior/common": "^3.6.4",
42
- "@alterior/di": "^3.6.4",
40
+ "@alterior/annotations": "^3.6.7",
41
+ "@alterior/common": "^3.6.7",
42
+ "@alterior/di": "^3.6.7",
43
43
  "tslib": "^2.3.1"
44
44
  },
45
45
  "peerDependencies": {
@@ -47,5 +47,5 @@
47
47
  "zone.js": "^0.14.3"
48
48
  },
49
49
  "lernaKick": 1,
50
- "gitHead": "cc4137f515a8c28d15b04882a41d7c718be577fa"
50
+ "gitHead": "5a2dddeed850b8e59217dbbe0614f641206c9072"
51
51
  }
package/src/modules.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ModuleAnnotation, ModuleOptions, Module, ModuleLike } from "@alterior/di";
2
2
  import { Injector, Provider, ReflectiveInjector } from "@alterior/di";
3
3
  import { timeout, Environment } from "@alterior/common";
4
- import { RolesService } from "./roles.service";
4
+ import { RoleConfigurationMode, RoleState, RolesService } from "./roles.service";
5
5
  /**
6
6
  * Combines a module annotation and a target class into a single
7
7
  * object for storage purposes in Runtime and related objects.
@@ -71,37 +71,33 @@ export class Runtime {
71
71
  * Perform runtime configuration steps
72
72
  */
73
73
  configure() {
74
+ let roleEnv = this.injector.get(Environment)
75
+ .get<{
76
+ ALT_ROLES_ONLY: string,
77
+ ALT_ROLES_ALL_EXCEPT: string,
78
+ ALT_ROLES_DEFAULT_EXCEPT: string;
79
+ }>()
80
+ ;
74
81
 
75
- let environment = this.injector.get(Environment);
76
- let rolesService = this.injector.get(RolesService);
77
- let allRoles = rolesService.roles;
78
-
79
- if (environment.get<any>().ALT_ROLES_ONLY) {
80
- let value = environment.get<any>().ALT_ROLES_ONLY;
81
- let roles = value.split(',')
82
- .map(x => allRoles.find(y => y.identifier == x))
83
- .map(x => x.class)
84
- ;
85
-
86
- rolesService.configure({ mode: 'only', roles });
87
- } else if (environment.get<any>().ALT_ROLES_ALL_EXCEPT) {
88
- let value = environment.get<any>().ALT_ROLES_ALL_EXCEPT;
89
- let roles = value.split(',')
90
- .map(x => allRoles.find(y => y.identifier == x))
91
- .map(x => x.class)
92
- ;
93
-
94
- rolesService.configure({ mode: 'all-except', roles });
95
- } else if (environment.get<any>().ALT_ROLES_DEFAULT_EXCEPT) {
96
- let value = environment.get<any>().ALT_ROLES_DEFAULT_EXCEPT;
97
- let roles = value.split(',')
98
- .map(x => allRoles.find(y => y.identifier == x))
99
- .map(x => x.class)
100
- ;
101
-
102
- rolesService.configure({ mode: 'default-except', roles });
82
+ let roleMode: RoleConfigurationMode = 'default';
83
+ let roles: string[] = [];
84
+
85
+ if (roleEnv.ALT_ROLES_ONLY) {
86
+ roleMode = 'only';
87
+ roles = roleEnv.ALT_ROLES_ONLY.split(',');
88
+ } else if (roleEnv.ALT_ROLES_ALL_EXCEPT) {
89
+ roleMode = 'all-except';
90
+ roles = roleEnv.ALT_ROLES_ALL_EXCEPT.split(',');
91
+ } else if (roleEnv.ALT_ROLES_DEFAULT_EXCEPT) {
92
+ roleMode = 'default-except';
93
+ roles = roleEnv.ALT_ROLES_DEFAULT_EXCEPT.split(',');
103
94
  }
104
95
 
96
+ let rolesService = this.injector.get(RolesService);
97
+ if (roleMode !== 'default') {
98
+ rolesService.configure({ mode: roleMode, roles });
99
+ }
100
+
105
101
  if (typeof process !== 'undefined' && process.argv) {
106
102
  this.processCommandLine(process.argv.slice(2));
107
103
  }
@@ -117,10 +113,9 @@ export class Runtime {
117
113
  }
118
114
 
119
115
  processCommandLine(args : string[]) {
120
- let rolesService = this.injector.get(RolesService);
121
116
  let argIndex = 0;
122
117
 
123
- let getArgumentValue = () => {
118
+ let optionValue = () => {
124
119
  let arg = args[argIndex];
125
120
  if (argIndex + 1 >= args.length)
126
121
  throw new Error(`You must specify a value for option ${arg}`);
@@ -135,44 +130,29 @@ export class Runtime {
135
130
  return value;
136
131
  };
137
132
 
138
- let allRoles = rolesService.roles;
133
+ let roleMode = 'default';
134
+ let roles: string[];
135
+
139
136
  for (; argIndex < args.length; ++argIndex) {
140
137
  let arg = args[argIndex];
141
-
142
138
  if (arg === '--self-test') {
143
139
  this._selfTest = true;
144
140
  } else if (arg == '-r' || arg == '--roles-only') {
145
- let value = getArgumentValue();
146
-
147
- let roles = value.split(',')
148
- .map(x => allRoles.find(y => y.identifier == x))
149
- .filter(x => x)
150
- .map(x => x.class)
151
- ;
152
-
153
- rolesService.configure({ mode: 'only', roles });
141
+ roleMode = 'only';
142
+ roles = optionValue().split(',');
154
143
  } else if (arg == '-x' || arg == '--roles-skip') {
155
- let value = getArgumentValue();
156
-
157
- let roles = value.split(',')
158
- .map(x => allRoles.find(y => y.identifier == x))
159
- .filter(x => x)
160
- .map(x => x.class)
161
- ;
162
-
163
- rolesService.configure({ mode: 'default-except', roles });
144
+ roleMode = 'default-except';
145
+ roles = optionValue().split(',');
164
146
  } else if (arg == '-R' || arg == '--roles-all-except') {
165
- let value = getArgumentValue();
166
-
167
- let roles = value.split(',')
168
- .map(x => allRoles.find(y => y.identifier == x))
169
- .filter(x => x)
170
- .map(x => x.class)
171
- ;
172
-
173
- rolesService.configure({ mode: 'all-except', roles });
147
+ roleMode = 'all-except';
148
+ roles = optionValue().split(',');
174
149
  }
175
150
  }
151
+
152
+ let rolesService = this.injector.get(RolesService);
153
+ if (roleMode !== 'default') {
154
+ rolesService.configure({ mode: 'only', roles });
155
+ }
176
156
  }
177
157
 
178
158
  /**
@@ -18,7 +18,7 @@ export interface RoleRegistration {
18
18
  * The instance of the module being registered. This should be `this` for the caller in most cases, as it should be
19
19
  * called from an Alterior module's `altOnInit()` method.
20
20
  */
21
- instance : any;
21
+ instance? : any;
22
22
 
23
23
  /**
24
24
  * Set to false to cause this role to be disabled unless explicitly asked for. When unspecified, the default is
@@ -85,7 +85,7 @@ export class RolesService {
85
85
  let roleState : RoleState = Object.assign(
86
86
  role,
87
87
  {
88
- class: role.instance.constructor,
88
+ class: role.instance?.constructor ?? {},
89
89
  running: false
90
90
  }
91
91
  );
@@ -103,14 +103,20 @@ export class RolesService {
103
103
  get effectiveRoles(): RoleState[] {
104
104
  let config = this._configuration;
105
105
 
106
- if (config.mode === 'default')
107
- return this._roles.filter(x => x.enabledByDefault !== false);
108
- else if (config.mode == 'all-except')
109
- return this._roles.filter(x => !config.roles.includes(x.class));
110
- else if (config.mode == 'default-except')
111
- return this._roles.filter(x => x.enabledByDefault !== false).filter(x => !config.roles.includes(x.class));
112
- else if (config.mode == 'only')
113
- return this._roles.filter(x => config.roles.includes(x.class));
106
+ if (config.mode === 'default') {
107
+ return this._roles
108
+ .filter(x => x.enabledByDefault !== false);
109
+ } else if (config.mode == 'all-except') {
110
+ return this._roles
111
+ .filter(x => !config.roles.includes(x.class) && !config.roles.includes(x.identifier));
112
+ } else if (config.mode == 'default-except') {
113
+ return this._roles
114
+ .filter(x => x.enabledByDefault !== false)
115
+ .filter(x => !config.roles.includes(x.class) && !config.roles.includes(x.identifier));
116
+ } else if (config.mode == 'only') {
117
+ return this._roles
118
+ .filter(x => config.roles.includes(x.class) || config.roles.includes(x.identifier));
119
+ }
114
120
 
115
121
  return [];
116
122
  }
@@ -126,16 +132,24 @@ export class RolesService {
126
132
  if (!SUPPORTED_ROLE_MODES.includes(config.mode))
127
133
  throw new InvalidOperationError(`Role mode '${config.mode}' is not supported (supports 'all-except', 'only')`);
128
134
 
135
+ let missingRoles = config.roles.filter(x => !this.roles.find(y => y.identifier === x || y.class === x));
136
+ if (missingRoles.length > 0) {
137
+ throw new Error(`The following roles have not been defined: ${missingRoles.join(', ')}. Did you define roles in altOnStart() instead of altOnInit()?`);
138
+ }
139
+
129
140
  this._configuration = config;
130
141
  }
131
142
 
132
143
  getForModule(roleModuleClass) {
133
- let role = this._roles.find(x => x.class === roleModuleClass);
144
+ let roles = this._roles.filter(x => x.class === roleModuleClass);
134
145
 
135
- if (!role)
146
+ if (roles.length === 0)
136
147
  throw new ArgumentError(`Role module class ${roleModuleClass.name} is not registered`);
137
148
 
138
- return role;
149
+ if (roles.length > 0)
150
+ throw new ArgumentError(`More than one role associated with module '${roleModuleClass.name}'`);
151
+
152
+ return roles[0];
139
153
  }
140
154
 
141
155
  getById(id : string) {