@allgemein/schema-api 1.7.1 → 1.8.0
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/README.md +104 -1
- package/api/IBaseRef.d.ts +2 -2
- package/api/IBaseRef.js +1 -2
- package/api/IBuildOptions.d.ts +2 -2
- package/api/IBuildOptions.js +1 -2
- package/api/IClassRef.d.ts +5 -5
- package/api/IClassRef.js +3 -6
- package/api/IClassRef.js.map +1 -1
- package/api/IEntityRef.d.ts +5 -5
- package/api/IEntityRef.js +3 -6
- package/api/IEntityRef.js.map +1 -1
- package/api/IJsonSchema.d.ts +4 -4
- package/api/IJsonSchema.js +3 -8
- package/api/IJsonSchema.js.map +1 -1
- package/api/ILookupRegistry.d.ts +6 -6
- package/api/ILookupRegistry.js +6 -9
- package/api/ILookupRegistry.js.map +1 -1
- package/api/IPropertyExtentions.d.ts +1 -1
- package/api/IPropertyExtentions.js +1 -2
- package/api/IPropertyExtentions.js.map +1 -1
- package/api/IPropertyRef.d.ts +3 -3
- package/api/IPropertyRef.js +3 -6
- package/api/IPropertyRef.js.map +1 -1
- package/api/ISchemaRef.d.ts +2 -2
- package/api/ISchemaRef.js +1 -2
- package/api/ISerializeSupport.d.ts +4 -4
- package/api/ISerializeSupport.js +3 -8
- package/api/ISerializeSupport.js.map +1 -1
- package/browser.d.ts +65 -65
- package/browser.js +43 -112
- package/browser.js.map +1 -1
- package/decorators/Embeddable.d.ts +1 -1
- package/decorators/Embeddable.js +4 -7
- package/decorators/Embeddable.js.map +1 -1
- package/decorators/Entity.d.ts +1 -1
- package/decorators/Entity.js +4 -7
- package/decorators/Entity.js.map +1 -1
- package/decorators/Namespace.js +7 -10
- package/decorators/Namespace.js.map +1 -1
- package/decorators/Property.d.ts +1 -1
- package/decorators/Property.js +19 -22
- package/decorators/Property.js.map +1 -1
- package/decorators/PropertyOf.d.ts +1 -1
- package/decorators/PropertyOf.js +6 -9
- package/decorators/PropertyOf.js.map +1 -1
- package/decorators/Schema.d.ts +1 -1
- package/decorators/Schema.js +4 -7
- package/decorators/Schema.js.map +1 -1
- package/decorators/validate/Hostname.d.ts +1 -1
- package/decorators/validate/Hostname.js +12 -16
- package/decorators/validate/Hostname.js.map +1 -1
- package/decorators/validate/Ip4.d.ts +1 -1
- package/decorators/validate/Ip4.js +11 -15
- package/decorators/validate/Ip4.js.map +1 -1
- package/decorators/validate/Ip6.d.ts +1 -1
- package/decorators/validate/Ip6.js +11 -15
- package/decorators/validate/Ip6.js.map +1 -1
- package/decorators/validate/IsEmail.d.ts +1 -1
- package/decorators/validate/IsEmail.js +10 -14
- package/decorators/validate/IsEmail.js.map +1 -1
- package/decorators/validate/IsNotEmpty.d.ts +1 -1
- package/decorators/validate/IsNotEmpty.js +11 -14
- package/decorators/validate/IsNotEmpty.js.map +1 -1
- package/decorators/validate/MaxLength.d.ts +1 -1
- package/decorators/validate/MaxLength.js +9 -12
- package/decorators/validate/MaxLength.js.map +1 -1
- package/decorators/validate/MinLength.d.ts +1 -1
- package/decorators/validate/MinLength.js +9 -12
- package/decorators/validate/MinLength.js.map +1 -1
- package/decorators/validate/Regex.d.ts +1 -1
- package/decorators/validate/Regex.js +10 -13
- package/decorators/validate/Regex.js.map +1 -1
- package/decorators/validate/Required.d.ts +1 -1
- package/decorators/validate/Required.js +9 -12
- package/decorators/validate/Required.js.map +1 -1
- package/decorators/validate/index.d.ts +8 -8
- package/decorators/validate/index.js +9 -19
- package/decorators/validate/index.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -17
- package/index.js.map +1 -1
- package/lib/AbstractRef.d.ts +4 -4
- package/lib/AbstractRef.js +29 -33
- package/lib/AbstractRef.js.map +1 -1
- package/lib/AnnotationsHelper.d.ts +2 -2
- package/lib/AnnotationsHelper.js +30 -34
- package/lib/AnnotationsHelper.js.map +1 -1
- package/lib/ClassRef.d.ts +7 -7
- package/lib/ClassRef.js +62 -66
- package/lib/ClassRef.js.map +1 -1
- package/lib/Constants.js +42 -45
- package/lib/Constants.js.map +1 -1
- package/lib/DataContainer.d.ts +6 -6
- package/lib/DataContainer.js +17 -21
- package/lib/DataContainer.js.map +1 -1
- package/lib/LookupRegistry.js +13 -17
- package/lib/LookupRegistry.js.map +1 -1
- package/lib/SchemaRef.d.ts +7 -7
- package/lib/SchemaRef.js +11 -15
- package/lib/SchemaRef.js.map +1 -1
- package/lib/SchemaUtils.d.ts +3 -3
- package/lib/SchemaUtils.js +19 -23
- package/lib/SchemaUtils.js.map +1 -1
- package/lib/functions.d.ts +2 -2
- package/lib/functions.js +7 -10
- package/lib/functions.js.map +1 -1
- package/lib/json-schema/Constants.js +3 -6
- package/lib/json-schema/Constants.js.map +1 -1
- package/lib/json-schema/IJsonSchemaSerializeOptions.d.ts +4 -4
- package/lib/json-schema/IJsonSchemaSerializeOptions.js +1 -2
- package/lib/json-schema/IJsonSchemaSerializer.d.ts +3 -3
- package/lib/json-schema/IJsonSchemaSerializer.js +1 -2
- package/lib/json-schema/IJsonSchemaUnserializeOptions.d.ts +3 -3
- package/lib/json-schema/IJsonSchemaUnserializeOptions.js +1 -2
- package/lib/json-schema/IJsonSchemaUnserializer.d.ts +1 -1
- package/lib/json-schema/IJsonSchemaUnserializer.js +1 -2
- package/lib/json-schema/IParseOptions.d.ts +2 -2
- package/lib/json-schema/IParseOptions.js +1 -4
- package/lib/json-schema/IParseOptions.js.map +1 -1
- package/lib/json-schema/JsonSchema.d.ts +10 -10
- package/lib/json-schema/JsonSchema.js +26 -30
- package/lib/json-schema/JsonSchema.js.map +1 -1
- package/lib/json-schema/JsonSchema7.d.ts +2 -2
- package/lib/json-schema/JsonSchema7.js +3 -8
- package/lib/json-schema/JsonSchema7.js.map +1 -1
- package/lib/json-schema/JsonSchema7Serializer.d.ts +9 -9
- package/lib/json-schema/JsonSchema7Serializer.js +93 -97
- package/lib/json-schema/JsonSchema7Serializer.js.map +1 -1
- package/lib/json-schema/JsonSchema7Unserializer.d.ts +10 -10
- package/lib/json-schema/JsonSchema7Unserializer.js +99 -103
- package/lib/json-schema/JsonSchema7Unserializer.js.map +1 -1
- package/lib/json-schema/functions.d.ts +2 -2
- package/lib/json-schema/functions.js +8 -12
- package/lib/json-schema/functions.js.map +1 -1
- package/lib/options/IAbstractOptions.d.ts +1 -1
- package/lib/options/IAbstractOptions.js +1 -2
- package/lib/options/IAttributeOptions.d.ts +2 -2
- package/lib/options/IAttributeOptions.js +1 -2
- package/lib/options/IEntityOptions.d.ts +2 -2
- package/lib/options/IEntityOptions.js +1 -2
- package/lib/options/INamedOptions.js +1 -2
- package/lib/options/IObjectOptions.d.ts +2 -2
- package/lib/options/IObjectOptions.js +1 -2
- package/lib/options/IPropertyOptions.d.ts +2 -2
- package/lib/options/IPropertyOptions.js +1 -2
- package/lib/options/ISchemaOptions.d.ts +2 -2
- package/lib/options/ISchemaOptions.js +1 -2
- package/lib/registry/AbstractRegistry.d.ts +8 -8
- package/lib/registry/AbstractRegistry.js +19 -23
- package/lib/registry/AbstractRegistry.js.map +1 -1
- package/lib/registry/Binding.d.ts +1 -1
- package/lib/registry/Binding.js +1 -5
- package/lib/registry/Binding.js.map +1 -1
- package/lib/registry/DefaultEntityRef.d.ts +9 -9
- package/lib/registry/DefaultEntityRef.js +10 -14
- package/lib/registry/DefaultEntityRef.js.map +1 -1
- package/lib/registry/DefaultNamespacedRegistry.d.ts +14 -14
- package/lib/registry/DefaultNamespacedRegistry.js +122 -126
- package/lib/registry/DefaultNamespacedRegistry.js.map +1 -1
- package/lib/registry/DefaultPropertyRef.d.ts +7 -7
- package/lib/registry/DefaultPropertyRef.js +42 -46
- package/lib/registry/DefaultPropertyRef.js.map +1 -1
- package/lib/registry/IRegistryOptions.js +1 -2
- package/lib/registry/MetadataRegistry.d.ts +8 -8
- package/lib/registry/MetadataRegistry.js +29 -33
- package/lib/registry/MetadataRegistry.js.map +1 -1
- package/lib/registry/RegistryFactory.d.ts +3 -3
- package/lib/registry/RegistryFactory.js +19 -23
- package/lib/registry/RegistryFactory.js.map +1 -1
- package/lib/serializer/ISerializeOptions.js +1 -2
- package/lib/serializer/ISerializer.d.ts +2 -2
- package/lib/serializer/ISerializer.js +1 -2
- package/lib/serializer/ISerializerFactory.d.ts +6 -6
- package/lib/serializer/ISerializerFactory.js +1 -2
- package/lib/serializer/IUnserializeOptions.js +1 -2
- package/lib/serializer/IUnserializer.d.ts +2 -2
- package/lib/serializer/IUnserializer.js +1 -2
- package/lib/serializer/SerializerRegistry.d.ts +1 -1
- package/lib/serializer/SerializerRegistry.js +3 -7
- package/lib/serializer/SerializerRegistry.js.map +1 -1
- package/lib/validation/DefaultValidator.d.ts +5 -5
- package/lib/validation/DefaultValidator.js +32 -36
- package/lib/validation/DefaultValidator.js.map +1 -1
- package/lib/validation/IValidateOptions.js +1 -2
- package/lib/validation/IValidationError.js +1 -2
- package/lib/validation/IValidationMessage.js +1 -2
- package/lib/validation/IValidationOptions.d.ts +1 -0
- package/lib/validation/IValidationOptions.js +1 -0
- package/lib/validation/IValidationOptions.js.map +1 -1
- package/lib/validation/IValidationResult.d.ts +1 -1
- package/lib/validation/IValidationResult.js +1 -2
- package/lib/validation/IValidator.d.ts +1 -1
- package/lib/validation/IValidator.js +1 -2
- package/lib/validation/IValidatorEntry.d.ts +1 -1
- package/lib/validation/IValidatorEntry.js +1 -2
- package/lib/validation/IValidatorHandle.js +1 -2
- package/lib/validation/Validator.d.ts +4 -4
- package/lib/validation/Validator.js +7 -11
- package/lib/validation/Validator.js.map +1 -1
- package/package.json +3 -2
package/lib/ClassRef.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const RegistryFactory_1 = require("./registry/RegistryFactory");
|
|
10
|
-
const AbstractRef_1 = require("./AbstractRef");
|
|
11
|
-
const MetadataRegistry_1 = require("./registry/MetadataRegistry");
|
|
1
|
+
import { first, has, isEmpty, isFunction, isString, isUndefined, kebabCase, snakeCase, get, isBoolean, isObjectLike } from '@allgemein/base';
|
|
2
|
+
import { ClassUtils, NotYetImplementedError } from '@allgemein/base';
|
|
3
|
+
import { SchemaUtils } from './SchemaUtils.js';
|
|
4
|
+
import { __CLASS__, __NS__, C_PROP_NAME, DEFAULT_NAMESPACE, GLOBAL_NAMESPACE, METATYPE_CLASS_REF, METATYPE_ENTITY, METATYPE_NAMESPACE, METATYPE_PROPERTY, XS_ID_SEPARATOR } from './Constants.js';
|
|
5
|
+
import { LookupRegistry } from './LookupRegistry.js';
|
|
6
|
+
import { RegistryFactory } from './registry/RegistryFactory.js';
|
|
7
|
+
import { AbstractRef } from './AbstractRef.js';
|
|
8
|
+
import { MetadataRegistry } from "./registry/MetadataRegistry.js";
|
|
12
9
|
/**
|
|
13
10
|
* Reflective reference to a class function
|
|
14
11
|
*
|
|
@@ -21,20 +18,20 @@ const MetadataRegistry_1 = require("./registry/MetadataRegistry");
|
|
|
21
18
|
|
|
22
19
|
class can be in different namespaces
|
|
23
20
|
*/
|
|
24
|
-
class ClassRef extends
|
|
25
|
-
constructor(klass, namespace =
|
|
26
|
-
super(
|
|
21
|
+
export class ClassRef extends AbstractRef {
|
|
22
|
+
constructor(klass, namespace = DEFAULT_NAMESPACE) {
|
|
23
|
+
super(METATYPE_CLASS_REF, ClassRef.getClassName(klass), null, namespace);
|
|
27
24
|
this._isPlaceholder = false;
|
|
28
25
|
this._isAnonymous = false;
|
|
29
26
|
this.extends = [];
|
|
30
|
-
this._isAnonymous =
|
|
27
|
+
this._isAnonymous = isFunction(klass) && klass.name === 'anonymous';
|
|
31
28
|
this.idx = ClassRef.__inc++;
|
|
32
|
-
if (
|
|
29
|
+
if (isString(klass)) {
|
|
33
30
|
this.originalValue = klass;
|
|
34
31
|
this._isPlaceholder = true;
|
|
35
32
|
}
|
|
36
33
|
else {
|
|
37
|
-
this.originalValue =
|
|
34
|
+
this.originalValue = ClassUtils.getFunction(klass);
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
37
|
isPlaceholder() {
|
|
@@ -44,33 +41,33 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
44
41
|
return this._isAnonymous;
|
|
45
42
|
}
|
|
46
43
|
getClassRefFor(object, type) {
|
|
47
|
-
return ClassRef.get(object, this.namespace, type ==
|
|
44
|
+
return ClassRef.get(object, this.namespace, type == METATYPE_PROPERTY);
|
|
48
45
|
}
|
|
49
46
|
static getClassName(k) {
|
|
50
|
-
if (k[
|
|
51
|
-
return k[
|
|
47
|
+
if (k[__CLASS__]) {
|
|
48
|
+
return k[__CLASS__];
|
|
52
49
|
}
|
|
53
|
-
return
|
|
50
|
+
return ClassUtils.getClassName(k);
|
|
54
51
|
}
|
|
55
52
|
updateClass(cls) {
|
|
56
|
-
this.originalValue =
|
|
53
|
+
this.originalValue = ClassUtils.getFunction(cls);
|
|
57
54
|
this._isPlaceholder = false;
|
|
58
55
|
}
|
|
59
56
|
get className() {
|
|
60
57
|
return this.name;
|
|
61
58
|
}
|
|
62
59
|
get storingName() {
|
|
63
|
-
let name = this.getOptions(
|
|
64
|
-
return
|
|
60
|
+
let name = this.getOptions(C_PROP_NAME, this.className);
|
|
61
|
+
return snakeCase(name);
|
|
65
62
|
}
|
|
66
63
|
set storingName(v) {
|
|
67
|
-
this.setOption(
|
|
64
|
+
this.setOption(C_PROP_NAME, v);
|
|
68
65
|
}
|
|
69
66
|
/**
|
|
70
67
|
* Check if name is passed by options
|
|
71
68
|
*/
|
|
72
69
|
hasName() {
|
|
73
|
-
return this.hasOption(
|
|
70
|
+
return this.hasOption(C_PROP_NAME);
|
|
74
71
|
}
|
|
75
72
|
/**
|
|
76
73
|
* Return the namespace for/of this class
|
|
@@ -94,40 +91,40 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
94
91
|
if (name && name === this.name) {
|
|
95
92
|
return true;
|
|
96
93
|
}
|
|
97
|
-
else if (
|
|
94
|
+
else if (has(instance, __CLASS__) && instance[__CLASS__] === this.name) {
|
|
98
95
|
return true;
|
|
99
96
|
}
|
|
100
97
|
else {
|
|
101
98
|
return this.getPropertyRefs()
|
|
102
|
-
.map(x =>
|
|
99
|
+
.map(x => has(instance, x.name))
|
|
103
100
|
.reduce((previousValue, currentValue) => previousValue && currentValue, true);
|
|
104
101
|
}
|
|
105
102
|
return false;
|
|
106
103
|
}
|
|
107
104
|
get machineName() {
|
|
108
|
-
return
|
|
105
|
+
return snakeCase(this.className);
|
|
109
106
|
}
|
|
110
107
|
getClass(create = false) {
|
|
111
|
-
if (
|
|
108
|
+
if (isFunction(this.originalValue)) {
|
|
112
109
|
return this.originalValue;
|
|
113
110
|
}
|
|
114
|
-
else if (
|
|
111
|
+
else if (isString(this.originalValue) && this.isPlaceholder) {
|
|
115
112
|
if (create) {
|
|
116
|
-
this.originalValue =
|
|
113
|
+
this.originalValue = SchemaUtils.clazz(this.originalValue);
|
|
117
114
|
return this.originalValue;
|
|
118
115
|
}
|
|
119
116
|
}
|
|
120
|
-
throw new
|
|
117
|
+
throw new NotYetImplementedError('getClass for ' + this.originalValue);
|
|
121
118
|
}
|
|
122
|
-
static find(klass, namespace =
|
|
123
|
-
const registry = namespace ===
|
|
119
|
+
static find(klass, namespace = DEFAULT_NAMESPACE) {
|
|
120
|
+
const registry = namespace === GLOBAL_NAMESPACE ? LookupRegistry : LookupRegistry.$(namespace);
|
|
124
121
|
let className = ClassRef.getClassName(klass);
|
|
125
122
|
let classRef = null;
|
|
126
|
-
if (
|
|
127
|
-
classRef = registry.find(
|
|
123
|
+
if (isString(klass)) {
|
|
124
|
+
classRef = registry.find(METATYPE_CLASS_REF, (c) => c.className === className);
|
|
128
125
|
}
|
|
129
126
|
else {
|
|
130
|
-
classRef = registry.find(
|
|
127
|
+
classRef = registry.find(METATYPE_CLASS_REF, (c) => c.getClass(true) === klass ||
|
|
131
128
|
(c.isPlaceholder() && c.className === className));
|
|
132
129
|
}
|
|
133
130
|
return classRef;
|
|
@@ -139,7 +136,7 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
139
136
|
*/
|
|
140
137
|
static getAllByClassName(klass) {
|
|
141
138
|
let name = ClassRef.getClassName(klass);
|
|
142
|
-
return
|
|
139
|
+
return LookupRegistry.filter(METATYPE_CLASS_REF, (c) => c.name == name);
|
|
143
140
|
}
|
|
144
141
|
/**
|
|
145
142
|
* filter function for classrefs
|
|
@@ -147,13 +144,13 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
147
144
|
* @param klass
|
|
148
145
|
*/
|
|
149
146
|
static filter(fn) {
|
|
150
|
-
return
|
|
147
|
+
return LookupRegistry.filter(METATYPE_CLASS_REF, fn);
|
|
151
148
|
}
|
|
152
149
|
static checkIfFunctionCallback(klass) {
|
|
153
|
-
if (
|
|
150
|
+
if (isFunction(klass)) {
|
|
154
151
|
// maybe function which return type like () => type
|
|
155
152
|
let name = ClassRef.getClassName(klass);
|
|
156
|
-
if (
|
|
153
|
+
if (isEmpty(name)) {
|
|
157
154
|
let fn = null;
|
|
158
155
|
try {
|
|
159
156
|
fn = klass();
|
|
@@ -162,7 +159,7 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
162
159
|
}
|
|
163
160
|
if (fn) {
|
|
164
161
|
let name = ClassRef.getClassName(fn);
|
|
165
|
-
if (!
|
|
162
|
+
if (!isEmpty(name)) {
|
|
166
163
|
klass = fn;
|
|
167
164
|
}
|
|
168
165
|
}
|
|
@@ -177,28 +174,28 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
177
174
|
* @param namespace
|
|
178
175
|
* @param resolve
|
|
179
176
|
*/
|
|
180
|
-
static get(klass, namespace =
|
|
181
|
-
const resolve =
|
|
177
|
+
static get(klass, namespace = GLOBAL_NAMESPACE, options) {
|
|
178
|
+
const resolve = isBoolean(options) ? options : get(options || {}, 'resolve', false);
|
|
182
179
|
if (resolve) {
|
|
183
180
|
klass = this.checkIfFunctionCallback(klass);
|
|
184
181
|
}
|
|
185
|
-
const checkNs =
|
|
186
|
-
const isAnonymous =
|
|
182
|
+
const checkNs = isObjectLike(options) ? get(options || {}, 'checkNamespace', false) : false;
|
|
183
|
+
const isAnonymous = isFunction(klass) && klass.name === 'anonymous';
|
|
187
184
|
if (checkNs) {
|
|
188
|
-
const ns =
|
|
185
|
+
const ns = MetadataRegistry.$().getByContextAndTarget(METATYPE_NAMESPACE, isFunction(klass) ? klass.name : klass);
|
|
189
186
|
if (ns.length > 0) {
|
|
190
|
-
namespace =
|
|
187
|
+
namespace = get(first(ns), 'attributes.' + METATYPE_NAMESPACE, namespace);
|
|
191
188
|
}
|
|
192
189
|
}
|
|
193
190
|
let classRef = this.find(klass, namespace);
|
|
194
191
|
if (classRef) {
|
|
195
|
-
if (classRef.isPlaceholder &&
|
|
192
|
+
if (classRef.isPlaceholder && isFunction(klass) && !isAnonymous) {
|
|
196
193
|
classRef.updateClass(klass);
|
|
197
194
|
}
|
|
198
195
|
return classRef;
|
|
199
196
|
}
|
|
200
|
-
if (namespace ===
|
|
201
|
-
namespace =
|
|
197
|
+
if (namespace === GLOBAL_NAMESPACE) {
|
|
198
|
+
namespace = DEFAULT_NAMESPACE;
|
|
202
199
|
}
|
|
203
200
|
return this.createRef(klass, namespace);
|
|
204
201
|
}
|
|
@@ -208,10 +205,10 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
208
205
|
* @param klass
|
|
209
206
|
* @param namespace
|
|
210
207
|
*/
|
|
211
|
-
static createRef(klass, namespace =
|
|
208
|
+
static createRef(klass, namespace = GLOBAL_NAMESPACE) {
|
|
212
209
|
const classRef = new ClassRef(klass, namespace);
|
|
213
|
-
if (
|
|
214
|
-
const proto =
|
|
210
|
+
if (isFunction(klass)) {
|
|
211
|
+
const proto = SchemaUtils.getInherited(klass);
|
|
215
212
|
if (proto) {
|
|
216
213
|
// is extends
|
|
217
214
|
// TODO how to handle cirlces
|
|
@@ -219,7 +216,7 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
219
216
|
classRef.addExtend(extendRef);
|
|
220
217
|
}
|
|
221
218
|
}
|
|
222
|
-
return classRef.getRegistry().add(
|
|
219
|
+
return classRef.getRegistry().add(METATYPE_CLASS_REF, classRef);
|
|
223
220
|
}
|
|
224
221
|
/**
|
|
225
222
|
* return global class reference
|
|
@@ -228,14 +225,14 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
228
225
|
* @param resolve
|
|
229
226
|
*/
|
|
230
227
|
static getGlobal(klass, resolve = false) {
|
|
231
|
-
return this.get(klass,
|
|
228
|
+
return this.get(klass, GLOBAL_NAMESPACE, resolve);
|
|
232
229
|
}
|
|
233
230
|
getRegistry() {
|
|
234
|
-
return
|
|
231
|
+
return RegistryFactory.get(this.namespace);
|
|
235
232
|
}
|
|
236
233
|
getEntityRef() {
|
|
237
|
-
if (
|
|
238
|
-
this._cacheEntity = this.getRegistry().find(
|
|
234
|
+
if (isUndefined(this._cacheEntity)) {
|
|
235
|
+
this._cacheEntity = this.getRegistry().find(METATYPE_ENTITY, (x) => x.getClassRef() === this);
|
|
239
236
|
}
|
|
240
237
|
return this._cacheEntity;
|
|
241
238
|
}
|
|
@@ -249,8 +246,8 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
249
246
|
let klass = this.getClass();
|
|
250
247
|
let instance = Reflect.construct(klass, []);
|
|
251
248
|
if (addinfo) {
|
|
252
|
-
Reflect.defineProperty(instance,
|
|
253
|
-
Reflect.defineProperty(instance,
|
|
249
|
+
Reflect.defineProperty(instance, __NS__, { value: this.namespace, enumerable: true });
|
|
250
|
+
Reflect.defineProperty(instance, __CLASS__, { value: this.className, enumerable: true });
|
|
254
251
|
}
|
|
255
252
|
return instance;
|
|
256
253
|
}
|
|
@@ -280,10 +277,10 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
280
277
|
return null;
|
|
281
278
|
}
|
|
282
279
|
id() {
|
|
283
|
-
return [this.namespace, this.className].map(x =>
|
|
280
|
+
return [this.namespace, this.className].map(x => kebabCase(x)).join(XS_ID_SEPARATOR);
|
|
284
281
|
}
|
|
285
282
|
build(data, options = {}) {
|
|
286
|
-
return
|
|
283
|
+
return SchemaUtils.transform(this, data, options);
|
|
287
284
|
}
|
|
288
285
|
/**
|
|
289
286
|
* Return base inherited class for the underlying class
|
|
@@ -294,7 +291,7 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
294
291
|
*
|
|
295
292
|
*/
|
|
296
293
|
getExtend() {
|
|
297
|
-
return !
|
|
294
|
+
return !isEmpty(this.extends) ? first(this.extends) : null;
|
|
298
295
|
}
|
|
299
296
|
/**
|
|
300
297
|
* Return all inherited classes for underlying class. Mostly added manually.
|
|
@@ -312,6 +309,5 @@ class ClassRef extends AbstractRef_1.AbstractRef {
|
|
|
312
309
|
return ref;
|
|
313
310
|
}
|
|
314
311
|
}
|
|
315
|
-
exports.ClassRef = ClassRef;
|
|
316
312
|
ClassRef.__inc = 0;
|
|
317
313
|
//# sourceMappingURL=ClassRef.js.map
|
package/lib/ClassRef.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassRef.js","sourceRoot":"","sources":["../../../src/lib/ClassRef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClassRef.js","sourceRoot":"","sources":["../../../src/lib/ClassRef.ts"],"names":[],"mappings":"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"}
|
package/lib/Constants.js
CHANGED
|
@@ -1,30 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
exports.XS_DEFAULT_SCHEMA = 'default';
|
|
24
|
-
exports.METADATA_REGISTRY = 'metadata/registry';
|
|
25
|
-
exports.XS_ANNOTATION_OPTIONS_CACHE = 'anno_options_cache';
|
|
1
|
+
export const DEFAULT_NAMESPACE = 'default';
|
|
2
|
+
export const GLOBAL_NAMESPACE = '__global__';
|
|
3
|
+
export const C_IDENTIFIER = 'identifier';
|
|
4
|
+
export const C_TYPE = 'type';
|
|
5
|
+
export const C_NAME = 'name';
|
|
6
|
+
export const C_INTERNAL_NAME = 'internalName';
|
|
7
|
+
export const C_APPENDED = 'appended';
|
|
8
|
+
export const C_CARDINALITY = 'cardinality';
|
|
9
|
+
export const XS_DEFAULT_CLASSES = 'default_class_ref';
|
|
10
|
+
export const REFLECT_DESIGN_TYPE = 'design:type';
|
|
11
|
+
export const METATYPE_SCHEMA = 'schema';
|
|
12
|
+
export const METATYPE_ENTITY = 'entity';
|
|
13
|
+
export const METATYPE_NAMESPACE = 'namespace';
|
|
14
|
+
export const METATYPE_CLASS_REF = 'class_ref';
|
|
15
|
+
export const METATYPE_PROPERTY = 'property';
|
|
16
|
+
export const METATYPE_EMBEDDABLE = 'object';
|
|
17
|
+
export const BINDING_SCHEMA_ENTITY = 'schema_entity';
|
|
18
|
+
export const BINDING_SCHEMA_CLASS_REF = 'schema_class_ref';
|
|
19
|
+
export const XS_ID_SEPARATOR = '--';
|
|
20
|
+
export const XS_DEFAULT_SCHEMA = 'default';
|
|
21
|
+
export const METADATA_REGISTRY = 'metadata/registry';
|
|
22
|
+
export const XS_ANNOTATION_OPTIONS_CACHE = 'anno_options_cache';
|
|
26
23
|
// export const XS_ANNOTATION_OPTIONS_CACHE = 'anno_options_cache';
|
|
27
|
-
|
|
24
|
+
export const JS_DATA_TYPES = [
|
|
28
25
|
'string',
|
|
29
26
|
'text',
|
|
30
27
|
'number',
|
|
@@ -42,7 +39,7 @@ exports.JS_DATA_TYPES = [
|
|
|
42
39
|
'undefined',
|
|
43
40
|
'bigint'
|
|
44
41
|
];
|
|
45
|
-
|
|
42
|
+
export const JS_PRIMATIVE_TYPES = [
|
|
46
43
|
'string',
|
|
47
44
|
'number',
|
|
48
45
|
'boolean',
|
|
@@ -53,25 +50,25 @@ exports.JS_PRIMATIVE_TYPES = [
|
|
|
53
50
|
'undefined',
|
|
54
51
|
'bigint'
|
|
55
52
|
];
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
53
|
+
export const C_EVENT_ADD = 'add';
|
|
54
|
+
export const C_EVENT_REMOVE = 'remove';
|
|
55
|
+
export const C_EVENT_UPDATE = 'update';
|
|
56
|
+
export const C_EVENT_DRAIN_FINISHED = 'drain_finished';
|
|
57
|
+
export const T_STRING = 'string';
|
|
58
|
+
export const T_ARRAY = 'array';
|
|
59
|
+
export const T_OBJECT = 'object';
|
|
60
|
+
export const T_BOOLEAN = 'boolean';
|
|
61
|
+
export const C_PROP_NAME = 'name';
|
|
62
|
+
export const __CLASS__ = '__CLASS__';
|
|
63
|
+
export const __NS__ = '__NS__';
|
|
64
|
+
export const OPT_CREAT_AND_COPY = 'createAndCopy';
|
|
65
|
+
export const STATE_KEY = '$state';
|
|
66
|
+
export const K_PATTERN_PROPERTY = 'patternProperty';
|
|
67
|
+
export const K_TRIGGERED = Symbol('_triggered_');
|
|
68
|
+
export const DEFAULT_KEY_TO_SKIP = [C_TYPE, '$ref', 'target', 'propertyName', 'metaType', 'namespace', C_NAME];
|
|
72
69
|
/**
|
|
73
70
|
* Entity option signals that entity is generate by an other
|
|
74
71
|
*/
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
export const K_ENTITY_BUILT = '_built_';
|
|
73
|
+
export const DEFINED_PROPS_TO_OPTS = [K_ENTITY_BUILT];
|
|
77
74
|
//# sourceMappingURL=Constants.js.map
|
package/lib/Constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":"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"}
|
package/lib/DataContainer.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { IValidationError } from './validation/IValidationError';
|
|
2
|
-
import { IValidationResult } from './validation/IValidationResult';
|
|
3
|
-
import { ILookupRegistry } from '../api/ILookupRegistry';
|
|
4
|
-
import { IEntityRef } from '../api/IEntityRef';
|
|
5
|
-
import { IClassRef } from '../api/IClassRef';
|
|
6
|
-
import { IValidationMessage } from './validation/IValidationMessage';
|
|
1
|
+
import { IValidationError } from './validation/IValidationError.js';
|
|
2
|
+
import { IValidationResult } from './validation/IValidationResult.js';
|
|
3
|
+
import { ILookupRegistry } from '../api/ILookupRegistry.js';
|
|
4
|
+
import { IEntityRef } from '../api/IEntityRef.js';
|
|
5
|
+
import { IClassRef } from '../api/IClassRef.js';
|
|
6
|
+
import { IValidationMessage } from './validation/IValidationMessage.js';
|
|
7
7
|
/**
|
|
8
8
|
* Container for validation of object
|
|
9
9
|
*/
|
package/lib/DataContainer.js
CHANGED
|
@@ -1,26 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const Validator_1 = require("./validation/Validator");
|
|
7
|
-
const ClassRef_1 = require("./ClassRef");
|
|
8
|
-
const base_1 = require("@allgemein/base");
|
|
1
|
+
import { get, has, isBoolean, isEmpty, isFunction, keys, remove, set } from '@allgemein/base';
|
|
2
|
+
import { STATE_KEY } from './Constants.js';
|
|
3
|
+
import { Validator } from './validation/Validator.js';
|
|
4
|
+
import { ClassRef } from './ClassRef.js';
|
|
5
|
+
import { ClassUtils } from '@allgemein/base';
|
|
9
6
|
/**
|
|
10
7
|
* Container for validation of object
|
|
11
8
|
*/
|
|
12
|
-
class DataContainer {
|
|
9
|
+
export class DataContainer {
|
|
13
10
|
constructor(instance, registry) {
|
|
14
11
|
this.errors = [];
|
|
15
12
|
this.validation = {};
|
|
16
13
|
this.instance = instance;
|
|
17
14
|
if (registry) {
|
|
18
|
-
this.ref =
|
|
15
|
+
this.ref = isFunction(registry.getEntityRefFor) ?
|
|
19
16
|
registry.getEntityRefFor(instance) : registry;
|
|
20
17
|
}
|
|
21
18
|
else {
|
|
22
|
-
const clazz =
|
|
23
|
-
this.ref =
|
|
19
|
+
const clazz = ClassUtils.getFunction(instance);
|
|
20
|
+
this.ref = ClassRef.get(clazz);
|
|
24
21
|
}
|
|
25
22
|
if (!this.ref) {
|
|
26
23
|
throw new Error('none definition found for instance ' + JSON.stringify(instance));
|
|
@@ -37,7 +34,7 @@ class DataContainer {
|
|
|
37
34
|
;
|
|
38
35
|
}
|
|
39
36
|
addError(e) {
|
|
40
|
-
if (!
|
|
37
|
+
if (!has(e, 'type')) {
|
|
41
38
|
e.type = 'error';
|
|
42
39
|
}
|
|
43
40
|
this.errors.push(e);
|
|
@@ -80,10 +77,10 @@ class DataContainer {
|
|
|
80
77
|
}
|
|
81
78
|
async validate() {
|
|
82
79
|
this.isValidated = true;
|
|
83
|
-
|
|
80
|
+
remove(this.errors, error => error.type === 'validate');
|
|
84
81
|
let results = [];
|
|
85
82
|
try {
|
|
86
|
-
results = await
|
|
83
|
+
results = await Validator.validate(this.instance, this.ref);
|
|
87
84
|
}
|
|
88
85
|
catch (e) {
|
|
89
86
|
console.error(e);
|
|
@@ -95,7 +92,7 @@ class DataContainer {
|
|
|
95
92
|
type: 'validate'
|
|
96
93
|
}));
|
|
97
94
|
this.isSuccessValidated = true;
|
|
98
|
-
|
|
95
|
+
keys(this.validation).forEach(key => {
|
|
99
96
|
if (this.validation[key]) {
|
|
100
97
|
const valid = this.validation[key];
|
|
101
98
|
const found = this.errors.find(x => x.property === key);
|
|
@@ -118,18 +115,17 @@ class DataContainer {
|
|
|
118
115
|
applyState() {
|
|
119
116
|
const $state = {};
|
|
120
117
|
DataContainer.keys.forEach(k => {
|
|
121
|
-
const value =
|
|
122
|
-
if (
|
|
123
|
-
|
|
118
|
+
const value = get(this, k, null);
|
|
119
|
+
if (isBoolean(value) || !isEmpty(value)) {
|
|
120
|
+
set($state, k, value);
|
|
124
121
|
}
|
|
125
122
|
});
|
|
126
|
-
|
|
123
|
+
set(this.instance, STATE_KEY, $state);
|
|
127
124
|
}
|
|
128
125
|
resetErrors() {
|
|
129
126
|
this.errors = [];
|
|
130
127
|
}
|
|
131
128
|
}
|
|
132
|
-
exports.DataContainer = DataContainer;
|
|
133
129
|
DataContainer.keys = [
|
|
134
130
|
'isValidated',
|
|
135
131
|
'isSuccess',
|
package/lib/DataContainer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataContainer.js","sourceRoot":"","sources":["../../../src/lib/DataContainer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataContainer.js","sourceRoot":"","sources":["../../../src/lib/DataContainer.ts"],"names":[],"mappings":"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"}
|