@fibery/schema 8.3.0 → 9.0.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/index.ts +6 -0
- package/lib/index.js +119 -18
- package/package.json +25 -9
- package/index.js +0 -61
- package/types.d.ts +0 -101
package/index.ts
ADDED
package/lib/index.js
CHANGED
|
@@ -51,8 +51,24 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
51
51
|
|
|
52
52
|
// EXPORTS
|
|
53
53
|
__webpack_require__.d(__webpack_exports__, {
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
FieldObject: () => (/* reexport */ FieldObject),
|
|
55
|
+
NotDefinedGetError: () => (/* reexport */ NotDefinedGetError),
|
|
56
|
+
Schema: () => (/* reexport */ Schema),
|
|
57
|
+
TypeObject: () => (/* reexport */ TypeObject),
|
|
58
|
+
attachEnumNamespace: () => (/* reexport */ attachEnumNamespace),
|
|
59
|
+
capitalizeFirstChar: () => (/* reexport */ capitalizeFirstChar),
|
|
60
|
+
factory: () => (/* reexport */ factory),
|
|
61
|
+
makeEnumTypeNamePart: () => (/* reexport */ makeEnumTypeNamePart),
|
|
62
|
+
parseEnumType: () => (/* reexport */ parseEnumType),
|
|
63
|
+
parseType: () => (/* reexport */ parseType),
|
|
64
|
+
protectiveFactory: () => (/* reexport */ protectiveFactory),
|
|
65
|
+
removeDeletedTypesAndFields: () => (/* reexport */ removeDeletedTypesAndFields),
|
|
66
|
+
toNonEnumTitle: () => (/* reexport */ toNonEnumTitle),
|
|
67
|
+
toPascalCase: () => (/* reexport */ toPascalCase),
|
|
68
|
+
toTitle: () => (/* reexport */ toTitle),
|
|
69
|
+
toTypeOrFieldNamePartTitle: () => (/* reexport */ toTypeOrFieldNamePartTitle),
|
|
70
|
+
toTypeOrFieldTitle: () => (/* reexport */ toTypeOrFieldTitle),
|
|
71
|
+
withOnlyDefinedGets: () => (/* reexport */ withOnlyDefinedGets)
|
|
56
72
|
});
|
|
57
73
|
|
|
58
74
|
;// CONCATENATED MODULE: external "lodash"
|
|
@@ -102,12 +118,12 @@ let traceErrorSubscribers = [console.error.bind(console)];
|
|
|
102
118
|
const overridden = false;
|
|
103
119
|
function subscribeOnTraceError(fn) {
|
|
104
120
|
if (overridden) {
|
|
105
|
-
throw new Error("
|
|
121
|
+
throw new Error("can't subscribe while overridden");
|
|
106
122
|
}
|
|
107
123
|
traceErrorSubscribers.push(fn);
|
|
108
124
|
let unsubscribed = false;
|
|
109
125
|
return function unsubscribe() {
|
|
110
|
-
assert(!unsubscribed, "
|
|
126
|
+
assert(!unsubscribed, "Can't unsubscribe more than once");
|
|
111
127
|
unsubscribed = true;
|
|
112
128
|
traceErrorSubscribers = traceErrorSubscribers.filter(x => x !== fn);
|
|
113
129
|
};
|
|
@@ -127,7 +143,7 @@ function subscribeOnCaptureMessage(fn) {
|
|
|
127
143
|
captureMessageSubscribers.push(fn);
|
|
128
144
|
let unsubscribed = false;
|
|
129
145
|
return function unsubscribe() {
|
|
130
|
-
assert(!unsubscribed, "
|
|
146
|
+
assert(!unsubscribed, "Can't unsubscribe more than once");
|
|
131
147
|
unsubscribed = true;
|
|
132
148
|
captureMessageSubscribers = captureMessageSubscribers.filter(x => x !== fn);
|
|
133
149
|
};
|
|
@@ -168,7 +184,7 @@ function withErrorTrace(f) {
|
|
|
168
184
|
}
|
|
169
185
|
};
|
|
170
186
|
}
|
|
171
|
-
;// CONCATENATED MODULE: ./utils.ts
|
|
187
|
+
;// CONCATENATED MODULE: ./src/utils.ts
|
|
172
188
|
|
|
173
189
|
|
|
174
190
|
|
|
@@ -297,7 +313,11 @@ const removeDeletedTypesAndFields = rawSchema => {
|
|
|
297
313
|
"fibery/types": filteredRawTypeObjects
|
|
298
314
|
};
|
|
299
315
|
};
|
|
300
|
-
;// CONCATENATED MODULE: ./
|
|
316
|
+
;// CONCATENATED MODULE: ./src/field-object.ts
|
|
317
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
318
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
319
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
320
|
+
/* eslint-disable no-use-before-define */
|
|
301
321
|
|
|
302
322
|
|
|
303
323
|
class FieldObject {
|
|
@@ -309,6 +329,41 @@ class FieldObject {
|
|
|
309
329
|
version,
|
|
310
330
|
resolveMultiRelatedFieldObjects
|
|
311
331
|
} = _ref;
|
|
332
|
+
_defineProperty(this, "name", void 0);
|
|
333
|
+
_defineProperty(this, "description", void 0);
|
|
334
|
+
_defineProperty(this, "id", void 0);
|
|
335
|
+
_defineProperty(this, "type", void 0);
|
|
336
|
+
_defineProperty(this, "rawMeta", void 0);
|
|
337
|
+
_defineProperty(this, "holderType", void 0);
|
|
338
|
+
_defineProperty(this, "isCollection", void 0);
|
|
339
|
+
_defineProperty(this, "isTitle", void 0);
|
|
340
|
+
_defineProperty(this, "isId", void 0);
|
|
341
|
+
_defineProperty(this, "isPublicId", void 0);
|
|
342
|
+
_defineProperty(this, "isReadOnly", void 0);
|
|
343
|
+
_defineProperty(this, "isFormula", void 0);
|
|
344
|
+
_defineProperty(this, "isFormulaDisabled", void 0);
|
|
345
|
+
_defineProperty(this, "formulaDisableReason", void 0);
|
|
346
|
+
_defineProperty(this, "formula", void 0);
|
|
347
|
+
_defineProperty(this, "isLookup", void 0);
|
|
348
|
+
_defineProperty(this, "hasLinkRule", void 0);
|
|
349
|
+
_defineProperty(this, "linkRule", void 0);
|
|
350
|
+
_defineProperty(this, "isLinkRuleDisabled", void 0);
|
|
351
|
+
_defineProperty(this, "linkRuleDisableReason", void 0);
|
|
352
|
+
_defineProperty(this, "relation", void 0);
|
|
353
|
+
_defineProperty(this, "multiRelation", void 0);
|
|
354
|
+
_defineProperty(this, "defaultValue", void 0);
|
|
355
|
+
_defineProperty(this, "objectEditorOrder", void 0);
|
|
356
|
+
_defineProperty(this, "isRequired", void 0);
|
|
357
|
+
_defineProperty(this, "isHidden", void 0);
|
|
358
|
+
_defineProperty(this, "isDeleted", void 0);
|
|
359
|
+
_defineProperty(this, "disableLinkExistingItems", void 0);
|
|
360
|
+
_defineProperty(this, "version", void 0);
|
|
361
|
+
_defineProperty(this, "typeObject", void 0);
|
|
362
|
+
_defineProperty(this, "mixinTypeObject", void 0);
|
|
363
|
+
_defineProperty(this, "holderTypeObject", void 0);
|
|
364
|
+
_defineProperty(this, "nameParts", void 0);
|
|
365
|
+
_defineProperty(this, "title", void 0);
|
|
366
|
+
_defineProperty(this, "multiRelatedFieldObjects", void 0);
|
|
312
367
|
if (!external_lodash_default().isPlainObject(rawFieldObject)) {
|
|
313
368
|
throw new Error("rawFieldObject arg must be plain object");
|
|
314
369
|
}
|
|
@@ -361,7 +416,9 @@ class FieldObject {
|
|
|
361
416
|
configurable: false,
|
|
362
417
|
enumerable: true,
|
|
363
418
|
get: external_lodash_default().once(() => {
|
|
364
|
-
return this.holderTypeObject.installedMixinTypeObjects.find(mixinTypeObject =>
|
|
419
|
+
return this.holderTypeObject.installedMixinTypeObjects.find(mixinTypeObject =>
|
|
420
|
+
// eslint-disable-next-line prefer-object-has-own
|
|
421
|
+
Object.prototype.hasOwnProperty.call(mixinTypeObject.fieldObjectsByName, this.name) || this.name === "workflow/state" && mixinTypeObject.name === "workflow/workflow");
|
|
365
422
|
})
|
|
366
423
|
},
|
|
367
424
|
holderTypeObject: {
|
|
@@ -474,7 +531,10 @@ class FieldObject {
|
|
|
474
531
|
}
|
|
475
532
|
}
|
|
476
533
|
}
|
|
477
|
-
;// CONCATENATED MODULE: ./
|
|
534
|
+
;// CONCATENATED MODULE: ./src/schema.ts
|
|
535
|
+
function schema_defineProperty(obj, key, value) { key = schema_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
536
|
+
function schema_toPropertyKey(arg) { var key = schema_toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
537
|
+
function schema_toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
478
538
|
|
|
479
539
|
class Schema {
|
|
480
540
|
constructor(_ref) {
|
|
@@ -486,6 +546,11 @@ class Schema {
|
|
|
486
546
|
"fibery/version": version
|
|
487
547
|
}
|
|
488
548
|
} = _ref;
|
|
549
|
+
schema_defineProperty(this, "typeObjects", void 0);
|
|
550
|
+
schema_defineProperty(this, "typeObjectsById", void 0);
|
|
551
|
+
schema_defineProperty(this, "typeObjectsByName", void 0);
|
|
552
|
+
schema_defineProperty(this, "id", void 0);
|
|
553
|
+
schema_defineProperty(this, "version", void 0);
|
|
489
554
|
if (!Array.isArray(rawTypeObjects)) {
|
|
490
555
|
throw new Error("rawTypeObjects arg must be array");
|
|
491
556
|
}
|
|
@@ -509,7 +574,7 @@ class Schema {
|
|
|
509
574
|
});
|
|
510
575
|
return typeComponentTypeToFieldObject;
|
|
511
576
|
});
|
|
512
|
-
let multiRelatedFieldsObjectsMap
|
|
577
|
+
let multiRelatedFieldsObjectsMap;
|
|
513
578
|
const initMultiRelatedFieldsObjectsMap = () => {
|
|
514
579
|
multiRelatedFieldsObjectsMap = new Map();
|
|
515
580
|
this.typeObjects.forEach(typeObject => {
|
|
@@ -543,10 +608,11 @@ class Schema {
|
|
|
543
608
|
;// CONCATENATED MODULE: external "pluralize"
|
|
544
609
|
const external_pluralize_namespaceObject = require("pluralize");
|
|
545
610
|
var external_pluralize_default = /*#__PURE__*/__webpack_require__.n(external_pluralize_namespaceObject);
|
|
546
|
-
;// CONCATENATED MODULE: ./
|
|
547
|
-
function
|
|
548
|
-
function
|
|
549
|
-
function
|
|
611
|
+
;// CONCATENATED MODULE: ./src/type-object.ts
|
|
612
|
+
function type_object_defineProperty(obj, key, value) { key = type_object_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
613
|
+
function type_object_toPropertyKey(arg) { var key = type_object_toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
614
|
+
function type_object_toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
615
|
+
/* eslint-disable no-use-before-define */
|
|
550
616
|
|
|
551
617
|
|
|
552
618
|
|
|
@@ -560,7 +626,34 @@ class TypeObject {
|
|
|
560
626
|
factory,
|
|
561
627
|
resolveMultiRelatedFieldObjects
|
|
562
628
|
} = _ref;
|
|
563
|
-
|
|
629
|
+
type_object_defineProperty(this, "name", void 0);
|
|
630
|
+
type_object_defineProperty(this, "description", void 0);
|
|
631
|
+
type_object_defineProperty(this, "id", void 0);
|
|
632
|
+
type_object_defineProperty(this, "rawMeta", void 0);
|
|
633
|
+
type_object_defineProperty(this, "isDomain", void 0);
|
|
634
|
+
type_object_defineProperty(this, "isPlatform", void 0);
|
|
635
|
+
type_object_defineProperty(this, "isHighlight", void 0);
|
|
636
|
+
type_object_defineProperty(this, "isMixin", void 0);
|
|
637
|
+
type_object_defineProperty(this, "mixinIcon", void 0);
|
|
638
|
+
type_object_defineProperty(this, "isEnum", void 0);
|
|
639
|
+
type_object_defineProperty(this, "isPrimitive", void 0);
|
|
640
|
+
type_object_defineProperty(this, "isWriterModeByDefault", void 0);
|
|
641
|
+
type_object_defineProperty(this, "nameParts", void 0);
|
|
642
|
+
type_object_defineProperty(this, "color", void 0);
|
|
643
|
+
type_object_defineProperty(this, "units", void 0);
|
|
644
|
+
type_object_defineProperty(this, "installedMixins", void 0);
|
|
645
|
+
type_object_defineProperty(this, "syncSource", void 0);
|
|
646
|
+
type_object_defineProperty(this, "version", void 0);
|
|
647
|
+
type_object_defineProperty(this, "installedMixinTypeObjects", void 0);
|
|
648
|
+
type_object_defineProperty(this, "title", void 0);
|
|
649
|
+
type_object_defineProperty(this, "pluralTitle", void 0);
|
|
650
|
+
type_object_defineProperty(this, "fieldObjects", void 0);
|
|
651
|
+
type_object_defineProperty(this, "fieldObjectsById", void 0);
|
|
652
|
+
type_object_defineProperty(this, "fieldObjectsByName", void 0);
|
|
653
|
+
type_object_defineProperty(this, "typeComponentFieldObject", void 0);
|
|
654
|
+
type_object_defineProperty(this, "isDeleted", void 0);
|
|
655
|
+
type_object_defineProperty(this, "isEntityRef", void 0);
|
|
656
|
+
type_object_defineProperty(this, "_getFieldObjectShortcuts", external_lodash_default().once(() => {
|
|
564
657
|
const hasRank = this.installedMixins.has("fibery/rank-mixin");
|
|
565
658
|
return this.fieldObjects.reduce((result, fieldObject) => {
|
|
566
659
|
if (fieldObject.isId) {
|
|
@@ -600,6 +693,7 @@ class TypeObject {
|
|
|
600
693
|
const rawMeta = rawTypeObject["fibery/meta"] || {};
|
|
601
694
|
this.rawMeta = rawMeta;
|
|
602
695
|
this.isDomain = rawMeta["fibery/domain?"] || false;
|
|
696
|
+
this.isPlatform = rawMeta["fibery/platform?"] || false;
|
|
603
697
|
this.isHighlight = rawMeta["fibery/highlight?"] || false;
|
|
604
698
|
this.isMixin = rawMeta["app/mixin?"] || false;
|
|
605
699
|
this.mixinIcon = rawMeta["ui/mixin-icon"] || null;
|
|
@@ -706,7 +800,7 @@ class TypeObject {
|
|
|
706
800
|
return this._getFieldObjectShortcuts().rankFieldObject;
|
|
707
801
|
}
|
|
708
802
|
}
|
|
709
|
-
;// CONCATENATED MODULE: ./
|
|
803
|
+
;// CONCATENATED MODULE: ./src/factory.ts
|
|
710
804
|
|
|
711
805
|
|
|
712
806
|
|
|
@@ -731,14 +825,12 @@ const factory = {
|
|
|
731
825
|
makeFieldObject: args => new FieldObject(args),
|
|
732
826
|
makeFieldObjectsById: _ref => {
|
|
733
827
|
let {
|
|
734
|
-
type,
|
|
735
828
|
fieldObjects
|
|
736
829
|
} = _ref;
|
|
737
830
|
return external_lodash_default().keyBy(fieldObjects, x => x.id);
|
|
738
831
|
},
|
|
739
832
|
makeFieldObjectsByName: _ref2 => {
|
|
740
833
|
let {
|
|
741
|
-
type,
|
|
742
834
|
fieldObjects
|
|
743
835
|
} = _ref2;
|
|
744
836
|
return external_lodash_default().keyBy(fieldObjects, x => x.name);
|
|
@@ -782,6 +874,15 @@ const protectiveFactory = {
|
|
|
782
874
|
return withOnlyDefinedGets(external_lodash_default().keyBy(fieldObjects, x => x.name), `schema.typeObjectsByName["${type}"].fieldObjectsByName`);
|
|
783
875
|
}
|
|
784
876
|
};
|
|
877
|
+
;// CONCATENATED MODULE: ./src/errors.ts
|
|
878
|
+
class NotDefinedGetError extends Error {}
|
|
879
|
+
;// CONCATENATED MODULE: ./index.ts
|
|
880
|
+
|
|
881
|
+
|
|
882
|
+
|
|
883
|
+
|
|
884
|
+
|
|
885
|
+
|
|
785
886
|
module.exports = __webpack_exports__;
|
|
786
887
|
/******/ })()
|
|
787
888
|
;
|
package/package.json
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fibery/schema",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "utils for working with fibery schema",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
|
-
"browser": "./index.
|
|
7
|
-
"types": "./types.d.ts",
|
|
6
|
+
"browser": "./index.ts",
|
|
8
7
|
"files": [
|
|
9
|
-
"./lib"
|
|
10
|
-
"types.d.ts"
|
|
8
|
+
"./lib"
|
|
11
9
|
],
|
|
12
10
|
"private": false,
|
|
13
11
|
"dependencies": {
|
|
@@ -18,15 +16,16 @@
|
|
|
18
16
|
},
|
|
19
17
|
"devDependencies": {
|
|
20
18
|
"@babel/core": "7.20.5",
|
|
19
|
+
"@swc/jest": "0.2.29",
|
|
21
20
|
"@types/lodash": "4.14.172",
|
|
22
|
-
"
|
|
21
|
+
"@types/pluralize": "0.0.29",
|
|
23
22
|
"babel-loader": "9.1.0",
|
|
24
23
|
"jest": "27.5.1",
|
|
25
24
|
"jest-junit": "13.0.0",
|
|
26
25
|
"webpack": "5.87.0",
|
|
27
26
|
"webpack-cli": "4.10.0",
|
|
28
|
-
"@fibery/
|
|
29
|
-
"@fibery/
|
|
27
|
+
"@fibery/eslint-config": "8.5.0",
|
|
28
|
+
"@fibery/babel-preset": "7.3.0"
|
|
30
29
|
},
|
|
31
30
|
"jest": {
|
|
32
31
|
"testEnvironment": "node",
|
|
@@ -45,7 +44,24 @@
|
|
|
45
44
|
"<rootDir>[/\\\\](build|docs|node_modules|scripts)[/\\\\]"
|
|
46
45
|
],
|
|
47
46
|
"transform": {
|
|
48
|
-
"^.+\\.(js|jsx|ts|tsx)$":
|
|
47
|
+
"^.+\\.(js|jsx|ts|tsx)$": [
|
|
48
|
+
"@swc/jest",
|
|
49
|
+
{
|
|
50
|
+
"jsc": {
|
|
51
|
+
"parser": {
|
|
52
|
+
"syntax": "typescript",
|
|
53
|
+
"tsx": true,
|
|
54
|
+
"decorators": true,
|
|
55
|
+
"dynamicImport": true
|
|
56
|
+
},
|
|
57
|
+
"transform": {
|
|
58
|
+
"react": {
|
|
59
|
+
"runtime": "automatic"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
]
|
|
49
65
|
},
|
|
50
66
|
"testURL": "http://localhost"
|
|
51
67
|
},
|
package/index.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import _ from "lodash";
|
|
2
|
-
import {FieldObject} from "./FieldObject";
|
|
3
|
-
import {Schema} from "./Schema";
|
|
4
|
-
import {TypeObject} from "./TypeObject";
|
|
5
|
-
import {removeDeletedTypesAndFields, withOnlyDefinedGets} from "./utils";
|
|
6
|
-
|
|
7
|
-
export const factory = {
|
|
8
|
-
makeSchema: (rawSchema, options = {shouldRemoveDeletedTypesAndFields: true}) =>
|
|
9
|
-
new Schema({
|
|
10
|
-
rawSchema: options.shouldRemoveDeletedTypesAndFields ? removeDeletedTypesAndFields(rawSchema) : rawSchema,
|
|
11
|
-
factory,
|
|
12
|
-
}),
|
|
13
|
-
makeTypeObject: (args) => new TypeObject({...args, factory}),
|
|
14
|
-
makeTypeObjectsById: (typeObjects) => _.keyBy(typeObjects, (x) => x.id),
|
|
15
|
-
makeTypeObjectsByName: (typeObjects) => _.keyBy(typeObjects, (x) => x.name),
|
|
16
|
-
makeFieldObject: (args) => new FieldObject(args),
|
|
17
|
-
makeFieldObjectsById: ({type, fieldObjects}) => _.keyBy(fieldObjects, (x) => x.id),
|
|
18
|
-
makeFieldObjectsByName: ({type, fieldObjects}) => _.keyBy(fieldObjects, (x) => x.name),
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export const protectiveFactory = {
|
|
22
|
-
makeSchema: (rawSchema, options = {shouldRemoveDeletedTypesAndFields: true}) =>
|
|
23
|
-
withOnlyDefinedGets(
|
|
24
|
-
new Schema({
|
|
25
|
-
rawSchema: options.shouldRemoveDeletedTypesAndFields ? removeDeletedTypesAndFields(rawSchema) : rawSchema,
|
|
26
|
-
factory: protectiveFactory,
|
|
27
|
-
}),
|
|
28
|
-
`schema`
|
|
29
|
-
),
|
|
30
|
-
makeTypeObject: (args) => {
|
|
31
|
-
const typeObject = new TypeObject({...args, factory: protectiveFactory});
|
|
32
|
-
return withOnlyDefinedGets(typeObject, `schema.typeObjectsByName["${typeObject.name}"]`);
|
|
33
|
-
},
|
|
34
|
-
makeTypeObjectsById: (typeObjects) =>
|
|
35
|
-
withOnlyDefinedGets(
|
|
36
|
-
_.keyBy(typeObjects, (x) => x.id),
|
|
37
|
-
"schema.typeObjectsById"
|
|
38
|
-
),
|
|
39
|
-
makeTypeObjectsByName: (typeObjects) =>
|
|
40
|
-
withOnlyDefinedGets(
|
|
41
|
-
_.keyBy(typeObjects, (x) => x.name),
|
|
42
|
-
"schema.typeObjectsByName"
|
|
43
|
-
),
|
|
44
|
-
makeFieldObject: (args) => {
|
|
45
|
-
const fieldObject = new FieldObject(args);
|
|
46
|
-
return withOnlyDefinedGets(
|
|
47
|
-
fieldObject,
|
|
48
|
-
`schema.typeObjectsByName["${fieldObject.holderType}"].fieldObjectsByName["${fieldObject.name}"]`
|
|
49
|
-
);
|
|
50
|
-
},
|
|
51
|
-
makeFieldObjectsById: ({type, fieldObjects}) =>
|
|
52
|
-
withOnlyDefinedGets(
|
|
53
|
-
_.keyBy(fieldObjects, (x) => x.id),
|
|
54
|
-
`schema.typeObjectsByName["${type}"].fieldObjectsById`
|
|
55
|
-
),
|
|
56
|
-
makeFieldObjectsByName: ({type, fieldObjects}) =>
|
|
57
|
-
withOnlyDefinedGets(
|
|
58
|
-
_.keyBy(fieldObjects, (x) => x.name),
|
|
59
|
-
`schema.typeObjectsByName["${type}"].fieldObjectsByName`
|
|
60
|
-
),
|
|
61
|
-
};
|
package/types.d.ts
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
type Cardinality =
|
|
2
|
-
| ":cardinality/one-to-one"
|
|
3
|
-
| ":cardinality/one-to-many"
|
|
4
|
-
| ":cardinality/many-to-many"
|
|
5
|
-
| ":cardinality/many-to-one";
|
|
6
|
-
export type FieldObject = {
|
|
7
|
-
name: string;
|
|
8
|
-
description: string | null;
|
|
9
|
-
id: string;
|
|
10
|
-
type: string;
|
|
11
|
-
rawMeta: Record<string, unknown>;
|
|
12
|
-
holderType: string;
|
|
13
|
-
isCollection: boolean;
|
|
14
|
-
isTitle: boolean;
|
|
15
|
-
isId: boolean;
|
|
16
|
-
isPublicId: boolean;
|
|
17
|
-
isReadOnly: boolean;
|
|
18
|
-
isFormula: boolean;
|
|
19
|
-
formula: unknown | null;
|
|
20
|
-
isLookup: boolean;
|
|
21
|
-
hasLinkRule: boolean;
|
|
22
|
-
linkRule: unknown | null;
|
|
23
|
-
relation: string | null;
|
|
24
|
-
multiRelation: string | null;
|
|
25
|
-
defaultValue: unknown | null;
|
|
26
|
-
objectEditorOrder: number;
|
|
27
|
-
isRequired: boolean;
|
|
28
|
-
isHidden: boolean;
|
|
29
|
-
disableLinkExistingItems: boolean;
|
|
30
|
-
version: string;
|
|
31
|
-
// eslint-disable-next-line no-use-before-define
|
|
32
|
-
typeObject: TypeObject;
|
|
33
|
-
mixinTypeObject: unknown;
|
|
34
|
-
// eslint-disable-next-line no-use-before-define
|
|
35
|
-
holderTypeObject: TypeObject;
|
|
36
|
-
nameParts: {
|
|
37
|
-
namespace: string;
|
|
38
|
-
name: string;
|
|
39
|
-
};
|
|
40
|
-
title: string;
|
|
41
|
-
relatedFieldObject: FieldObject | null;
|
|
42
|
-
cardinality: Cardinality;
|
|
43
|
-
kind: ":field/reference" | ":field/reference-collection" | ":field/basic";
|
|
44
|
-
multiRelatedFieldObjects: Array<FieldObject>;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export type TypeObject = {
|
|
48
|
-
name: string;
|
|
49
|
-
description: string | null;
|
|
50
|
-
id: string;
|
|
51
|
-
idField: string;
|
|
52
|
-
idFieldObject: FieldObject;
|
|
53
|
-
publicIdField: string;
|
|
54
|
-
publicIdFieldObject: FieldObject;
|
|
55
|
-
titleField: string;
|
|
56
|
-
titleFieldObject: FieldObject;
|
|
57
|
-
rankField: string | null;
|
|
58
|
-
rawMeta: Record<string, unknown>;
|
|
59
|
-
isDomain: boolean;
|
|
60
|
-
isHighlight: boolean;
|
|
61
|
-
isMixin: boolean;
|
|
62
|
-
mixinIcon: string | null;
|
|
63
|
-
isEnum: boolean;
|
|
64
|
-
isPrimitive: boolean;
|
|
65
|
-
isRequired: boolean;
|
|
66
|
-
isWriterModeByDefault: boolean;
|
|
67
|
-
nameParts: {
|
|
68
|
-
namespace: string;
|
|
69
|
-
name: string;
|
|
70
|
-
};
|
|
71
|
-
color: string;
|
|
72
|
-
units: unknown | null;
|
|
73
|
-
installedMixins: Set<string>;
|
|
74
|
-
syncSource: {appId: string} | null;
|
|
75
|
-
version: string;
|
|
76
|
-
installedMixinTypeObjects: unknown;
|
|
77
|
-
title: string;
|
|
78
|
-
pluralTitle: string;
|
|
79
|
-
fieldObjects: Array<FieldObject>;
|
|
80
|
-
fieldObjectsById: Record<string, FieldObject>;
|
|
81
|
-
fieldObjectsByName: Record<string, FieldObject>;
|
|
82
|
-
typeComponentFieldObject: FieldObject | undefined;
|
|
83
|
-
isDeleted: boolean;
|
|
84
|
-
isEntityRef: boolean;
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
export type Schema = {
|
|
88
|
-
typeObjects: Array<TypeObject>;
|
|
89
|
-
typeObjectsById: Record<string, TypeObject>;
|
|
90
|
-
typeObjectsByName: Record<string, TypeObject>;
|
|
91
|
-
id: string;
|
|
92
|
-
version: string;
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
interface Factory {
|
|
96
|
-
makeSchema: (rawSchema: Record<string, unknown>, options?: {shouldRemoveDeletedTypesAndFields: boolean}) => Schema;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export const factory: Factory;
|
|
100
|
-
|
|
101
|
-
export const protectiveFactory: Factory;
|