kodzero-schema-parser 0.0.1 → 0.0.3
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/KodzeroToValidnoParser.d.ts +5 -0
- package/dist/KodzeroToValidnoParser.d.ts.map +1 -1
- package/dist/KodzeroToValidnoParser.js +39 -0
- package/dist/kz-schema-factory/FieldValidator.d.ts +1 -0
- package/dist/kz-schema-factory/FieldValidator.d.ts.map +1 -1
- package/dist/kz-schema-factory/FieldValidator.js +6 -0
- package/dist/kz-schema-factory/SchemaFactory.d.ts +4 -2
- package/dist/kz-schema-factory/SchemaFactory.d.ts.map +1 -1
- package/dist/kz-schema-factory/SchemaFactory.js +6 -0
- package/dist/kz-schema-factory/types-constructors/relation.d.ts +12 -0
- package/dist/kz-schema-factory/types-constructors/relation.d.ts.map +1 -0
- package/dist/kz-schema-factory/types-constructors/relation.js +43 -0
- package/dist/kz-schema-factory/types.d.ts +7 -1
- package/dist/kz-schema-factory/types.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/table-types-specs.d.ts +5 -0
- package/dist/types/table-types-specs.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import type TableFieldJson from './kz-schema-factory/types-constructors/json.js'
|
|
|
7
7
|
import type TableFieldEmail from './kz-schema-factory/types-constructors/email.js';
|
|
8
8
|
import type TableFieldUrl from './kz-schema-factory/types-constructors/url.js';
|
|
9
9
|
import type TableFieldSelect from './kz-schema-factory/types-constructors/select.js';
|
|
10
|
+
import TableFieldRelation from './kz-schema-factory/types-constructors/relation.js';
|
|
10
11
|
declare class KodzeroToValidnoParser {
|
|
11
12
|
static parseString(field: TableField<TableFieldString>): {
|
|
12
13
|
type: StringConstructor;
|
|
@@ -40,6 +41,10 @@ declare class KodzeroToValidnoParser {
|
|
|
40
41
|
type: StringConstructor | ArrayConstructor;
|
|
41
42
|
rules?: Record<string, unknown>;
|
|
42
43
|
};
|
|
44
|
+
static parseRelation(field: TableField<TableFieldRelation>): {
|
|
45
|
+
type: StringConstructor | ArrayConstructor;
|
|
46
|
+
rules?: Record<string, unknown>;
|
|
47
|
+
};
|
|
43
48
|
static parseSchema(schemaDb: TableField<TableFieldAny>[]): unknown;
|
|
44
49
|
}
|
|
45
50
|
export default KodzeroToValidnoParser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KodzeroToValidnoParser.d.ts","sourceRoot":"","sources":["../src/KodzeroToValidnoParser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC7E,OAAO,KAAK,gBAAgB,MAAM,kDAAkD,CAAA;AACpF,OAAO,KAAK,gBAAgB,MAAM,kDAAkD,CAAA;AACpF,OAAO,KAAK,iBAAiB,MAAM,mDAAmD,CAAA;AACtF,OAAO,KAAK,cAAc,MAAM,gDAAgD,CAAA;AAChF,OAAO,KAAK,cAAc,MAAM,gDAAgD,CAAA;AAChF,OAAO,KAAK,eAAe,MAAM,iDAAiD,CAAA;AAClF,OAAO,KAAK,aAAa,MAAM,+CAA+C,CAAA;AAC9E,OAAO,KAAK,gBAAgB,MAAM,kDAAkD,CAAA;
|
|
1
|
+
{"version":3,"file":"KodzeroToValidnoParser.d.ts","sourceRoot":"","sources":["../src/KodzeroToValidnoParser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC7E,OAAO,KAAK,gBAAgB,MAAM,kDAAkD,CAAA;AACpF,OAAO,KAAK,gBAAgB,MAAM,kDAAkD,CAAA;AACpF,OAAO,KAAK,iBAAiB,MAAM,mDAAmD,CAAA;AACtF,OAAO,KAAK,cAAc,MAAM,gDAAgD,CAAA;AAChF,OAAO,KAAK,cAAc,MAAM,gDAAgD,CAAA;AAChF,OAAO,KAAK,eAAe,MAAM,iDAAiD,CAAA;AAClF,OAAO,KAAK,aAAa,MAAM,+CAA+C,CAAA;AAC9E,OAAO,KAAK,gBAAgB,MAAM,kDAAkD,CAAA;AACpF,OAAO,kBAAkB,MAAM,oDAAoD,CAAA;AAInF,cAAM,sBAAsB;IAC1B,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC;cAC9B,iBAAiB;gBAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IAkC1E,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC;cAC9B,iBAAiB;gBAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IA6B1E,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC;cAChC,kBAAkB;gBAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IAmB3E,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;cAC1B,eAAe;gBAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IAkDxE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;cAC1B,iBAAiB;eAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IAuBzE,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC;cAC5B,iBAAiB;gBAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IAyE1E,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC;cACxB,iBAAiB;gBAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IAuE1E,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC;cAC9B,iBAAiB,GAAG,gBAAgB;gBAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IA6C7F,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC;cAEhD,iBAAiB,GAAG,gBAAgB;gBAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IA4CnC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,GAAG,OAAO;CA6CnE;AAED,eAAe,sBAAsB,CAAA"}
|
|
@@ -265,6 +265,42 @@ class KodzeroToValidnoParser {
|
|
|
265
265
|
}
|
|
266
266
|
return output;
|
|
267
267
|
}
|
|
268
|
+
static parseRelation(field) {
|
|
269
|
+
const output = { type: String };
|
|
270
|
+
const specs = {
|
|
271
|
+
mayBeEmpty: field.item.specs.mayBeEmpty === false,
|
|
272
|
+
multiple: field.item.specs.multiple === true,
|
|
273
|
+
};
|
|
274
|
+
const hasSpecs = Object.values(specs).some((v) => v === true);
|
|
275
|
+
if (hasSpecs) {
|
|
276
|
+
output.rules = {};
|
|
277
|
+
if (field.item.specs.multiple) {
|
|
278
|
+
output.type = Array;
|
|
279
|
+
output.rules.eachType = String;
|
|
280
|
+
output.rules.custom = (value, {}) => {
|
|
281
|
+
if (field.item.specs.mayBeEmpty && Array.isArray(value) && value.length === 0) {
|
|
282
|
+
return {
|
|
283
|
+
result: true,
|
|
284
|
+
details: '',
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
const allStringsLength24 = value.every((v) => typeof v === 'string' && v.length === 24);
|
|
288
|
+
return {
|
|
289
|
+
result: allStringsLength24,
|
|
290
|
+
details: allStringsLength24 ? '' : 'One or more IDs are invalid',
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
output.type = String;
|
|
296
|
+
output.rules.length = 24;
|
|
297
|
+
if (specs.mayBeEmpty) {
|
|
298
|
+
output.rules.isNot = '';
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return output;
|
|
303
|
+
}
|
|
268
304
|
static parseSchema(schemaDb) {
|
|
269
305
|
const schema = {};
|
|
270
306
|
const schemaFiltered = schemaDb.filter((field) => field.item.key && !defaultKeys.includes(field.item.key));
|
|
@@ -296,6 +332,9 @@ class KodzeroToValidnoParser {
|
|
|
296
332
|
case 'select':
|
|
297
333
|
schema[key] = KodzeroToValidnoParser.parseSelect(field);
|
|
298
334
|
break;
|
|
335
|
+
case 'relation':
|
|
336
|
+
schema[key] = KodzeroToValidnoParser.parseRelation(field);
|
|
337
|
+
break;
|
|
299
338
|
default:
|
|
300
339
|
break;
|
|
301
340
|
}
|
|
@@ -9,6 +9,7 @@ declare class FieldValidator {
|
|
|
9
9
|
static validateNumber(input: Record<string, any>): import("validno").ValidnoResult;
|
|
10
10
|
static validateSelect(input: Record<string, any>): import("validno").ValidnoResult;
|
|
11
11
|
static validateUrl(input: Record<string, any>): import("validno").ValidnoResult;
|
|
12
|
+
static validateRelation(input: Record<string, any>): import("validno").ValidnoResult;
|
|
12
13
|
static validateBase(input: Record<string, any>): import("validno").ValidnoResult;
|
|
13
14
|
static validateWrapper(input: Record<string, any>): import("validno").ValidnoResult;
|
|
14
15
|
static validateSpecsAuto(type: string, specs: Record<string, any>): import("validno").ValidnoResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldValidator.d.ts","sourceRoot":"","sources":["../../src/kz-schema-factory/FieldValidator.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"FieldValidator.d.ts","sourceRoot":"","sources":["../../src/kz-schema-factory/FieldValidator.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA4FvD,cAAM,cAAc;;IAGhB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIhD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIjD,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI9C,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI/C,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI9C,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIhD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIhD,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI7C,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIlD,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI9C,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIjD,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAyBjE,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE;CAgB/D;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { jsonSpecsSchema } from "./types-constructors/json.js";
|
|
|
7
7
|
import { numberSpecsSchema } from "./types-constructors/number.js";
|
|
8
8
|
import { selectSpecsSchema } from "./types-constructors/select.js";
|
|
9
9
|
import { urlSpecsSchema } from "./types-constructors/url.js";
|
|
10
|
+
import { relationSpecsSchema } from "./types-constructors/relation.js";
|
|
10
11
|
const Checks = {
|
|
11
12
|
'ok': {
|
|
12
13
|
description: 'Summary of validations',
|
|
@@ -109,6 +110,9 @@ class FieldValidator {
|
|
|
109
110
|
static validateUrl(input) {
|
|
110
111
|
return urlSpecsSchema.validate(input);
|
|
111
112
|
}
|
|
113
|
+
static validateRelation(input) {
|
|
114
|
+
return relationSpecsSchema.validate(input);
|
|
115
|
+
}
|
|
112
116
|
static validateBase(input) {
|
|
113
117
|
return baseSchema.validate(input);
|
|
114
118
|
}
|
|
@@ -133,6 +137,8 @@ class FieldValidator {
|
|
|
133
137
|
return this.validateSelect(specs);
|
|
134
138
|
case 'url':
|
|
135
139
|
return this.validateUrl(specs);
|
|
140
|
+
case 'relation':
|
|
141
|
+
return this.validateRelation(specs);
|
|
136
142
|
default:
|
|
137
143
|
throw new Error(`Unknown field type: ${type}`);
|
|
138
144
|
}
|
|
@@ -6,7 +6,8 @@ import TableFieldNumber from './types-constructors/number.js';
|
|
|
6
6
|
import TableFieldSelect from './types-constructors/select.js';
|
|
7
7
|
import TableFieldString from './types-constructors/string.js';
|
|
8
8
|
import TableFieldUrl from './types-constructors/url.js';
|
|
9
|
-
import type { BooleanSpecs, DateSpecs, EmailSpecs, JsonSpecs, NumberSpecs, SelectSpecs, StringSpecs, UrlSpecs } from './types.js';
|
|
9
|
+
import type { BooleanSpecs, DateSpecs, EmailSpecs, JsonSpecs, NumberSpecs, RelationSpecs, SelectSpecs, StringSpecs, UrlSpecs } from './types.js';
|
|
10
|
+
import TableFieldRelation from './types-constructors/relation.js';
|
|
10
11
|
export type TableFieldAny = TableFieldBoolean | TableFieldDate | TableFieldEmail | TableFieldJson | TableFieldNumber | TableFieldSelect | TableFieldString | TableFieldUrl;
|
|
11
12
|
type IndexItem = {
|
|
12
13
|
key: string;
|
|
@@ -32,7 +33,7 @@ declare class CollectionConfig {
|
|
|
32
33
|
move(from: number, to: number): void;
|
|
33
34
|
}
|
|
34
35
|
export declare class TableFieldCreator {
|
|
35
|
-
static create(key: string, type: string, settings?: unknown): TableFieldBoolean | TableFieldDate | TableFieldEmail | TableFieldJson | TableFieldNumber | TableFieldSelect | TableFieldString | TableFieldUrl;
|
|
36
|
+
static create(key: string, type: string, settings?: unknown): TableFieldBoolean | TableFieldDate | TableFieldEmail | TableFieldJson | TableFieldNumber | TableFieldSelect | TableFieldString | TableFieldUrl | TableFieldRelation;
|
|
36
37
|
static createBoolean(key: string, settings: Partial<BooleanSpecs>): TableFieldBoolean;
|
|
37
38
|
static createString(key: string, settings?: Partial<StringSpecs>): TableFieldString;
|
|
38
39
|
static createNumber(key: string, settings?: Partial<NumberSpecs>): TableFieldNumber;
|
|
@@ -41,6 +42,7 @@ export declare class TableFieldCreator {
|
|
|
41
42
|
static createJson(key: string, settings?: Partial<JsonSpecs>): TableFieldJson;
|
|
42
43
|
static createSelect(key: string, settings?: Partial<SelectSpecs>): TableFieldSelect;
|
|
43
44
|
static createUrl(key: string, settings?: Partial<UrlSpecs>): TableFieldUrl;
|
|
45
|
+
static createRelation(key: string, settings?: Partial<RelationSpecs>): TableFieldRelation;
|
|
44
46
|
}
|
|
45
47
|
export default CollectionConfig;
|
|
46
48
|
//# sourceMappingURL=SchemaFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaFactory.d.ts","sourceRoot":"","sources":["../../src/kz-schema-factory/SchemaFactory.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,iCAAiC,CAAA;AAC/D,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,eAAe,MAAM,+BAA+B,CAAA;AAC3D,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,aAAa,MAAM,6BAA6B,CAAA;AACvD,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACT,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"SchemaFactory.d.ts","sourceRoot":"","sources":["../../src/kz-schema-factory/SchemaFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import TableFieldSelect from './types-constructors/select.js';
|
|
|
7
7
|
import TableFieldString from './types-constructors/string.js';
|
|
8
8
|
import TableFieldUrl from './types-constructors/url.js';
|
|
9
9
|
import generateSecret from '../utils/generate-secret.js';
|
|
10
|
+
import TableFieldRelation from './types-constructors/relation.js';
|
|
10
11
|
class CollectionConfig {
|
|
11
12
|
constructor(items = []) {
|
|
12
13
|
this.totalQty = items.length || 0;
|
|
@@ -83,6 +84,8 @@ export class TableFieldCreator {
|
|
|
83
84
|
return new TableFieldSelect(key, settings);
|
|
84
85
|
case 'url':
|
|
85
86
|
return new TableFieldUrl(key, settings);
|
|
87
|
+
case 'relation':
|
|
88
|
+
return new TableFieldRelation(key, settings);
|
|
86
89
|
default:
|
|
87
90
|
throw new Error(`Unsupported config type: ${type}`);
|
|
88
91
|
}
|
|
@@ -111,5 +114,8 @@ export class TableFieldCreator {
|
|
|
111
114
|
static createUrl(key, settings = {}) {
|
|
112
115
|
return new TableFieldUrl(key, settings);
|
|
113
116
|
}
|
|
117
|
+
static createRelation(key, settings = {}) {
|
|
118
|
+
return new TableFieldRelation(key, settings);
|
|
119
|
+
}
|
|
114
120
|
}
|
|
115
121
|
export default CollectionConfig;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Schema from 'validno';
|
|
2
|
+
import { RelationSpecs, TableFieldItem } from '../types.js';
|
|
3
|
+
export declare const relationSpecsSchema: Schema;
|
|
4
|
+
declare class TableFieldRelation implements TableFieldItem<RelationSpecs> {
|
|
5
|
+
key: string;
|
|
6
|
+
type: string;
|
|
7
|
+
title: string;
|
|
8
|
+
specs: RelationSpecs;
|
|
9
|
+
constructor(key: string, settings?: Partial<RelationSpecs>);
|
|
10
|
+
}
|
|
11
|
+
export default TableFieldRelation;
|
|
12
|
+
//# sourceMappingURL=relation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../../src/kz-schema-factory/types-constructors/relation.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAe3D,eAAO,MAAM,mBAAmB,QAa9B,CAAA;AAEF,cAAM,kBAAmB,YAAW,cAAc,CAAC,aAAa,CAAC;IAC/D,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,aAAa,CAAA;gBAER,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAO,CAAC,aAAa,CAAkB;CAc3E;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import Schema from 'validno';
|
|
2
|
+
import validateInput from '../../utils/validate-input.js';
|
|
3
|
+
var Constants;
|
|
4
|
+
(function (Constants) {
|
|
5
|
+
Constants["Name"] = "relation";
|
|
6
|
+
Constants["Title"] = "\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438";
|
|
7
|
+
})(Constants || (Constants = {}));
|
|
8
|
+
const defaultSpecs = () => {
|
|
9
|
+
return {
|
|
10
|
+
collection: '',
|
|
11
|
+
multiple: false,
|
|
12
|
+
mayBeEmpty: true,
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export const relationSpecsSchema = new Schema({
|
|
16
|
+
collection: {
|
|
17
|
+
type: String,
|
|
18
|
+
required: false,
|
|
19
|
+
},
|
|
20
|
+
multiple: {
|
|
21
|
+
type: Boolean,
|
|
22
|
+
required: false,
|
|
23
|
+
},
|
|
24
|
+
mayBeEmpty: {
|
|
25
|
+
type: Boolean,
|
|
26
|
+
required: false,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
class TableFieldRelation {
|
|
30
|
+
constructor(key, settings = defaultSpecs()) {
|
|
31
|
+
const settingsCombined = Object.assign(Object.assign({}, defaultSpecs()), settings);
|
|
32
|
+
validateInput(relationSpecsSchema, settingsCombined);
|
|
33
|
+
this.key = key;
|
|
34
|
+
this.type = Constants.Name;
|
|
35
|
+
this.title = Constants.Title;
|
|
36
|
+
this.specs = {
|
|
37
|
+
collection: settingsCombined.collection,
|
|
38
|
+
multiple: settingsCombined.multiple,
|
|
39
|
+
mayBeEmpty: settingsCombined.mayBeEmpty,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export default TableFieldRelation;
|
|
@@ -6,13 +6,14 @@ import TableFieldNumber from './types-constructors/number.js';
|
|
|
6
6
|
import TableFieldSelect from './types-constructors/select.js';
|
|
7
7
|
import TableFieldString from './types-constructors/string.js';
|
|
8
8
|
import TableFieldUrl from './types-constructors/url.js';
|
|
9
|
+
import TableFieldRelation from './types-constructors/relation.js';
|
|
9
10
|
export type TableField<T = Record<string, unknown>> = {
|
|
10
11
|
id: string;
|
|
11
12
|
order: number;
|
|
12
13
|
isAuto?: boolean;
|
|
13
14
|
item: T;
|
|
14
15
|
};
|
|
15
|
-
export type TableFieldAny = TableFieldBoolean | TableFieldDate | TableFieldEmail | TableFieldJson | TableFieldNumber | TableFieldSelect | TableFieldString | TableFieldUrl;
|
|
16
|
+
export type TableFieldAny = TableFieldBoolean | TableFieldDate | TableFieldEmail | TableFieldJson | TableFieldNumber | TableFieldSelect | TableFieldString | TableFieldUrl | TableFieldRelation;
|
|
16
17
|
export interface TableFieldItem<Specs = Record<string, unknown>> {
|
|
17
18
|
key: string;
|
|
18
19
|
type: string;
|
|
@@ -57,4 +58,9 @@ export interface UrlSpecs {
|
|
|
57
58
|
exceptDomains: string[];
|
|
58
59
|
mayBeEmpty: boolean;
|
|
59
60
|
}
|
|
61
|
+
export interface RelationSpecs {
|
|
62
|
+
collection: string;
|
|
63
|
+
multiple: boolean;
|
|
64
|
+
mayBeEmpty: boolean;
|
|
65
|
+
}
|
|
60
66
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/kz-schema-factory/types.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,iCAAiC,CAAA;AAC/D,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,eAAe,MAAM,+BAA+B,CAAA;AAC3D,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,aAAa,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/kz-schema-factory/types.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,iCAAiC,CAAA;AAC/D,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,eAAe,MAAM,+BAA+B,CAAA;AAC3D,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,aAAa,MAAM,6BAA6B,CAAA;AACvD,OAAO,kBAAkB,MAAM,kCAAkC,CAAA;AAEjE,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,CAAC,CAAA;CACR,CAAA;AAED,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,cAAc,GACd,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,kBAAkB,CAAA;AAEtB,MAAM,WAAW,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACb;AAGD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;IAChB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/kodzerotovalidnoparser.ts","../src/index.ts","../src/kz-schema-factory/fieldvalidator.ts","../src/kz-schema-factory/schemafactory.ts","../src/kz-schema-factory/types.ts","../src/kz-schema-factory/fields-to-types/number.ts","../src/kz-schema-factory/fields-to-types/select.ts","../src/kz-schema-factory/fields-to-types/string.ts","../src/kz-schema-factory/fields-to-types/url.ts","../src/kz-schema-factory/types-constructors/autofieldcreatedat.ts","../src/kz-schema-factory/types-constructors/autofieldid.ts","../src/kz-schema-factory/types-constructors/autofieldupdatedat.ts","../src/kz-schema-factory/types-constructors/boolean.ts","../src/kz-schema-factory/types-constructors/date.ts","../src/kz-schema-factory/types-constructors/email.ts","../src/kz-schema-factory/types-constructors/json.ts","../src/kz-schema-factory/types-constructors/number.ts","../src/kz-schema-factory/types-constructors/select.ts","../src/kz-schema-factory/types-constructors/string.ts","../src/kz-schema-factory/types-constructors/url.ts","../src/types/table-fields.ts","../src/types/table-types-specs.ts","../src/utils/generate-secret.ts","../src/utils/is-valid-json.ts","../src/utils/validate-input.ts"],"version":"5.9.3"}
|
|
1
|
+
{"root":["../src/kodzerotovalidnoparser.ts","../src/index.ts","../src/kz-schema-factory/fieldvalidator.ts","../src/kz-schema-factory/schemafactory.ts","../src/kz-schema-factory/types.ts","../src/kz-schema-factory/fields-to-types/number.ts","../src/kz-schema-factory/fields-to-types/select.ts","../src/kz-schema-factory/fields-to-types/string.ts","../src/kz-schema-factory/fields-to-types/url.ts","../src/kz-schema-factory/types-constructors/autofieldcreatedat.ts","../src/kz-schema-factory/types-constructors/autofieldid.ts","../src/kz-schema-factory/types-constructors/autofieldupdatedat.ts","../src/kz-schema-factory/types-constructors/boolean.ts","../src/kz-schema-factory/types-constructors/date.ts","../src/kz-schema-factory/types-constructors/email.ts","../src/kz-schema-factory/types-constructors/json.ts","../src/kz-schema-factory/types-constructors/number.ts","../src/kz-schema-factory/types-constructors/relation.ts","../src/kz-schema-factory/types-constructors/select.ts","../src/kz-schema-factory/types-constructors/string.ts","../src/kz-schema-factory/types-constructors/url.ts","../src/types/table-fields.ts","../src/types/table-types-specs.ts","../src/utils/generate-secret.ts","../src/utils/is-valid-json.ts","../src/utils/validate-input.ts"],"version":"5.9.3"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-types-specs.d.ts","sourceRoot":"","sources":["../../src/types/table-types-specs.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;IAChB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;CACpB"}
|
|
1
|
+
{"version":3,"file":"table-types-specs.d.ts","sourceRoot":"","sources":["../../src/types/table-types-specs.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;IAChB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB"}
|