kodzero-schema-parser 0.0.1 → 0.0.2
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 +22 -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;;IA0BnC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,GAAG,OAAO;CA6CnE;AAED,eAAe,sBAAsB,CAAA"}
|
|
@@ -265,6 +265,25 @@ 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 (specs.mayBeEmpty) {
|
|
278
|
+
output.rules.isNot = '';
|
|
279
|
+
}
|
|
280
|
+
if (field.item.specs.multiple) {
|
|
281
|
+
output.type = Array;
|
|
282
|
+
output.rules.eachType = String;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return output;
|
|
286
|
+
}
|
|
268
287
|
static parseSchema(schemaDb) {
|
|
269
288
|
const schema = {};
|
|
270
289
|
const schemaFiltered = schemaDb.filter((field) => field.item.key && !defaultKeys.includes(field.item.key));
|
|
@@ -296,6 +315,9 @@ class KodzeroToValidnoParser {
|
|
|
296
315
|
case 'select':
|
|
297
316
|
schema[key] = KodzeroToValidnoParser.parseSelect(field);
|
|
298
317
|
break;
|
|
318
|
+
case 'relation':
|
|
319
|
+
schema[key] = KodzeroToValidnoParser.parseRelation(field);
|
|
320
|
+
break;
|
|
299
321
|
default:
|
|
300
322
|
break;
|
|
301
323
|
}
|
|
@@ -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"}
|