@quatrain/core 0.3.0 → 0.4.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/lib/Backend.d.ts +5 -0
- package/lib/Backend.js +7 -0
- package/lib/Core.d.ts +20 -2
- package/lib/Core.js +24 -5
- package/lib/backends/AbstractAdapter.d.ts +27 -13
- package/lib/backends/AbstractAdapter.js +31 -3
- package/lib/backends/Filter.d.ts +5 -3
- package/lib/backends/Filter.js +1 -1
- package/lib/backends/MockAdapter.d.ts +8 -16
- package/lib/backends/MockAdapter.js +67 -41
- package/lib/backends/NotFoundError.d.ts +2 -0
- package/lib/backends/NotFoundError.js +6 -0
- package/lib/backends/Query.d.ts +3 -3
- package/lib/backends/middlewares/AbstractMiddleware.d.ts +0 -0
- package/lib/backends/middlewares/AbstractMiddleware.js +1 -0
- package/lib/backends/middlewares/InjectMetaMiddleware.d.ts +11 -0
- package/lib/backends/middlewares/InjectMetaMiddleware.js +50 -0
- package/lib/components/AbstractObject.d.ts +8 -5
- package/lib/components/AbstractObject.js +9 -0
- package/lib/components/BaseObject.d.ts +2 -2
- package/lib/components/BaseObject.js +2 -2
- package/lib/components/BaseObjectProperties.d.ts +1 -2
- package/lib/components/BaseObjectProperties.js +2 -0
- package/lib/components/DataObject.d.ts +9 -7
- package/lib/components/DataObject.js +31 -18
- package/lib/components/EntityProperties.js +37 -2
- package/lib/components/ObjectUri.d.ts +1 -1
- package/lib/components/ObjectUri.js +16 -4
- package/lib/components/User.d.ts +2 -0
- package/lib/components/User.js +103 -3
- package/lib/components/UserProperties.js +45 -1
- package/lib/components/index.d.ts +2 -2
- package/lib/components/types/AbstractObjectClass.d.ts +2 -2
- package/lib/components/types/BaseObjectClass.d.ts +2 -2
- package/lib/components/types/DataObjectClass.d.ts +7 -5
- package/lib/index.d.ts +5 -1
- package/lib/index.js +7 -1
- package/lib/properties/BaseProperty.d.ts +8 -3
- package/lib/properties/BaseProperty.js +10 -1
- package/lib/properties/CollectionProperty.d.ts +11 -8
- package/lib/properties/CollectionProperty.js +10 -9
- package/lib/properties/EnumProperty.d.ts +1 -0
- package/lib/properties/EnumProperty.js +4 -1
- package/lib/properties/Property.d.ts +1 -1
- package/lib/properties/StringProperty.d.ts +4 -0
- package/lib/properties/StringProperty.js +32 -17
- package/lib/properties/types/PropertyClassType.d.ts +1 -1
- package/lib/properties/types/PropertyHTMLType.d.ts +10 -0
- package/lib/properties/types/PropertyHTMLType.js +14 -0
- package/lib/utils/DataGenerator.d.ts +9 -0
- package/lib/utils/DataGenerator.js +98 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +5 -0
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -23,11 +23,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.SortAndLimit = exports.Sorting = exports.Limits = exports.Filters = exports.Filter = exports.Query = exports.BackendError = exports.BaseObjectProperties = exports.BaseObject = exports.AbstractObject = exports.DataObject = exports.ObjectUri = exports.MockAdapter = exports.AbstractAdapter = exports.StringProperty = exports.ObjectProperty = exports.HashProperty = exports.EnumProperty = exports.DateTimeProperty = exports.BooleanProperty = exports.BaseProperty = exports.Property = exports.Core = exports.statuses = void 0;
|
|
26
|
+
exports.Entity = exports.User = exports.SortAndLimit = exports.Sorting = exports.Limits = exports.Filters = exports.Filter = exports.Query = exports.BackendError = exports.BaseObjectProperties = exports.BaseObject = exports.AbstractObject = exports.DataObject = exports.ObjectUri = exports.MockAdapter = exports.AbstractAdapter = exports.StringProperty = exports.ObjectProperty = exports.HashProperty = exports.EnumProperty = exports.DateTimeProperty = exports.BooleanProperty = exports.BaseProperty = exports.Property = exports.Core = exports.utils = exports.statuses = void 0;
|
|
27
27
|
const Core_1 = require("./Core");
|
|
28
28
|
Object.defineProperty(exports, "Core", { enumerable: true, get: function () { return Core_1.Core; } });
|
|
29
29
|
const statuses = __importStar(require("./common/statuses"));
|
|
30
30
|
exports.statuses = statuses;
|
|
31
|
+
const utils = __importStar(require("./utils"));
|
|
32
|
+
exports.utils = utils;
|
|
31
33
|
const Property_1 = require("./properties/Property");
|
|
32
34
|
Object.defineProperty(exports, "Property", { enumerable: true, get: function () { return Property_1.Property; } });
|
|
33
35
|
const BaseProperty_1 = require("./properties/BaseProperty");
|
|
@@ -54,6 +56,10 @@ const BaseObject_1 = require("./components/BaseObject");
|
|
|
54
56
|
Object.defineProperty(exports, "BaseObject", { enumerable: true, get: function () { return BaseObject_1.BaseObject; } });
|
|
55
57
|
const BaseObjectProperties_1 = require("./components/BaseObjectProperties");
|
|
56
58
|
Object.defineProperty(exports, "BaseObjectProperties", { enumerable: true, get: function () { return BaseObjectProperties_1.BaseObjectProperties; } });
|
|
59
|
+
const User_1 = require("./components/User");
|
|
60
|
+
Object.defineProperty(exports, "User", { enumerable: true, get: function () { return User_1.User; } });
|
|
61
|
+
const Entity_1 = require("./components/Entity");
|
|
62
|
+
Object.defineProperty(exports, "Entity", { enumerable: true, get: function () { return Entity_1.Entity; } });
|
|
57
63
|
const backends_1 = require("./backends");
|
|
58
64
|
Object.defineProperty(exports, "AbstractAdapter", { enumerable: true, get: function () { return backends_1.AbstractAdapter; } });
|
|
59
65
|
Object.defineProperty(exports, "MockAdapter", { enumerable: true, get: function () { return backends_1.MockAdapter; } });
|
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
import { DataObjectClass } from '../components/types/DataObjectClass';
|
|
2
2
|
import { AbstractPropertyType } from './types/AbstractPropertyType';
|
|
3
3
|
import { PropertyClassType } from './types/PropertyClassType';
|
|
4
|
+
import { PropertyHTMLType } from './types/PropertyHTMLType';
|
|
4
5
|
export declare type EventTypes = typeof BaseProperty.EVENT_ONCHANGE | typeof BaseProperty.EVENT_ONDELETE;
|
|
5
6
|
export interface BasePropertyType extends AbstractPropertyType {
|
|
6
|
-
parent?: DataObjectClass
|
|
7
|
+
parent?: DataObjectClass<any>;
|
|
7
8
|
protected?: boolean;
|
|
8
9
|
mandatory?: boolean;
|
|
9
10
|
defaultValue?: any;
|
|
10
|
-
|
|
11
|
+
htmlType?: PropertyHTMLType;
|
|
12
|
+
onChange?: (dao: DataObjectClass<any>) => DataObjectClass<any>;
|
|
11
13
|
}
|
|
12
14
|
export declare class BaseProperty implements PropertyClassType {
|
|
13
15
|
static TYPE: string;
|
|
14
16
|
static EVENT_ONCHANGE: string;
|
|
15
17
|
static EVENT_ONDELETE: string;
|
|
16
|
-
protected _parent: DataObjectClass | undefined;
|
|
18
|
+
protected _parent: DataObjectClass<any> | undefined;
|
|
17
19
|
protected _name: string;
|
|
18
20
|
protected _value: any;
|
|
19
21
|
protected _mandatory: boolean;
|
|
20
22
|
protected _protected: boolean;
|
|
21
23
|
protected _allows: String[];
|
|
24
|
+
protected _htmlType: PropertyHTMLType;
|
|
22
25
|
protected _defaultValue: any;
|
|
23
26
|
protected _events: {
|
|
24
27
|
[key: EventTypes]: Function;
|
|
@@ -28,6 +31,8 @@ export declare class BaseProperty implements PropertyClassType {
|
|
|
28
31
|
get mandatory(): boolean;
|
|
29
32
|
get protected(): boolean;
|
|
30
33
|
get allows(): String[];
|
|
34
|
+
set htmlType(type: PropertyHTMLType);
|
|
35
|
+
get htmlType(): PropertyHTMLType;
|
|
31
36
|
set(value: any): this;
|
|
32
37
|
val(transform?: any): any;
|
|
33
38
|
protected _enable(value: boolean | undefined): boolean;
|
|
@@ -7,6 +7,7 @@ class BaseProperty {
|
|
|
7
7
|
this._mandatory = false;
|
|
8
8
|
this._protected = false;
|
|
9
9
|
this._allows = [];
|
|
10
|
+
this._htmlType = 'off';
|
|
10
11
|
this._events = {};
|
|
11
12
|
this._parent = config.parent;
|
|
12
13
|
this._name = config.name;
|
|
@@ -14,6 +15,7 @@ class BaseProperty {
|
|
|
14
15
|
this._mandatory = config.mandatory || false;
|
|
15
16
|
this._defaultValue = config.defaultValue;
|
|
16
17
|
this._value = config.defaultValue;
|
|
18
|
+
this._htmlType = config.htmlType || 'off';
|
|
17
19
|
if (typeof config.onChange === 'function') {
|
|
18
20
|
this._events.onChange = config.onChange;
|
|
19
21
|
}
|
|
@@ -30,8 +32,15 @@ class BaseProperty {
|
|
|
30
32
|
get allows() {
|
|
31
33
|
return this._allows;
|
|
32
34
|
}
|
|
35
|
+
set htmlType(type) {
|
|
36
|
+
this._htmlType = type;
|
|
37
|
+
}
|
|
38
|
+
get htmlType() {
|
|
39
|
+
return this._htmlType;
|
|
40
|
+
}
|
|
33
41
|
set(value) {
|
|
34
42
|
if (this._value !== undefined &&
|
|
43
|
+
this._value !== null &&
|
|
35
44
|
this._value !== this._defaultValue &&
|
|
36
45
|
this._protected === true) {
|
|
37
46
|
throw new Error(`Value already defined as '${this._value}' and protected from change`);
|
|
@@ -43,7 +52,7 @@ class BaseProperty {
|
|
|
43
52
|
return this;
|
|
44
53
|
}
|
|
45
54
|
val(transform = undefined) {
|
|
46
|
-
return this._value;
|
|
55
|
+
return transform ? transform(this._value) : this._value;
|
|
47
56
|
}
|
|
48
57
|
_enable(value) {
|
|
49
58
|
return value === undefined || value === true;
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import { BaseProperty, BasePropertyType } from './BaseProperty';
|
|
2
|
-
import { Query
|
|
3
|
-
import {
|
|
2
|
+
import { Query } from '../backends/Query';
|
|
3
|
+
import { Filter } from '../backends/Filter';
|
|
4
|
+
import { ObjectUri } from '../components/ObjectUri';
|
|
4
5
|
import { returnAs } from '../backends/Query';
|
|
6
|
+
import { DataObjectClass } from '../components/types/DataObjectClass';
|
|
5
7
|
export interface CollectionPropertyType extends BasePropertyType {
|
|
6
8
|
instanceOf?: Function | string | Object;
|
|
7
|
-
backend?:
|
|
9
|
+
backend?: any;
|
|
8
10
|
parentKey?: string;
|
|
9
11
|
}
|
|
10
12
|
export declare class CollectionProperty extends BaseProperty {
|
|
11
13
|
static TYPE: string;
|
|
12
|
-
protected _value: Array<any> | Array<
|
|
14
|
+
protected _value: Array<any> | Array<DataObjectClass<any>> | Array<ObjectUri> | undefined;
|
|
13
15
|
protected _instanceOf: any;
|
|
14
|
-
protected _backend:
|
|
16
|
+
protected _backend: any;
|
|
15
17
|
protected _parentKey: string;
|
|
16
|
-
protected _query: Query<any
|
|
18
|
+
protected _query: Query<any>;
|
|
17
19
|
protected _filters: Filter[] | Filter | undefined;
|
|
18
20
|
constructor(config: CollectionPropertyType);
|
|
21
|
+
protected _setQuery(filters?: Filter[]): any;
|
|
19
22
|
set(value: Array<any>): this;
|
|
20
23
|
/**
|
|
21
24
|
* get objects matching collection class and filters
|
|
@@ -24,6 +27,6 @@ export declare class CollectionProperty extends BaseProperty {
|
|
|
24
27
|
* @returns
|
|
25
28
|
*/
|
|
26
29
|
get(filters?: Filter[] | undefined): Query<any>;
|
|
27
|
-
val(transform?: returnAs): Promise<Array<any> | Array<
|
|
28
|
-
toJSON(): any[] |
|
|
30
|
+
val(transform?: returnAs): Promise<Array<any> | Array<DataObjectClass<any>> | Array<ObjectUri>>;
|
|
31
|
+
toJSON(): any[] | DataObjectClass<any>[] | ObjectUri[] | undefined;
|
|
29
32
|
}
|
|
@@ -11,7 +11,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.CollectionProperty = void 0;
|
|
13
13
|
const BaseProperty_1 = require("./BaseProperty");
|
|
14
|
-
const backends_1 = require("../backends");
|
|
15
14
|
const Core_1 = require("../Core");
|
|
16
15
|
const Query_1 = require("../backends/Query");
|
|
17
16
|
class CollectionProperty extends BaseProperty_1.BaseProperty {
|
|
@@ -19,7 +18,6 @@ class CollectionProperty extends BaseProperty_1.BaseProperty {
|
|
|
19
18
|
var _a, _b;
|
|
20
19
|
super(config);
|
|
21
20
|
this._value = undefined;
|
|
22
|
-
this._query = undefined;
|
|
23
21
|
this._filters = undefined;
|
|
24
22
|
this._instanceOf = config.instanceOf;
|
|
25
23
|
this._backend = config.backend
|
|
@@ -27,6 +25,15 @@ class CollectionProperty extends BaseProperty_1.BaseProperty {
|
|
|
27
25
|
: undefined;
|
|
28
26
|
this._parentKey =
|
|
29
27
|
config.parentKey || ((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.uri) === null || _b === void 0 ? void 0 : _b.collection) || 'unknown';
|
|
28
|
+
this._query = this._setQuery();
|
|
29
|
+
}
|
|
30
|
+
_setQuery(filters) {
|
|
31
|
+
const query = this._instanceOf.query();
|
|
32
|
+
query.where(this._parentKey, this._parent ? this._parent.uri : 'unknown');
|
|
33
|
+
if (filters) {
|
|
34
|
+
query.filters = filters;
|
|
35
|
+
}
|
|
36
|
+
return query;
|
|
30
37
|
}
|
|
31
38
|
set(value) {
|
|
32
39
|
return super.set(value);
|
|
@@ -39,13 +46,7 @@ class CollectionProperty extends BaseProperty_1.BaseProperty {
|
|
|
39
46
|
*/
|
|
40
47
|
get(filters = undefined) {
|
|
41
48
|
if (!this._query || this._filters !== filters) {
|
|
42
|
-
this._query =
|
|
43
|
-
if (this._parent) {
|
|
44
|
-
this._query.where(this._parentKey, this._parent.uri);
|
|
45
|
-
}
|
|
46
|
-
if (filters) {
|
|
47
|
-
this._query.filters = filters;
|
|
48
|
-
}
|
|
49
|
+
this._query = this._setQuery(filters);
|
|
49
50
|
}
|
|
50
51
|
return this._query;
|
|
51
52
|
}
|
|
@@ -9,11 +9,14 @@ class EnumProperty extends BaseProperty_1.BaseProperty {
|
|
|
9
9
|
this._values = config.values || [];
|
|
10
10
|
}
|
|
11
11
|
set(value) {
|
|
12
|
-
if (!this._values.includes(value)) {
|
|
12
|
+
if (value !== null && !this._values.includes(value)) {
|
|
13
13
|
throw new Error(`Value '${value}' is not acceptable`);
|
|
14
14
|
}
|
|
15
15
|
return super.set(value);
|
|
16
16
|
}
|
|
17
|
+
get values() {
|
|
18
|
+
return this._values;
|
|
19
|
+
}
|
|
17
20
|
}
|
|
18
21
|
exports.EnumProperty = EnumProperty;
|
|
19
22
|
EnumProperty.TYPE = 'enum';
|
|
@@ -10,5 +10,5 @@ export declare class Property {
|
|
|
10
10
|
static TYPE_HASH: string;
|
|
11
11
|
static TYPE_DATETIME: string;
|
|
12
12
|
static TYPE_ARRAY: string;
|
|
13
|
-
static factory<P extends BasePropertyType>(params: P, parent: DataObjectClass): BaseProperty;
|
|
13
|
+
static factory<P extends BasePropertyType>(params: P, parent: DataObjectClass<any>): BaseProperty;
|
|
14
14
|
}
|
|
@@ -6,6 +6,7 @@ export interface StringPropertyType extends BasePropertyType {
|
|
|
6
6
|
allowDigits?: boolean;
|
|
7
7
|
allowLetters?: boolean;
|
|
8
8
|
allowPattern?: String;
|
|
9
|
+
fullSearch?: boolean;
|
|
9
10
|
}
|
|
10
11
|
export declare class StringProperty extends BaseProperty {
|
|
11
12
|
static TYPE: string;
|
|
@@ -18,6 +19,7 @@ export declare class StringProperty extends BaseProperty {
|
|
|
18
19
|
static ALLOW_NUMBERS: string;
|
|
19
20
|
protected _minLength: number;
|
|
20
21
|
protected _maxLength: number;
|
|
22
|
+
protected _fullSearch: boolean;
|
|
21
23
|
protected _value: string | undefined;
|
|
22
24
|
/**
|
|
23
25
|
* Set to false to bypass some rules
|
|
@@ -30,4 +32,6 @@ export declare class StringProperty extends BaseProperty {
|
|
|
30
32
|
get minLength(): number;
|
|
31
33
|
set maxLength(max: number);
|
|
32
34
|
get maxLength(): number;
|
|
35
|
+
set fullSearch(mode: boolean);
|
|
36
|
+
get fullSearch(): boolean;
|
|
33
37
|
}
|
|
@@ -8,12 +8,15 @@ class StringProperty extends BaseProperty_1.BaseProperty {
|
|
|
8
8
|
super(config);
|
|
9
9
|
this._minLength = 0;
|
|
10
10
|
this._maxLength = 0;
|
|
11
|
+
this._fullSearch = false;
|
|
11
12
|
/**
|
|
12
13
|
* Set to false to bypass some rules
|
|
13
14
|
*/
|
|
14
15
|
this._rawValue = true;
|
|
15
16
|
this.minLength = config.minLength || 0;
|
|
16
17
|
this.maxLength = config.maxLength || 0;
|
|
18
|
+
this.fullSearch = config.fullSearch || false;
|
|
19
|
+
this._htmlType = config.htmlType || 'off';
|
|
17
20
|
if (this._enable(config.allowSpaces)) {
|
|
18
21
|
this._allows.push(StringProperty.ALLOW_SPACES);
|
|
19
22
|
}
|
|
@@ -25,23 +28,29 @@ class StringProperty extends BaseProperty_1.BaseProperty {
|
|
|
25
28
|
}
|
|
26
29
|
}
|
|
27
30
|
set(value) {
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
if (value !== null && value !== undefined) {
|
|
32
|
+
if (this._allows.includes(StringProperty.ALLOW_DIGITS) === false &&
|
|
33
|
+
/\d/.test(value)) {
|
|
34
|
+
throw new Error(`Digits are not allowed in value`);
|
|
35
|
+
}
|
|
36
|
+
if (this._allows.includes(StringProperty.ALLOW_SPACES) === false &&
|
|
37
|
+
/\s/g.test(value)) {
|
|
38
|
+
throw new Error(`Spaces are not allowed in value`);
|
|
39
|
+
}
|
|
40
|
+
if (this._allows.includes(StringProperty.ALLOW_LETTERS) === false &&
|
|
41
|
+
/[a-zA-Z]/.test(value)) {
|
|
42
|
+
throw new Error(`Letters are not allowed in value`);
|
|
43
|
+
}
|
|
44
|
+
if (this._rawValue &&
|
|
45
|
+
this._minLength > 0 &&
|
|
46
|
+
value.length < this._minLength) {
|
|
47
|
+
throw new Error(`Value is too short`);
|
|
48
|
+
}
|
|
49
|
+
if (this._rawValue &&
|
|
50
|
+
this._maxLength > 0 &&
|
|
51
|
+
value.length > this._maxLength) {
|
|
52
|
+
throw new Error(`${this._name}: value '${value}' is too long`);
|
|
53
|
+
}
|
|
45
54
|
}
|
|
46
55
|
return super.set(value);
|
|
47
56
|
}
|
|
@@ -67,6 +76,12 @@ class StringProperty extends BaseProperty_1.BaseProperty {
|
|
|
67
76
|
get maxLength() {
|
|
68
77
|
return this._maxLength;
|
|
69
78
|
}
|
|
79
|
+
set fullSearch(mode) {
|
|
80
|
+
this._fullSearch = mode;
|
|
81
|
+
}
|
|
82
|
+
get fullSearch() {
|
|
83
|
+
return this._fullSearch;
|
|
84
|
+
}
|
|
70
85
|
}
|
|
71
86
|
exports.StringProperty = StringProperty;
|
|
72
87
|
StringProperty.TYPE = 'string';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const OFF = "off";
|
|
2
|
+
export declare const NAME = "name";
|
|
3
|
+
export declare const GIVEN_NAME = "given-name";
|
|
4
|
+
export declare const FAMILY_NAME = "family-name";
|
|
5
|
+
export declare const EMAIL = "email";
|
|
6
|
+
export declare const PASSWORD = "password";
|
|
7
|
+
export declare const BIRTHDAY = "bday";
|
|
8
|
+
export declare const GENDER = "sex";
|
|
9
|
+
export declare const ORG = "organization";
|
|
10
|
+
export declare type PropertyHTMLType = typeof OFF | typeof NAME | typeof GIVEN_NAME | typeof FAMILY_NAME | typeof EMAIL | typeof PASSWORD | typeof BIRTHDAY | typeof GENDER | typeof ORG;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
|
|
3
|
+
// @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.ORG = exports.GENDER = exports.BIRTHDAY = exports.PASSWORD = exports.EMAIL = exports.FAMILY_NAME = exports.GIVEN_NAME = exports.NAME = exports.OFF = void 0;
|
|
6
|
+
exports.OFF = 'off';
|
|
7
|
+
exports.NAME = 'name';
|
|
8
|
+
exports.GIVEN_NAME = 'given-name';
|
|
9
|
+
exports.FAMILY_NAME = 'family-name';
|
|
10
|
+
exports.EMAIL = 'email';
|
|
11
|
+
exports.PASSWORD = 'password';
|
|
12
|
+
exports.BIRTHDAY = 'bday';
|
|
13
|
+
exports.GENDER = 'sex';
|
|
14
|
+
exports.ORG = 'organization';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseObject } from '../components';
|
|
2
|
+
/**
|
|
3
|
+
* Generate data from model of object and save it in default backend
|
|
4
|
+
* @param model
|
|
5
|
+
* @param qty
|
|
6
|
+
* @param forcedValues
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare const DataGenerator: <T extends BaseObject>(model: T, qty?: number, forcedValues?: any) => Promise<any>;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.DataGenerator = void 0;
|
|
36
|
+
const htmlType = __importStar(require("../properties/types/PropertyHTMLType"));
|
|
37
|
+
const faker_1 = require("@faker-js/faker");
|
|
38
|
+
/**
|
|
39
|
+
* Generate data from model of object and save it in default backend
|
|
40
|
+
* @param model
|
|
41
|
+
* @param qty
|
|
42
|
+
* @param forcedValues
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
const DataGenerator = (model, qty = 5, forcedValues = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
|
+
const promises = [];
|
|
47
|
+
for (let i = 0; i < qty; i++) {
|
|
48
|
+
const dao = yield model.dataObject.clone(model.dataObject.toJSON());
|
|
49
|
+
Object.keys(dao.properties).forEach((key) => {
|
|
50
|
+
const property = dao.get(key);
|
|
51
|
+
if (forcedValues[key]) {
|
|
52
|
+
property.set(forcedValues[key]);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
switch (property.constructor.name) {
|
|
56
|
+
case 'StringProperty':
|
|
57
|
+
switch (property.htmlType) {
|
|
58
|
+
case htmlType.GIVEN_NAME:
|
|
59
|
+
property.set(faker_1.faker.name.firstName());
|
|
60
|
+
break;
|
|
61
|
+
case htmlType.FAMILY_NAME:
|
|
62
|
+
property.set(faker_1.faker.name.lastName());
|
|
63
|
+
break;
|
|
64
|
+
case htmlType.EMAIL:
|
|
65
|
+
property.set(faker_1.faker.helpers.unique(faker_1.faker.internet.email));
|
|
66
|
+
break;
|
|
67
|
+
case htmlType.ORG:
|
|
68
|
+
property.set(faker_1.faker.company.name());
|
|
69
|
+
default:
|
|
70
|
+
property.set(faker_1.faker.word.noun());
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
break;
|
|
74
|
+
case 'EnumProperty':
|
|
75
|
+
property.set(faker_1.faker.helpers.arrayElement(property.values));
|
|
76
|
+
break;
|
|
77
|
+
case 'HashProperty':
|
|
78
|
+
property.set(faker_1.faker.random.alphaNumeric(16));
|
|
79
|
+
break;
|
|
80
|
+
case 'DateTimeProperty':
|
|
81
|
+
switch (property.htmlType) {
|
|
82
|
+
case htmlType.BIRTHDAY:
|
|
83
|
+
property.set(faker_1.faker.date.birthdate());
|
|
84
|
+
break;
|
|
85
|
+
default:
|
|
86
|
+
//property.set(faker.date.future())
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
default:
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
promises.push(dao.save());
|
|
95
|
+
}
|
|
96
|
+
return Promise.all(promises);
|
|
97
|
+
});
|
|
98
|
+
exports.DataGenerator = DataGenerator;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataGenerator = void 0;
|
|
4
|
+
const DataGenerator_1 = require("./DataGenerator");
|
|
5
|
+
Object.defineProperty(exports, "DataGenerator", { enumerable: true, get: function () { return DataGenerator_1.DataGenerator; } });
|