@allgemein/schema-api 1.5.16 → 1.5.17

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,"sources":["../../../src/lib/AbstractRef.ts"],"names":[],"mappings":"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","file":"AbstractRef.js","sourcesContent":["import {assign, get, has, isEmpty, keys, set, snakeCase} from 'lodash';\nimport {\n C_NAME,\n DEFAULT_NAMESPACE,\n JS_DATA_TYPES,\n METADATA_TYPE,\n METATYPE_PROPERTY,\n METATYPE_SCHEMA,\n} from './Constants';\nimport {IBaseRef} from '../api/IBaseRef';\nimport {IClassRef, isClassRef} from '../api/IClassRef';\nimport {MetadataRegistry} from './registry/MetadataRegistry';\nimport {ILookupRegistry} from '../api/ILookupRegistry';\n\n\nexport abstract class AbstractRef implements IBaseRef {\n\n readonly metaType: METADATA_TYPE;\n\n namespace: string = DEFAULT_NAMESPACE;\n\n private _cachedOptions: any;\n\n readonly name: string;\n\n readonly object: IClassRef;\n\n\n constructor(type: METADATA_TYPE,\n name: string,\n object: IClassRef | Function | string = null,\n namespace: string = DEFAULT_NAMESPACE) {\n this.namespace = namespace;\n this.metaType = type;\n this.name = name;\n if (isClassRef(object)) {\n this.object = object;\n } else {\n this.object = object ? this.getClassRefFor(object, type) : null;\n }\n }\n\n abstract getClassRefFor(object: string | Function | IClassRef, type: METADATA_TYPE): IClassRef;\n\n getNamespace() {\n return this.namespace;\n }\n\n abstract getRegistry(): ILookupRegistry;\n\n getSourceRef() {\n return this.object;\n }\n\n protected getOptionsEntry() {\n if (!this._cachedOptions) {\n if (this.metaType === METATYPE_PROPERTY) {\n this._cachedOptions = MetadataRegistry.$().findCached(this.metaType, (x: any) =>\n x.target === this.getClass(true) &&\n x.propertyName === this.name &&\n x.namespace === this.getNamespace()\n );\n if (!this._cachedOptions) {\n this._cachedOptions = {target: this.getClass(true), propertyName: this.name, namespace: this.getNamespace()};\n MetadataRegistry.$().addCached(this.metaType, this._cachedOptions);\n }\n } else if (this.metaType === METATYPE_SCHEMA) {\n this._cachedOptions = MetadataRegistry.$().findCached(this.metaType, (x: any) =>\n x.name === this.name &&\n x.namespace === this.getNamespace()\n );\n if (!this._cachedOptions) {\n this._cachedOptions = {name: this.name, namespace: this.getNamespace()};\n MetadataRegistry.$().addCached(this.metaType, this._cachedOptions);\n }\n } else {\n this._cachedOptions = MetadataRegistry.$().findCached(this.metaType, (x: any) =>\n x.target === this.getClass(true) &&\n x.namespace === this.getNamespace()\n );\n if (!this._cachedOptions) {\n this._cachedOptions = {target: this.getClass(true), namespace: this.getNamespace()};\n MetadataRegistry.$().addCached(this.metaType, this._cachedOptions);\n }\n }\n }\n return this._cachedOptions;\n }\n\n getOptions(key?: string, defaultValue: any = null): any {\n if (key) {\n return get(this.getOptionsEntry(), key, defaultValue);\n }\n return this.getOptionsEntry();\n }\n\n setOptions(options: any) {\n if (options && !isEmpty(keys(options))) {\n const opts = this.getOptionsEntry();\n // if same object cause taken from MetadataRegistry then ignore setting\n if (opts !== options) {\n for (const k of keys(opts)) {\n delete opts[k];\n }\n assign(opts, options);\n }\n }\n }\n\n setOption(key: string, value: any) {\n const opts = this.getOptionsEntry();\n set(opts, key, value);\n }\n\n hasOption(key: string) {\n const opts = this.getOptionsEntry();\n return has(opts, key);\n }\n\n // getOptions(key: string = null, defaultValue: any = null): any | OPTS {\n // if (key) {\n // return get(this.options, key, defaultValue);\n // }\n // return this.options;\n // }\n //\n // setOptions(opts: any) {\n // if (opts && !isEmpty(keys(opts))) {\n // if (!isEmpty(keys(this.options))) {\n // this.options = merge(this.options, opts);\n // } else {\n // this.options = opts;\n // }\n // }\n // }\n //\n //\n // setOption(key: string, value: any) {\n // if (!this.options) {\n // this.options = <any>{};\n // }\n // set(<any>this.options, key, value);\n // }\n\n\n getClassRef() {\n return this.object;\n }\n\n\n getClass(create: boolean = false) {\n return this.getClassRef().getClass(create);\n }\n\n\n get machineName() {\n return snakeCase(this.name);\n }\n\n\n get originalName() {\n if (this.object) {\n return this.object.name;\n }\n return null;\n }\n\n get storingName() {\n let name = null;\n if (this.metaType === METATYPE_PROPERTY) {\n name = this.getOptions(C_NAME, null);\n if (!name) {\n name = snakeCase(this.name);\n }\n } else {\n if (this.name !== this.originalName) {\n name = this.name;\n } else {\n name = snakeCase(this.name);\n }\n }\n return name;\n }\n\n\n abstract id(): string;\n\n\n /**\n * Return supported primative data types\n */\n getSupportedDataTypes() {\n return JS_DATA_TYPES;\n }\n\n\n // toJson() {\n // let options = cloneDeep(this.getOptions());\n // let o: any = {\n // id: this.id(),\n // name: this.name,\n // type: this.metaType,\n // machineName: this.machineName,\n // options: options\n // };\n // return o;\n // }\n\n}\n\n\n\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/lib/AbstractRef.ts"],"names":[],"mappings":"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","file":"AbstractRef.js","sourcesContent":["import {assign, get, has, isEmpty, keys, set, snakeCase} from 'lodash';\nimport {\n C_NAME,\n DEFAULT_NAMESPACE,\n JS_DATA_TYPES,\n METADATA_TYPE,\n METATYPE_PROPERTY,\n METATYPE_SCHEMA,\n} from './Constants';\nimport {IBaseRef} from '../api/IBaseRef';\nimport {IClassRef, isClassRef} from '../api/IClassRef';\nimport {MetadataRegistry} from './registry/MetadataRegistry';\nimport {ILookupRegistry} from '../api/ILookupRegistry';\n\n\nexport abstract class AbstractRef implements IBaseRef {\n\n readonly metaType: METADATA_TYPE;\n\n namespace: string = DEFAULT_NAMESPACE;\n\n private _cachedOptions: any;\n\n readonly name: string;\n\n readonly object: IClassRef;\n\n\n constructor(type: METADATA_TYPE,\n name: string,\n object: IClassRef | Function | string = null,\n namespace: string = DEFAULT_NAMESPACE) {\n this.namespace = namespace;\n this.metaType = type;\n this.name = name;\n if (isClassRef(object)) {\n this.object = object;\n } else {\n this.object = object ? this.getClassRefFor(object, type) : null;\n }\n }\n\n\n abstract getClassRefFor(object: string | Function | IClassRef, type: METADATA_TYPE): IClassRef;\n\n getNamespace() {\n return this.namespace;\n }\n\n abstract getRegistry(): ILookupRegistry;\n\n getSourceRef() {\n return this.object;\n }\n\n protected getOptionsEntry() {\n if (!this._cachedOptions) {\n if (this.metaType === METATYPE_PROPERTY) {\n this._cachedOptions = MetadataRegistry.$().findCached(this.metaType, (x: any) =>\n x.target === this.getClass(true) &&\n x.propertyName === this.name &&\n x.namespace === this.getNamespace()\n );\n if (!this._cachedOptions) {\n this._cachedOptions = {target: this.getClass(true), propertyName: this.name, namespace: this.getNamespace()};\n MetadataRegistry.$().addCached(this.metaType, this._cachedOptions);\n }\n } else if (this.metaType === METATYPE_SCHEMA) {\n this._cachedOptions = MetadataRegistry.$().findCached(this.metaType, (x: any) =>\n x.name === this.name &&\n x.namespace === this.getNamespace()\n );\n if (!this._cachedOptions) {\n this._cachedOptions = {name: this.name, namespace: this.getNamespace()};\n MetadataRegistry.$().addCached(this.metaType, this._cachedOptions);\n }\n } else {\n this._cachedOptions = MetadataRegistry.$().findCached(this.metaType, (x: any) =>\n x.target === this.getClass(true) &&\n x.namespace === this.getNamespace()\n );\n if (!this._cachedOptions) {\n this._cachedOptions = {target: this.getClass(true), namespace: this.getNamespace()};\n MetadataRegistry.$().addCached(this.metaType, this._cachedOptions);\n }\n }\n }\n return this._cachedOptions;\n }\n\n getOptions(key?: string, defaultValue: any = null): any {\n if (key) {\n return get(this.getOptionsEntry(), key, defaultValue);\n }\n return this.getOptionsEntry();\n }\n\n setOptions(options: any) {\n if (options && !isEmpty(keys(options))) {\n const opts = this.getOptionsEntry();\n // if same object cause taken from MetadataRegistry then ignore setting\n if (opts !== options) {\n for (const k of keys(opts)) {\n delete opts[k];\n }\n assign(opts, options);\n }\n }\n }\n\n setOption(key: string, value: any) {\n const opts = this.getOptionsEntry();\n set(opts, key, value);\n }\n\n hasOption(key: string) {\n const opts = this.getOptionsEntry();\n return has(opts, key);\n }\n\n // getOptions(key: string = null, defaultValue: any = null): any | OPTS {\n // if (key) {\n // return get(this.options, key, defaultValue);\n // }\n // return this.options;\n // }\n //\n // setOptions(opts: any) {\n // if (opts && !isEmpty(keys(opts))) {\n // if (!isEmpty(keys(this.options))) {\n // this.options = merge(this.options, opts);\n // } else {\n // this.options = opts;\n // }\n // }\n // }\n //\n //\n // setOption(key: string, value: any) {\n // if (!this.options) {\n // this.options = <any>{};\n // }\n // set(<any>this.options, key, value);\n // }\n\n\n getClassRef() {\n return this.object;\n }\n\n\n getClass(create: boolean = false) {\n return this.getClassRef().getClass(create);\n }\n\n\n get machineName() {\n return snakeCase(this.name);\n }\n\n\n get originalName() {\n if (this.object) {\n return this.object.name;\n }\n return null;\n }\n\n get storingName() {\n let name = null;\n if (this.metaType === METATYPE_PROPERTY) {\n name = this.getOptions(C_NAME, null);\n if (!name) {\n name = snakeCase(this.name);\n }\n } else {\n if (this.name !== this.originalName) {\n name = this.name;\n } else {\n name = snakeCase(this.name);\n }\n }\n return name;\n }\n\n\n abstract id(): string;\n\n\n /**\n * Return supported primative data types\n */\n getSupportedDataTypes() {\n return JS_DATA_TYPES;\n }\n\n\n // toJson() {\n // let options = cloneDeep(this.getOptions());\n // let o: any = {\n // id: this.id(),\n // name: this.name,\n // type: this.metaType,\n // machineName: this.machineName,\n // options: options\n // };\n // return o;\n // }\n\n}\n\n\n\n"],"sourceRoot":".."}
@@ -50,3 +50,8 @@ export interface IMinMax {
50
50
  max: number;
51
51
  }
52
52
  export declare const DEFAULT_KEY_TO_SKIP: string[];
53
+ /**
54
+ * Entity option signals that entity is generate by an other
55
+ */
56
+ export declare const K_ENTITY_BUILT = "_built_";
57
+ export declare const DEFINED_PROPS_TO_OPTS: string[];
package/lib/Constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_KEY_TO_SKIP = exports.K_TRIGGERED = exports.K_PATTERN_PROPERTY = exports.STATE_KEY = exports.OPT_CREAT_AND_COPY = exports.__NS__ = exports.__CLASS__ = exports.C_PROP_NAME = exports.T_BOOLEAN = exports.T_OBJECT = exports.T_ARRAY = exports.T_STRING = exports.C_EVENT_DRAIN_FINISHED = exports.C_EVENT_UPDATE = exports.C_EVENT_REMOVE = exports.C_EVENT_ADD = exports.JS_PRIMATIVE_TYPES = exports.JS_DATA_TYPES = exports.XS_ANNOTATION_OPTIONS_CACHE = exports.METADATA_REGISTRY = exports.XS_DEFAULT_SCHEMA = exports.XS_ID_SEPARATOR = exports.BINDING_SCHEMA_CLASS_REF = exports.BINDING_SCHEMA_ENTITY = exports.METATYPE_EMBEDDABLE = exports.METATYPE_PROPERTY = exports.METATYPE_CLASS_REF = exports.METATYPE_NAMESPACE = exports.METATYPE_ENTITY = exports.METATYPE_SCHEMA = exports.REFLECT_DESIGN_TYPE = exports.XS_DEFAULT_CLASSES = exports.C_CARDINALITY = exports.C_APPENDED = exports.C_NAME = exports.C_TYPE = exports.C_IDENTIFIER = exports.GLOBAL_NAMESPACE = exports.DEFAULT_NAMESPACE = void 0;
3
+ exports.DEFINED_PROPS_TO_OPTS = exports.K_ENTITY_BUILT = exports.DEFAULT_KEY_TO_SKIP = exports.K_TRIGGERED = exports.K_PATTERN_PROPERTY = exports.STATE_KEY = exports.OPT_CREAT_AND_COPY = exports.__NS__ = exports.__CLASS__ = exports.C_PROP_NAME = exports.T_BOOLEAN = exports.T_OBJECT = exports.T_ARRAY = exports.T_STRING = exports.C_EVENT_DRAIN_FINISHED = exports.C_EVENT_UPDATE = exports.C_EVENT_REMOVE = exports.C_EVENT_ADD = exports.JS_PRIMATIVE_TYPES = exports.JS_DATA_TYPES = exports.XS_ANNOTATION_OPTIONS_CACHE = exports.METADATA_REGISTRY = exports.XS_DEFAULT_SCHEMA = exports.XS_ID_SEPARATOR = exports.BINDING_SCHEMA_CLASS_REF = exports.BINDING_SCHEMA_ENTITY = exports.METATYPE_EMBEDDABLE = exports.METATYPE_PROPERTY = exports.METATYPE_CLASS_REF = exports.METATYPE_NAMESPACE = exports.METATYPE_ENTITY = exports.METATYPE_SCHEMA = exports.REFLECT_DESIGN_TYPE = exports.XS_DEFAULT_CLASSES = exports.C_CARDINALITY = exports.C_APPENDED = exports.C_NAME = exports.C_TYPE = exports.C_IDENTIFIER = exports.GLOBAL_NAMESPACE = exports.DEFAULT_NAMESPACE = void 0;
4
4
  exports.DEFAULT_NAMESPACE = 'default';
5
5
  exports.GLOBAL_NAMESPACE = '__global__';
6
6
  exports.C_IDENTIFIER = 'identifier';
@@ -68,5 +68,10 @@ exports.STATE_KEY = '$state';
68
68
  exports.K_PATTERN_PROPERTY = 'patternProperty';
69
69
  exports.K_TRIGGERED = Symbol('_triggered_');
70
70
  exports.DEFAULT_KEY_TO_SKIP = [exports.C_TYPE, '$ref', 'target', 'propertyName', 'metaType', 'namespace', exports.C_NAME];
71
+ /**
72
+ * Entity option signals that entity is generate by an other
73
+ */
74
+ exports.K_ENTITY_BUILT = '_built_';
75
+ exports.DEFINED_PROPS_TO_OPTS = [exports.K_ENTITY_BUILT];
71
76
 
72
77
  //# sourceMappingURL=Constants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAGhC,QAAA,YAAY,GAAG,YAAY,CAAC;AAC5B,QAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,aAAa,GAAG,aAAa,CAAC;AAG9B,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AAEzC,QAAA,mBAAmB,GAAG,aAAa,CAAC;AACpC,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,iBAAiB,GAAG,UAAU,CAAC;AAC/B,QAAA,mBAAmB,GAAG,QAAQ,CAAC;AAU/B,QAAA,qBAAqB,GAAG,eAAe,CAAC;AACxC,QAAA,wBAAwB,GAAG,kBAAkB,CAAC;AAS9C,QAAA,eAAe,GAAG,IAAI,CAAC;AAEvB,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAG9B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAyBxC,QAAA,2BAA2B,GAAG,oBAAoB,CAAC;AAChE,mEAAmE;AAEtD,QAAA,aAAa,GAAoB;IAC5C,QAAQ;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,WAAW;IACX,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,WAAW;IACX,QAAQ;CACX,CAAC;AAEW,QAAA,kBAAkB,GAAoB;IACjD,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,QAAQ;CACT,CAAC;AAGW,QAAA,WAAW,GAAG,KAAK,CAAC;AACpB,QAAA,cAAc,GAAG,QAAQ,CAAC;AAC1B,QAAA,cAAc,GAAG,QAAQ,CAAC;AAC1B,QAAA,sBAAsB,GAAG,gBAAgB,CAAC;AAE1C,QAAA,QAAQ,GAAG,QAAQ,CAAC;AACpB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,QAAQ,GAAG,QAAQ,CAAC;AACpB,QAAA,SAAS,GAAG,SAAS,CAAC;AAEtB,QAAA,WAAW,GAAG,MAAM,CAAC;AACrB,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAErC,QAAA,SAAS,GAAG,QAAQ,CAAC;AAErB,QAAA,kBAAkB,GAAG,iBAAiB,CAAC;AACvC,QAAA,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAWpC,QAAA,mBAAmB,GAAG,CAAC,cAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,cAAM,CAAC,CAAC","file":"Constants.js","sourcesContent":["import exp = require('constants');\n\nexport const DEFAULT_NAMESPACE = 'default';\nexport const GLOBAL_NAMESPACE = '__global__';\n\n\nexport const C_IDENTIFIER = 'identifier';\nexport const C_TYPE = 'type';\nexport const C_NAME = 'name';\nexport const C_APPENDED = 'appended';\nexport const C_CARDINALITY = 'cardinality';\n\n\nexport const XS_DEFAULT_CLASSES = 'default_class_ref';\n\nexport const REFLECT_DESIGN_TYPE = 'design:type';\nexport const METATYPE_SCHEMA = 'schema';\nexport const METATYPE_ENTITY = 'entity';\nexport const METATYPE_NAMESPACE = 'namespace';\nexport const METATYPE_CLASS_REF = 'class_ref';\nexport const METATYPE_PROPERTY = 'property';\nexport const METATYPE_EMBEDDABLE = 'object';\n\nexport type METADATA_TYPE =\n 'schema'\n | 'object'\n | 'entity'\n | 'property'\n | 'class_ref';\n\n\nexport const BINDING_SCHEMA_ENTITY = 'schema_entity';\nexport const BINDING_SCHEMA_CLASS_REF = 'schema_class_ref';\n\nexport type METADATA_AND_BIND_TYPE = METADATA_TYPE\n | 'schema_entity'\n | 'entity_property'\n | 'property_entity'\n | 'schema_class_ref';\n\nexport type XS_DATA_TYPES = 'string' | 'number' | 'boolean' | 'entity' | 'array' | 'any' ;\nexport const XS_ID_SEPARATOR = '--';\n\nexport const XS_DEFAULT_SCHEMA = 'default';\n\n\nexport const METADATA_REGISTRY = 'metadata/registry';\n\n\nexport type ClassType<T> = { new(...args: any[]): T; };\n\nexport type JS_DATA_TYPES =\n 'string'\n | 'text'\n | 'number'\n | 'boolean'\n | 'double'\n | 'json'\n | 'date'\n | 'time'\n | 'datetime'\n | 'timestamp'\n | 'byte'\n | 'object'\n | 'array'\n | 'symbol'\n | 'null'\n | 'undefined'\n | 'bigint'\n ;\n\nexport const XS_ANNOTATION_OPTIONS_CACHE = 'anno_options_cache';\n// export const XS_ANNOTATION_OPTIONS_CACHE = 'anno_options_cache';\n\nexport const JS_DATA_TYPES: JS_DATA_TYPES[] = [\n 'string'\n , 'text'\n , 'number'\n , 'boolean'\n , 'double'\n , 'json'\n , 'date'\n , 'time'\n , 'datetime'\n , 'timestamp'\n , 'byte'\n , 'object'\n , 'symbol'\n , 'null'\n , 'undefined'\n , 'bigint'\n];\n\nexport const JS_PRIMATIVE_TYPES: JS_DATA_TYPES[] = [\n 'string',\n 'number',\n 'boolean',\n 'object',\n 'symbol',\n 'date',\n 'null',\n 'undefined',\n 'bigint'\n];\n\n\nexport const C_EVENT_ADD = 'add';\nexport const C_EVENT_REMOVE = 'remove';\nexport const C_EVENT_UPDATE = 'update';\nexport const C_EVENT_DRAIN_FINISHED = 'drain_finished';\n\nexport const T_STRING = 'string';\nexport const T_ARRAY = 'array';\nexport const T_OBJECT = 'object';\nexport const T_BOOLEAN = 'boolean';\n\nexport const C_PROP_NAME = 'name';\nexport const __CLASS__ = '__CLASS__';\nexport const __NS__ = '__NS__';\nexport const OPT_CREAT_AND_COPY = 'createAndCopy';\n\nexport const STATE_KEY = '$state';\n\nexport const K_PATTERN_PROPERTY = 'patternProperty';\nexport const K_TRIGGERED = Symbol('_triggered_');\n\nexport type CLASS_TYPE = Function | ClassType<any>;\nexport type MERGE_TYPE = 'default' | 'assign' | 'merge';\n\nexport interface IMinMax {\n min: number;\n max: number;\n}\n\n\nexport const DEFAULT_KEY_TO_SKIP = [C_TYPE, '$ref', 'target', 'propertyName', 'metaType', 'namespace', C_NAME];\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAGhC,QAAA,YAAY,GAAG,YAAY,CAAC;AAC5B,QAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,aAAa,GAAG,aAAa,CAAC;AAG9B,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AAEzC,QAAA,mBAAmB,GAAG,aAAa,CAAC;AACpC,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,iBAAiB,GAAG,UAAU,CAAC;AAC/B,QAAA,mBAAmB,GAAG,QAAQ,CAAC;AAU/B,QAAA,qBAAqB,GAAG,eAAe,CAAC;AACxC,QAAA,wBAAwB,GAAG,kBAAkB,CAAC;AAS9C,QAAA,eAAe,GAAG,IAAI,CAAC;AAEvB,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAG9B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAyBxC,QAAA,2BAA2B,GAAG,oBAAoB,CAAC;AAChE,mEAAmE;AAEtD,QAAA,aAAa,GAAoB;IAC5C,QAAQ;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,WAAW;IACX,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,WAAW;IACX,QAAQ;CACX,CAAC;AAEW,QAAA,kBAAkB,GAAoB;IACjD,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,QAAQ;CACT,CAAC;AAGW,QAAA,WAAW,GAAG,KAAK,CAAC;AACpB,QAAA,cAAc,GAAG,QAAQ,CAAC;AAC1B,QAAA,cAAc,GAAG,QAAQ,CAAC;AAC1B,QAAA,sBAAsB,GAAG,gBAAgB,CAAC;AAE1C,QAAA,QAAQ,GAAG,QAAQ,CAAC;AACpB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,QAAQ,GAAG,QAAQ,CAAC;AACpB,QAAA,SAAS,GAAG,SAAS,CAAC;AAEtB,QAAA,WAAW,GAAG,MAAM,CAAC;AACrB,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAErC,QAAA,SAAS,GAAG,QAAQ,CAAC;AAErB,QAAA,kBAAkB,GAAG,iBAAiB,CAAC;AACvC,QAAA,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAWpC,QAAA,mBAAmB,GAAG,CAAC,cAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,cAAM,CAAC,CAAC;AAE/G;;GAEG;AACU,QAAA,cAAc,GAAG,SAAS,CAAC;AAE3B,QAAA,qBAAqB,GAAG,CAAC,sBAAc,CAAC,CAAC","file":"Constants.js","sourcesContent":["import exp = require('constants');\n\nexport const DEFAULT_NAMESPACE = 'default';\nexport const GLOBAL_NAMESPACE = '__global__';\n\n\nexport const C_IDENTIFIER = 'identifier';\nexport const C_TYPE = 'type';\nexport const C_NAME = 'name';\nexport const C_APPENDED = 'appended';\nexport const C_CARDINALITY = 'cardinality';\n\n\nexport const XS_DEFAULT_CLASSES = 'default_class_ref';\n\nexport const REFLECT_DESIGN_TYPE = 'design:type';\nexport const METATYPE_SCHEMA = 'schema';\nexport const METATYPE_ENTITY = 'entity';\nexport const METATYPE_NAMESPACE = 'namespace';\nexport const METATYPE_CLASS_REF = 'class_ref';\nexport const METATYPE_PROPERTY = 'property';\nexport const METATYPE_EMBEDDABLE = 'object';\n\nexport type METADATA_TYPE =\n 'schema'\n | 'object'\n | 'entity'\n | 'property'\n | 'class_ref';\n\n\nexport const BINDING_SCHEMA_ENTITY = 'schema_entity';\nexport const BINDING_SCHEMA_CLASS_REF = 'schema_class_ref';\n\nexport type METADATA_AND_BIND_TYPE = METADATA_TYPE\n | 'schema_entity'\n | 'entity_property'\n | 'property_entity'\n | 'schema_class_ref';\n\nexport type XS_DATA_TYPES = 'string' | 'number' | 'boolean' | 'entity' | 'array' | 'any';\nexport const XS_ID_SEPARATOR = '--';\n\nexport const XS_DEFAULT_SCHEMA = 'default';\n\n\nexport const METADATA_REGISTRY = 'metadata/registry';\n\n\nexport type ClassType<T> = { new(...args: any[]): T; };\n\nexport type JS_DATA_TYPES =\n 'string'\n | 'text'\n | 'number'\n | 'boolean'\n | 'double'\n | 'json'\n | 'date'\n | 'time'\n | 'datetime'\n | 'timestamp'\n | 'byte'\n | 'object'\n | 'array'\n | 'symbol'\n | 'null'\n | 'undefined'\n | 'bigint'\n ;\n\nexport const XS_ANNOTATION_OPTIONS_CACHE = 'anno_options_cache';\n// export const XS_ANNOTATION_OPTIONS_CACHE = 'anno_options_cache';\n\nexport const JS_DATA_TYPES: JS_DATA_TYPES[] = [\n 'string'\n , 'text'\n , 'number'\n , 'boolean'\n , 'double'\n , 'json'\n , 'date'\n , 'time'\n , 'datetime'\n , 'timestamp'\n , 'byte'\n , 'object'\n , 'symbol'\n , 'null'\n , 'undefined'\n , 'bigint'\n];\n\nexport const JS_PRIMATIVE_TYPES: JS_DATA_TYPES[] = [\n 'string',\n 'number',\n 'boolean',\n 'object',\n 'symbol',\n 'date',\n 'null',\n 'undefined',\n 'bigint'\n];\n\n\nexport const C_EVENT_ADD = 'add';\nexport const C_EVENT_REMOVE = 'remove';\nexport const C_EVENT_UPDATE = 'update';\nexport const C_EVENT_DRAIN_FINISHED = 'drain_finished';\n\nexport const T_STRING = 'string';\nexport const T_ARRAY = 'array';\nexport const T_OBJECT = 'object';\nexport const T_BOOLEAN = 'boolean';\n\nexport const C_PROP_NAME = 'name';\nexport const __CLASS__ = '__CLASS__';\nexport const __NS__ = '__NS__';\nexport const OPT_CREAT_AND_COPY = 'createAndCopy';\n\nexport const STATE_KEY = '$state';\n\nexport const K_PATTERN_PROPERTY = 'patternProperty';\nexport const K_TRIGGERED = Symbol('_triggered_');\n\nexport type CLASS_TYPE = Function | ClassType<any>;\nexport type MERGE_TYPE = 'default' | 'assign' | 'merge';\n\nexport interface IMinMax {\n min: number;\n max: number;\n}\n\n\nexport const DEFAULT_KEY_TO_SKIP = [C_TYPE, '$ref', 'target', 'propertyName', 'metaType', 'namespace', C_NAME];\n\n/**\n * Entity option signals that entity is generate by an other\n */\nexport const K_ENTITY_BUILT = '_built_';\n\nexport const DEFINED_PROPS_TO_OPTS = [K_ENTITY_BUILT];\n"],"sourceRoot":".."}
@@ -9,6 +9,7 @@ import { ILookupRegistry } from '../../api/ILookupRegistry';
9
9
  import { SchemaRef } from '../SchemaRef';
10
10
  export declare class DefaultEntityRef extends AbstractRef implements IEntityRef {
11
11
  constructor(options?: IEntityOptions);
12
+ additionalProperties(options: any): void;
12
13
  getSchemaRefs(): SchemaRef | SchemaRef[];
13
14
  getRegistry(): ILookupRegistry;
14
15
  build<T>(instance: any, options?: IBuildOptions): T;
@@ -9,8 +9,20 @@ class DefaultEntityRef extends AbstractRef_1.AbstractRef {
9
9
  constructor(options = {}) {
10
10
  super(Constants_1.METATYPE_ENTITY, options.name, options.target, options.namespace ? options.namespace : Constants_1.DEFAULT_NAMESPACE);
11
11
  AnnotationsHelper_1.AnnotationsHelper.merge(this.object, options);
12
+ this.additionalProperties(options);
12
13
  this.setOptions(options);
13
14
  }
15
+ additionalProperties(options) {
16
+ const cls = this.getSourceRef().getClass();
17
+ if (cls) {
18
+ Constants_1.DEFINED_PROPS_TO_OPTS.forEach(k => {
19
+ const p = Object.getOwnPropertyDescriptor(cls, k);
20
+ if (p) {
21
+ options[k] = p.value;
22
+ }
23
+ });
24
+ }
25
+ }
14
26
  getSchemaRefs() {
15
27
  return this.getRegistry().getSchemaRefsFor(this);
16
28
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/registry/DefaultEntityRef.ts"],"names":[],"mappings":";;;AACA,gDAA2C;AAG3C,4CAAgG;AAGhG,4DAAuD;AAEvD,uDAAkD;AAGlD,MAAa,gBAAiB,SAAQ,yBAAW;IAG/C,YAAY,UAA0B,EAAE;QACtC,KAAK,CAAC,2BAAe,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,6BAAiB,CAAC,CAAC;QAChH,qCAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAGD,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAQ,CAAC;IAC1D,CAAC;IAED,WAAW;QACT,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAI,QAAa,EAAE,OAAuB;QAC7C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAI,OAAiB;QACzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,EAAE;QACA,OAAO,CAAC,2BAAe,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,2BAAe,CAAC,CAAC;IAC1E,CAAC;IAED,cAAc,CAAC,MAAqC,EAAE,IAAmB;QACvE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,QAAa;QAChB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CAEF;AAnDD,4CAmDC","file":"DefaultEntityRef.js","sourcesContent":["import {IEntityRef} from '../../api/IEntityRef';\nimport {AbstractRef} from '../AbstractRef';\nimport {IBuildOptions} from '../../api/IBuildOptions';\nimport {IPropertyRef} from '../../api/IPropertyRef';\nimport {DEFAULT_NAMESPACE, METADATA_TYPE, METATYPE_ENTITY, XS_ID_SEPARATOR} from '../Constants';\nimport {IEntityOptions} from '../options/IEntityOptions';\nimport {IClassRef} from '../../api/IClassRef';\nimport {AnnotationsHelper} from '../AnnotationsHelper';\nimport {ILookupRegistry} from '../../api/ILookupRegistry';\nimport {RegistryFactory} from './RegistryFactory';\nimport {SchemaRef} from '../SchemaRef';\n\nexport class DefaultEntityRef extends AbstractRef implements IEntityRef {\n\n\n constructor(options: IEntityOptions = {}) {\n super(METATYPE_ENTITY, options.name, options.target, options.namespace ? options.namespace : DEFAULT_NAMESPACE);\n AnnotationsHelper.merge(this.object, options);\n this.setOptions(options);\n }\n\n\n getSchemaRefs(): SchemaRef | SchemaRef[] {\n return this.getRegistry().getSchemaRefsFor(this) as any;\n }\n\n getRegistry(): ILookupRegistry {\n return RegistryFactory.get(this.namespace);\n }\n\n build<T>(instance: any, options?: IBuildOptions): T {\n return this.getClassRef().build(instance, options);\n }\n\n create<T>(addinfo?: boolean): T {\n return this.getClassRef().create(addinfo);\n }\n\n getPropertyRef(name: string): IPropertyRef {\n return this.getRegistry().getPropertyRef(this, name);\n }\n\n getPropertyRefs(): IPropertyRef[] {\n return this.getRegistry().getPropertyRefs(this);\n }\n\n id(): string {\n return [METATYPE_ENTITY, this.getClassRef().id()].join(XS_ID_SEPARATOR);\n }\n\n getClassRefFor(object: string | Function | IClassRef, type: METADATA_TYPE): IClassRef {\n return this.getRegistry().getClassRefFor(object, this.metaType);\n }\n\n /**\n * Check if an object / instance is of same type like this entity ref (same check as IClassRef.isOf).\n *\n * @param instance\n */\n isOf(instance: any): boolean {\n return this.getClassRef().isOf(instance);\n }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../../src/lib/registry/DefaultEntityRef.ts"],"names":[],"mappings":";;;AACA,gDAA2C;AAG3C,4CAAuH;AAGvH,4DAAuD;AAEvD,uDAAkD;AAIlD,MAAa,gBAAiB,SAAQ,yBAAW;IAG/C,YAAY,UAA0B,EAAE;QACtC,KAAK,CAAC,2BAAe,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,6BAAiB,CAAC,CAAC;QAChH,qCAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,oBAAoB,CAAC,OAAY;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,GAAG,EAAE;YACP,iCAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChC,MAAM,CAAC,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,EAAE;oBACL,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAGD,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAQ,CAAC;IAC1D,CAAC;IAED,WAAW;QACT,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAI,QAAa,EAAE,OAAuB;QAC7C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAI,OAAiB;QACzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,EAAE;QACA,OAAO,CAAC,2BAAe,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,2BAAe,CAAC,CAAC;IAC1E,CAAC;IAED,cAAc,CAAC,MAAqC,EAAE,IAAmB;QACvE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,QAAa;QAChB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CAEF;AAhED,4CAgEC","file":"DefaultEntityRef.js","sourcesContent":["import {IEntityRef} from '../../api/IEntityRef';\nimport {AbstractRef} from '../AbstractRef';\nimport {IBuildOptions} from '../../api/IBuildOptions';\nimport {IPropertyRef} from '../../api/IPropertyRef';\nimport {DEFAULT_NAMESPACE, DEFINED_PROPS_TO_OPTS, METADATA_TYPE, METATYPE_ENTITY, XS_ID_SEPARATOR} from '../Constants';\nimport {IEntityOptions} from '../options/IEntityOptions';\nimport {IClassRef} from '../../api/IClassRef';\nimport {AnnotationsHelper} from '../AnnotationsHelper';\nimport {ILookupRegistry} from '../../api/ILookupRegistry';\nimport {RegistryFactory} from './RegistryFactory';\nimport {SchemaRef} from '../SchemaRef';\n\n\nexport class DefaultEntityRef extends AbstractRef implements IEntityRef {\n\n\n constructor(options: IEntityOptions = {}) {\n super(METATYPE_ENTITY, options.name, options.target, options.namespace ? options.namespace : DEFAULT_NAMESPACE);\n AnnotationsHelper.merge(this.object, options);\n this.additionalProperties(options);\n this.setOptions(options);\n }\n\n additionalProperties(options: any) {\n const cls = this.getSourceRef().getClass();\n if (cls) {\n DEFINED_PROPS_TO_OPTS.forEach(k => {\n const p = Object.getOwnPropertyDescriptor(cls, k);\n if (p) {\n options[k] = p.value;\n }\n });\n }\n }\n\n\n getSchemaRefs(): SchemaRef | SchemaRef[] {\n return this.getRegistry().getSchemaRefsFor(this) as any;\n }\n\n getRegistry(): ILookupRegistry {\n return RegistryFactory.get(this.namespace);\n }\n\n build<T>(instance: any, options?: IBuildOptions): T {\n return this.getClassRef().build(instance, options);\n }\n\n create<T>(addinfo?: boolean): T {\n return this.getClassRef().create(addinfo);\n }\n\n getPropertyRef(name: string): IPropertyRef {\n return this.getRegistry().getPropertyRef(this, name);\n }\n\n getPropertyRefs(): IPropertyRef[] {\n return this.getRegistry().getPropertyRefs(this);\n }\n\n id(): string {\n return [METATYPE_ENTITY, this.getClassRef().id()].join(XS_ID_SEPARATOR);\n }\n\n getClassRefFor(object: string | Function | IClassRef, type: METADATA_TYPE): IClassRef {\n return this.getRegistry().getClassRefFor(object, this.metaType);\n }\n\n /**\n * Check if an object / instance is of same type like this entity ref (same check as IClassRef.isOf).\n *\n * @param instance\n */\n isOf(instance: any): boolean {\n return this.getClassRef().isOf(instance);\n }\n\n}\n"],"sourceRoot":"../.."}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allgemein/schema-api",
3
- "version": "1.5.16",
3
+ "version": "1.5.17",
4
4
  "description": "Library for schema api",
5
5
  "main": "index.js",
6
6
  "private": false,