assemblerjs 1.1.22 → 1.1.24

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.
package/dist/index.d.ts CHANGED
@@ -914,6 +914,10 @@ export declare interface JoinPoint {
914
914
  result?: any;
915
915
  /** The error thrown by the method (if any) */
916
916
  error?: any;
917
+ /** The name of the calling assemblage class (if available) */
918
+ caller?: string;
919
+ /** The identifier of the calling assemblage (if available) */
920
+ callerIdentifier?: string | symbol;
917
921
  }
918
922
 
919
923
  declare interface LifecycleManager {
package/dist/index11.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const constants = require('./index28.js');
6
6
  const reflection = require('./index36.js');
7
7
  const decorator = require('./index2.js');
8
- const schema = require('./index37.js');
8
+ const schema = require('./index38.js');
9
9
 
10
10
  function isTransversal(e) {
11
11
  try {
package/dist/index11.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ReflectValue } from './index28.mjs';
2
2
  import { getCustomMetadata, defineCustomMetadata } from './index36.mjs';
3
3
  import { Assemblage } from './index2.mjs';
4
- import { getDefinition } from './index37.mjs';
4
+ import { getDefinition } from './index38.mjs';
5
5
 
6
6
  function isTransversal(e) {
7
7
  try {
package/dist/index13.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const core = require('@assemblerjs/core');
6
6
  const pointcutMatcher = require('./index41.js');
7
7
  const affect = require('./index12.js');
8
- const schema = require('./index37.js');
8
+ const schema = require('./index38.js');
9
9
 
10
10
  class TransversalManager {
11
11
  static getInstance(e) {
package/dist/index13.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { isClass } from '@assemblerjs/core';
2
2
  import { PointcutMatcher } from './index41.mjs';
3
3
  import { getAffectedMethods } from './index12.mjs';
4
- import { getDefinition } from './index37.mjs';
4
+ import { getDefinition } from './index38.mjs';
5
5
 
6
6
  class TransversalManager {
7
7
  static getInstance(e) {
package/dist/index18.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index38.js');
6
+ const resolverStore = require('./index37.js');
7
7
 
8
8
  let ContextResolver = class ContextResolver {
9
9
  resolve(e, r, t) {
package/dist/index18.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index38.mjs';
2
+ import { ResolverStore } from './index37.mjs';
3
3
 
4
4
  let ContextResolver = class ContextResolver {
5
5
  resolve(e, r, t) {
package/dist/index19.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index38.js');
6
+ const resolverStore = require('./index37.js');
7
7
 
8
8
  let ConfigurationResolver = class ConfigurationResolver {
9
9
  resolve(r, o, e, n) {
package/dist/index19.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index38.mjs';
2
+ import { ResolverStore } from './index37.mjs';
3
3
 
4
4
  let ConfigurationResolver = class ConfigurationResolver {
5
5
  resolve(r, o, e, n) {
package/dist/index2.js CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const constants = require('./index28.js');
6
6
  const reflection = require('./index36.js');
7
- const schema = require('./index37.js');
7
+ const schema = require('./index38.js');
8
8
 
9
9
  const Assemblage = (e)=>{
10
10
  return (r)=>{
package/dist/index2.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ReflectFlags, ReflectValue } from './index28.mjs';
2
2
  import { defineCustomMetadata } from './index36.mjs';
3
- import { validateDefinition } from './index37.mjs';
3
+ import { validateDefinition } from './index38.mjs';
4
4
 
5
5
  const Assemblage = (e)=>{
6
6
  return (r)=>{
package/dist/index20.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index38.js');
6
+ const resolverStore = require('./index37.js');
7
7
 
8
8
  let DefinitionResolver = class DefinitionResolver {
9
9
  resolve(e, r) {
package/dist/index20.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index38.mjs';
2
+ import { ResolverStore } from './index37.mjs';
3
3
 
4
4
  let DefinitionResolver = class DefinitionResolver {
5
5
  resolve(e, r) {
package/dist/index21.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index38.js');
6
+ const resolverStore = require('./index37.js');
7
7
 
8
8
  let DisposeResolver = class DisposeResolver {
9
9
  resolve(e, r, s) {
package/dist/index21.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index38.mjs';
2
+ import { ResolverStore } from './index37.mjs';
3
3
 
4
4
  let DisposeResolver = class DisposeResolver {
5
5
  resolve(e, r, s) {
package/dist/index22.js CHANGED
@@ -6,7 +6,7 @@ const reflection = require('./index36.js');
6
6
  const debugLogger = require('./index34.js');
7
7
  const parameterDecoratorFactory = require('./index17.js');
8
8
  const helpers = require('./index25.js');
9
- const resolverStore = require('./index38.js');
9
+ const resolverStore = require('./index37.js');
10
10
 
11
11
  let UseResolver = class UseResolver {
12
12
  resolve(o, t, a) {
package/dist/index22.mjs CHANGED
@@ -2,7 +2,7 @@ import { getOwnCustomMetadata } from './index36.mjs';
2
2
  import { DebugLogger } from './index34.mjs';
3
3
  import { ParameterDecoratorFactory } from './index17.mjs';
4
4
  import { getParamValueKey } from './index25.mjs';
5
- import { ResolverStore } from './index38.mjs';
5
+ import { ResolverStore } from './index37.mjs';
6
6
 
7
7
  let UseResolver = class UseResolver {
8
8
  resolve(o, t, a) {
package/dist/index23.js CHANGED
@@ -6,7 +6,7 @@ const reflection = require('./index36.js');
6
6
  const debugLogger = require('./index34.js');
7
7
  const parameterDecoratorFactory = require('./index17.js');
8
8
  const helpers = require('./index25.js');
9
- const resolverStore = require('./index38.js');
9
+ const resolverStore = require('./index37.js');
10
10
 
11
11
  let GlobalResolver = class GlobalResolver {
12
12
  resolve(r, l, a) {
package/dist/index23.mjs CHANGED
@@ -2,7 +2,7 @@ import { getOwnCustomMetadata } from './index36.mjs';
2
2
  import { DebugLogger } from './index34.mjs';
3
3
  import { ParameterDecoratorFactory } from './index17.mjs';
4
4
  import { getParamValueKey } from './index25.mjs';
5
- import { ResolverStore } from './index38.mjs';
5
+ import { ResolverStore } from './index37.mjs';
6
6
 
7
7
  let GlobalResolver = class GlobalResolver {
8
8
  resolve(r, l, a) {
package/dist/index24.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const reflection = require('./index36.js');
6
6
  const parameterDecoratorFactory = require('./index17.js');
7
7
  const helpers = require('./index25.js');
8
- const resolverStore = require('./index38.js');
8
+ const resolverStore = require('./index37.js');
9
9
 
10
10
  let OptionalResolver = class OptionalResolver {
11
11
  resolve(o, t, n) {
package/dist/index24.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { getParamTypes, getOwnCustomMetadata } from './index36.mjs';
2
2
  import { ParameterDecoratorFactory } from './index17.mjs';
3
3
  import { getParamValueKey } from './index25.mjs';
4
- import { ResolverStore } from './index38.mjs';
4
+ import { ResolverStore } from './index37.mjs';
5
5
 
6
6
  let OptionalResolver = class OptionalResolver {
7
7
  resolve(o, t, n) {
package/dist/index32.js CHANGED
@@ -6,7 +6,7 @@ const hookManager = require('./index31.js');
6
6
  const debugLogger = require('./index34.js');
7
7
  const cycleDetector = require('./index35.js');
8
8
  const injectableManager = require('./index29.js');
9
- const schema = require('./index37.js');
9
+ const schema = require('./index38.js');
10
10
 
11
11
  class AssemblerBuilder {
12
12
  build(n, r) {
package/dist/index32.mjs CHANGED
@@ -2,7 +2,7 @@ import { HookManager } from './index31.mjs';
2
2
  import { DebugLogger } from './index34.mjs';
3
3
  import { CycleDetector } from './index35.mjs';
4
4
  import { formatIdentifier } from './index29.mjs';
5
- import { setDefinitionValue } from './index37.mjs';
5
+ import { setDefinitionValue } from './index38.mjs';
6
6
 
7
7
  class AssemblerBuilder {
8
8
  build(n, r) {
package/dist/index37.js CHANGED
@@ -2,112 +2,27 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const constants = require('./index28.js');
6
- const reflection = require('./index36.js');
7
- const helpers = require('./index3.js');
8
-
9
- const n = {
10
- singleton: {
11
- test: (r)=>typeof r === 'boolean' || typeof r === 'undefined',
12
- throw: ()=>{
13
- throw new Error(`'singleton' property must be of type 'boolean' or 'undefined'.`);
14
- },
15
- transform: (r)=>{
16
- return typeof r === 'undefined' ? true : r ? true : false;
17
- }
18
- },
19
- events: {
20
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
21
- throw: ()=>{
22
- throw new Error(`'events' property must be an array of strings or 'undefined'.`);
23
- },
24
- transform: (r)=>r
25
- },
26
- inject: {
27
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
28
- throw: ()=>{
29
- throw new Error(`'inject' property must be an array of tuples of length 1, 2 or 3.`);
30
- },
31
- transform: (r)=>r
32
- },
33
- use: {
34
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>{
35
- if (!Array.isArray(r) || r.length !== 2) {
36
- return false;
37
- }
38
- const e = r[1];
39
- return typeof e !== 'undefined';
40
- }),
41
- throw: ()=>{
42
- throw new Error(`'use' property must be an array of tuples of length 2 with [identifier, instance | factory].`);
43
- },
44
- transform: (r)=>r
45
- },
46
- engage: {
47
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
48
- throw: ()=>{
49
- throw new Error(`'engage' property must be an array of tuples of length 1, 2 or 3.`);
50
- },
51
- transform: (r)=>r
52
- },
53
- tags: {
54
- test: (r)=>typeof r === 'undefined' || typeof r === 'string' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
55
- throw: ()=>{
56
- throw new Error(`'tags' property must be a string or an array of strings.`);
57
- },
58
- transform: (r)=>typeof r === 'string' ? [
59
- r
60
- ] : r
61
- },
62
- metadata: {
63
- test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
64
- throw: ()=>{
65
- throw new Error(`'metadata' property must be of type 'object' or 'undefined'.`);
66
- },
67
- transform: (r)=>r
68
- },
69
- global: {
70
- test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
71
- throw: ()=>{
72
- throw new Error(`'global' property must be of type 'object' or 'undefined'.`);
73
- },
74
- transform: (r)=>r
5
+ class ResolverStore {
6
+ static register(e, r) {
7
+ this.resolvers.set(e, r);
75
8
  }
76
- };
77
- const validateDefinition = (r)=>{
78
- const e = {
79
- ...r
80
- };
81
- for(const r in e){
82
- if (!Object.keys(n).includes(r)) {
83
- throw new Error(`Property '${r}' is not a valid assemblage definition property.`);
9
+ static getResolver(e) {
10
+ const r = this.resolvers.get(e);
11
+ if (!r) {
12
+ throw new Error(`No resolver found for decorator type: ${e}`);
84
13
  }
14
+ return new r();
85
15
  }
86
- for(const r in n){
87
- const t = n[r].test;
88
- const o = n[r].throw;
89
- const s = n[r].transform;
90
- if (!t(e[r])) {
91
- o();
92
- }
93
- e[r] = s(e[r]);
16
+ static hasResolver(e) {
17
+ return this.resolvers.has(e);
18
+ }
19
+ static getRegisteredTypes() {
20
+ return Array.from(this.resolvers.keys());
94
21
  }
95
- return e;
96
- };
97
- const getDefinition = (e)=>{
98
- if (!helpers.isAssemblage(e)) {
99
- throw new Error(`Class '${e.name}' is not an assemblage or transversal.`);
22
+ static clear() {
23
+ this.resolvers.clear();
100
24
  }
101
- return reflection.getOwnCustomMetadata(constants.ReflectValue.AssemblageDefinition, e);
102
- };
103
- const setDefinitionValue = (t, o, n)=>{
104
- const s = getDefinition(n);
105
- s[t] = o;
106
- const a = validateDefinition(s);
107
- reflection.defineCustomMetadata(constants.ReflectValue.AssemblageDefinition, a, n);
108
- return a;
109
- };
25
+ }
26
+ ResolverStore.resolvers = new Map();
110
27
 
111
- exports.getDefinition = getDefinition;
112
- exports.setDefinitionValue = setDefinitionValue;
113
- exports.validateDefinition = validateDefinition;
28
+ exports.ResolverStore = ResolverStore;
package/dist/index37.mjs CHANGED
@@ -1,107 +1,24 @@
1
- import { ReflectValue } from './index28.mjs';
2
- import { getOwnCustomMetadata, defineCustomMetadata } from './index36.mjs';
3
- import { isAssemblage } from './index3.mjs';
4
-
5
- const n = {
6
- singleton: {
7
- test: (r)=>typeof r === 'boolean' || typeof r === 'undefined',
8
- throw: ()=>{
9
- throw new Error(`'singleton' property must be of type 'boolean' or 'undefined'.`);
10
- },
11
- transform: (r)=>{
12
- return typeof r === 'undefined' ? true : r ? true : false;
13
- }
14
- },
15
- events: {
16
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
17
- throw: ()=>{
18
- throw new Error(`'events' property must be an array of strings or 'undefined'.`);
19
- },
20
- transform: (r)=>r
21
- },
22
- inject: {
23
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
24
- throw: ()=>{
25
- throw new Error(`'inject' property must be an array of tuples of length 1, 2 or 3.`);
26
- },
27
- transform: (r)=>r
28
- },
29
- use: {
30
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>{
31
- if (!Array.isArray(r) || r.length !== 2) {
32
- return false;
33
- }
34
- const e = r[1];
35
- return typeof e !== 'undefined';
36
- }),
37
- throw: ()=>{
38
- throw new Error(`'use' property must be an array of tuples of length 2 with [identifier, instance | factory].`);
39
- },
40
- transform: (r)=>r
41
- },
42
- engage: {
43
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
44
- throw: ()=>{
45
- throw new Error(`'engage' property must be an array of tuples of length 1, 2 or 3.`);
46
- },
47
- transform: (r)=>r
48
- },
49
- tags: {
50
- test: (r)=>typeof r === 'undefined' || typeof r === 'string' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
51
- throw: ()=>{
52
- throw new Error(`'tags' property must be a string or an array of strings.`);
53
- },
54
- transform: (r)=>typeof r === 'string' ? [
55
- r
56
- ] : r
57
- },
58
- metadata: {
59
- test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
60
- throw: ()=>{
61
- throw new Error(`'metadata' property must be of type 'object' or 'undefined'.`);
62
- },
63
- transform: (r)=>r
64
- },
65
- global: {
66
- test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
67
- throw: ()=>{
68
- throw new Error(`'global' property must be of type 'object' or 'undefined'.`);
69
- },
70
- transform: (r)=>r
1
+ class ResolverStore {
2
+ static register(e, r) {
3
+ this.resolvers.set(e, r);
71
4
  }
72
- };
73
- const validateDefinition = (r)=>{
74
- const e = {
75
- ...r
76
- };
77
- for(const r in e){
78
- if (!Object.keys(n).includes(r)) {
79
- throw new Error(`Property '${r}' is not a valid assemblage definition property.`);
5
+ static getResolver(e) {
6
+ const r = this.resolvers.get(e);
7
+ if (!r) {
8
+ throw new Error(`No resolver found for decorator type: ${e}`);
80
9
  }
10
+ return new r();
81
11
  }
82
- for(const r in n){
83
- const t = n[r].test;
84
- const o = n[r].throw;
85
- const s = n[r].transform;
86
- if (!t(e[r])) {
87
- o();
88
- }
89
- e[r] = s(e[r]);
12
+ static hasResolver(e) {
13
+ return this.resolvers.has(e);
14
+ }
15
+ static getRegisteredTypes() {
16
+ return Array.from(this.resolvers.keys());
90
17
  }
91
- return e;
92
- };
93
- const getDefinition = (e)=>{
94
- if (!isAssemblage(e)) {
95
- throw new Error(`Class '${e.name}' is not an assemblage or transversal.`);
18
+ static clear() {
19
+ this.resolvers.clear();
96
20
  }
97
- return getOwnCustomMetadata(ReflectValue.AssemblageDefinition, e);
98
- };
99
- const setDefinitionValue = (t, o, n)=>{
100
- const s = getDefinition(n);
101
- s[t] = o;
102
- const a = validateDefinition(s);
103
- defineCustomMetadata(ReflectValue.AssemblageDefinition, a, n);
104
- return a;
105
- };
21
+ }
22
+ ResolverStore.resolvers = new Map();
106
23
 
107
- export { getDefinition, setDefinitionValue, validateDefinition };
24
+ export { ResolverStore };
package/dist/index38.js CHANGED
@@ -2,27 +2,112 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- class ResolverStore {
6
- static register(e, r) {
7
- this.resolvers.set(e, r);
8
- }
9
- static getResolver(e) {
10
- const r = this.resolvers.get(e);
11
- if (!r) {
12
- throw new Error(`No resolver found for decorator type: ${e}`);
5
+ const constants = require('./index28.js');
6
+ const reflection = require('./index36.js');
7
+ const helpers = require('./index3.js');
8
+
9
+ const n = {
10
+ singleton: {
11
+ test: (r)=>typeof r === 'boolean' || typeof r === 'undefined',
12
+ throw: ()=>{
13
+ throw new Error(`'singleton' property must be of type 'boolean' or 'undefined'.`);
14
+ },
15
+ transform: (r)=>{
16
+ return typeof r === 'undefined' ? true : r ? true : false;
13
17
  }
14
- return new r();
18
+ },
19
+ events: {
20
+ test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
21
+ throw: ()=>{
22
+ throw new Error(`'events' property must be an array of strings or 'undefined'.`);
23
+ },
24
+ transform: (r)=>r
25
+ },
26
+ inject: {
27
+ test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
28
+ throw: ()=>{
29
+ throw new Error(`'inject' property must be an array of tuples of length 1, 2 or 3.`);
30
+ },
31
+ transform: (r)=>r
32
+ },
33
+ use: {
34
+ test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>{
35
+ if (!Array.isArray(r) || r.length !== 2) {
36
+ return false;
37
+ }
38
+ const e = r[1];
39
+ return typeof e !== 'undefined';
40
+ }),
41
+ throw: ()=>{
42
+ throw new Error(`'use' property must be an array of tuples of length 2 with [identifier, instance | factory].`);
43
+ },
44
+ transform: (r)=>r
45
+ },
46
+ engage: {
47
+ test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
48
+ throw: ()=>{
49
+ throw new Error(`'engage' property must be an array of tuples of length 1, 2 or 3.`);
50
+ },
51
+ transform: (r)=>r
52
+ },
53
+ tags: {
54
+ test: (r)=>typeof r === 'undefined' || typeof r === 'string' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
55
+ throw: ()=>{
56
+ throw new Error(`'tags' property must be a string or an array of strings.`);
57
+ },
58
+ transform: (r)=>typeof r === 'string' ? [
59
+ r
60
+ ] : r
61
+ },
62
+ metadata: {
63
+ test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
64
+ throw: ()=>{
65
+ throw new Error(`'metadata' property must be of type 'object' or 'undefined'.`);
66
+ },
67
+ transform: (r)=>r
68
+ },
69
+ global: {
70
+ test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
71
+ throw: ()=>{
72
+ throw new Error(`'global' property must be of type 'object' or 'undefined'.`);
73
+ },
74
+ transform: (r)=>r
15
75
  }
16
- static hasResolver(e) {
17
- return this.resolvers.has(e);
76
+ };
77
+ const validateDefinition = (r)=>{
78
+ const e = {
79
+ ...r
80
+ };
81
+ for(const r in e){
82
+ if (!Object.keys(n).includes(r)) {
83
+ throw new Error(`Property '${r}' is not a valid assemblage definition property.`);
84
+ }
18
85
  }
19
- static getRegisteredTypes() {
20
- return Array.from(this.resolvers.keys());
86
+ for(const r in n){
87
+ const t = n[r].test;
88
+ const o = n[r].throw;
89
+ const s = n[r].transform;
90
+ if (!t(e[r])) {
91
+ o();
92
+ }
93
+ e[r] = s(e[r]);
21
94
  }
22
- static clear() {
23
- this.resolvers.clear();
95
+ return e;
96
+ };
97
+ const getDefinition = (e)=>{
98
+ if (!helpers.isAssemblage(e)) {
99
+ throw new Error(`Class '${e.name}' is not an assemblage or transversal.`);
24
100
  }
25
- }
26
- ResolverStore.resolvers = new Map();
101
+ return reflection.getOwnCustomMetadata(constants.ReflectValue.AssemblageDefinition, e);
102
+ };
103
+ const setDefinitionValue = (t, o, n)=>{
104
+ const s = getDefinition(n);
105
+ s[t] = o;
106
+ const a = validateDefinition(s);
107
+ reflection.defineCustomMetadata(constants.ReflectValue.AssemblageDefinition, a, n);
108
+ return a;
109
+ };
27
110
 
28
- exports.ResolverStore = ResolverStore;
111
+ exports.getDefinition = getDefinition;
112
+ exports.setDefinitionValue = setDefinitionValue;
113
+ exports.validateDefinition = validateDefinition;