@fibery/schema 9.0.0 → 10.0.1
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/index.js +22 -888
- package/lib/src/errors.d.ts +2 -0
- package/lib/src/errors.js +6 -0
- package/lib/src/factory.d.ts +22 -0
- package/lib/src/factory.js +45 -0
- package/lib/src/field-object.d.ts +85 -0
- package/lib/src/field-object.js +216 -0
- package/lib/src/print-utils.d.ts +2 -0
- package/lib/src/print-utils.js +8 -0
- package/lib/src/schema.d.ts +18 -0
- package/lib/src/schema.js +68 -0
- package/lib/src/type-object.d.ts +100 -0
- package/lib/src/type-object.js +192 -0
- package/lib/src/utils.d.ts +59 -0
- package/lib/src/utils.js +162 -0
- package/package.json +10 -9
- /package/{index.ts → lib/index.d.ts} +0 -0
package/lib/index.js
CHANGED
|
@@ -1,888 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/******/ for(var key in definition) {
|
|
24
|
-
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
25
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
26
|
-
/******/ }
|
|
27
|
-
/******/ }
|
|
28
|
-
/******/ };
|
|
29
|
-
/******/ })();
|
|
30
|
-
/******/
|
|
31
|
-
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
32
|
-
/******/ (() => {
|
|
33
|
-
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
34
|
-
/******/ })();
|
|
35
|
-
/******/
|
|
36
|
-
/******/ /* webpack/runtime/make namespace object */
|
|
37
|
-
/******/ (() => {
|
|
38
|
-
/******/ // define __esModule on exports
|
|
39
|
-
/******/ __webpack_require__.r = (exports) => {
|
|
40
|
-
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
41
|
-
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
42
|
-
/******/ }
|
|
43
|
-
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
44
|
-
/******/ };
|
|
45
|
-
/******/ })();
|
|
46
|
-
/******/
|
|
47
|
-
/************************************************************************/
|
|
48
|
-
var __webpack_exports__ = {};
|
|
49
|
-
// ESM COMPAT FLAG
|
|
50
|
-
__webpack_require__.r(__webpack_exports__);
|
|
51
|
-
|
|
52
|
-
// EXPORTS
|
|
53
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
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)
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
;// CONCATENATED MODULE: external "lodash"
|
|
75
|
-
const external_lodash_namespaceObject = require("lodash");
|
|
76
|
-
var external_lodash_default = /*#__PURE__*/__webpack_require__.n(external_lodash_namespaceObject);
|
|
77
|
-
;// CONCATENATED MODULE: external "util"
|
|
78
|
-
const external_util_namespaceObject = require("util");
|
|
79
|
-
;// CONCATENATED MODULE: external "memoize-one"
|
|
80
|
-
const external_memoize_one_namespaceObject = require("memoize-one");
|
|
81
|
-
var external_memoize_one_default = /*#__PURE__*/__webpack_require__.n(external_memoize_one_namespaceObject);
|
|
82
|
-
;// CONCATENATED MODULE: ../helpers/utils/trace.ts
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const formatWithCustomInspectParams = values => {
|
|
86
|
-
return values.map(value => {
|
|
87
|
-
if (typeof value === "object") {
|
|
88
|
-
return util.inspect(value, {
|
|
89
|
-
showHidden: false,
|
|
90
|
-
depth: null,
|
|
91
|
-
maxArrayLength: null
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
return value;
|
|
95
|
-
}).join(" ");
|
|
96
|
-
};
|
|
97
|
-
function assert(condition) {
|
|
98
|
-
if (!condition) {
|
|
99
|
-
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
100
|
-
args[_key - 1] = arguments[_key];
|
|
101
|
-
}
|
|
102
|
-
const message = args.length > 0 ? formatWithCustomInspectParams(args) : `Assertion failed with no details`;
|
|
103
|
-
throw new Error(message);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
function assertWithTraceError(condition) {
|
|
107
|
-
if (!condition) {
|
|
108
|
-
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
109
|
-
args[_key2 - 1] = arguments[_key2];
|
|
110
|
-
}
|
|
111
|
-
const message = args.length > 0 ? formatWithCustomInspectParams(args) : `Assertion failed with no details`;
|
|
112
|
-
traceError(message);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// eslint-disable-next-line no-console
|
|
117
|
-
let traceErrorSubscribers = [console.error.bind(console)];
|
|
118
|
-
const overridden = false;
|
|
119
|
-
function subscribeOnTraceError(fn) {
|
|
120
|
-
if (overridden) {
|
|
121
|
-
throw new Error("can't subscribe while overridden");
|
|
122
|
-
}
|
|
123
|
-
traceErrorSubscribers.push(fn);
|
|
124
|
-
let unsubscribed = false;
|
|
125
|
-
return function unsubscribe() {
|
|
126
|
-
assert(!unsubscribed, "Can't unsubscribe more than once");
|
|
127
|
-
unsubscribed = true;
|
|
128
|
-
traceErrorSubscribers = traceErrorSubscribers.filter(x => x !== fn);
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
const traceError = external_memoize_one_default()(function traceError() {
|
|
132
|
-
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
133
|
-
args[_key3] = arguments[_key3];
|
|
134
|
-
}
|
|
135
|
-
traceErrorSubscribers.forEach(fn => {
|
|
136
|
-
fn(...args);
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
// eslint-disable-next-line no-console
|
|
141
|
-
let captureMessageSubscribers = [console.info.bind(console)];
|
|
142
|
-
function subscribeOnCaptureMessage(fn) {
|
|
143
|
-
captureMessageSubscribers.push(fn);
|
|
144
|
-
let unsubscribed = false;
|
|
145
|
-
return function unsubscribe() {
|
|
146
|
-
assert(!unsubscribed, "Can't unsubscribe more than once");
|
|
147
|
-
unsubscribed = true;
|
|
148
|
-
captureMessageSubscribers = captureMessageSubscribers.filter(x => x !== fn);
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
const captureMessage = external_memoize_one_default()(function captureMessage() {
|
|
152
|
-
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
153
|
-
args[_key4] = arguments[_key4];
|
|
154
|
-
}
|
|
155
|
-
captureMessageSubscribers.forEach(fn => {
|
|
156
|
-
fn(...args);
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
const tracedErrorTracker = {};
|
|
160
|
-
const traceErrorOncePerSession = (seed, err) => {
|
|
161
|
-
if (tracedErrorTracker[seed]) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
tracedErrorTracker[seed] = true;
|
|
165
|
-
const message = [seed, err].filter(Boolean).join(": ");
|
|
166
|
-
traceError(message);
|
|
167
|
-
};
|
|
168
|
-
const capturedMessageTracker = {};
|
|
169
|
-
const captureMessageOncePerSession = (seed, err) => {
|
|
170
|
-
if (capturedMessageTracker[seed]) {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
capturedMessageTracker[seed] = true;
|
|
174
|
-
const message = [seed, err].filter(Boolean).join(": ");
|
|
175
|
-
captureMessage(message);
|
|
176
|
-
};
|
|
177
|
-
function withErrorTrace(f) {
|
|
178
|
-
return async function () {
|
|
179
|
-
try {
|
|
180
|
-
return await f(...arguments);
|
|
181
|
-
} catch (err) {
|
|
182
|
-
traceError(err);
|
|
183
|
-
throw err;
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
;// CONCATENATED MODULE: ./src/utils.ts
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
const jestKey = new Set(["nodeType", "tagName", "hasAttribute"]);
|
|
193
|
-
|
|
194
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
195
|
-
const withOnlyDefinedGets = function (target) {
|
|
196
|
-
let targetKind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "object";
|
|
197
|
-
return new Proxy(target, {
|
|
198
|
-
get(target, key) {
|
|
199
|
-
if (!(key in target) && "production" !== "production") {}
|
|
200
|
-
return target[key];
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
};
|
|
204
|
-
const getNamePart = str => splitKeyword(str).name;
|
|
205
|
-
const capitalizeFirstChar = input => {
|
|
206
|
-
const str = input || "";
|
|
207
|
-
return str ? str.charAt(0).toUpperCase() + str.slice(1) : str;
|
|
208
|
-
};
|
|
209
|
-
const replaceTildes = str => (str || "").split("~").join(" ");
|
|
210
|
-
const toTypeOrFieldNamePartTitle = external_lodash_default().flow([capitalizeFirstChar, replaceTildes]);
|
|
211
|
-
const toTypeOrFieldTitle = external_lodash_default().flow([getNamePart, toTypeOrFieldNamePartTitle]);
|
|
212
|
-
const toPascalCase = function () {
|
|
213
|
-
let lispCasedString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
214
|
-
return lispCasedString && (external_lodash_default().last(lispCasedString.split("/")) || "").split("-").map((external_lodash_default()).capitalize).join(" ");
|
|
215
|
-
};
|
|
216
|
-
const isObsoleteTitle = str => {
|
|
217
|
-
const {
|
|
218
|
-
name
|
|
219
|
-
} = splitKeyword(str);
|
|
220
|
-
return name.toLowerCase() === name && !hasTildes(name);
|
|
221
|
-
};
|
|
222
|
-
const hasTildes = str => str.includes("~");
|
|
223
|
-
const toNonEnumTitle = str => {
|
|
224
|
-
return isObsoleteTitle(str) ? toPascalCase(str) : toTypeOrFieldTitle(str);
|
|
225
|
-
};
|
|
226
|
-
const parseEnumType = type => {
|
|
227
|
-
const [templateType, targetType] = type.split("_");
|
|
228
|
-
const {
|
|
229
|
-
name: templateName,
|
|
230
|
-
namespace: templateNamespace
|
|
231
|
-
} = parseType(templateType);
|
|
232
|
-
const {
|
|
233
|
-
name: targetName,
|
|
234
|
-
namespace: targetNamespace
|
|
235
|
-
} = parseType(targetType);
|
|
236
|
-
return {
|
|
237
|
-
templateName,
|
|
238
|
-
templateNamespace,
|
|
239
|
-
targetName,
|
|
240
|
-
targetNamespace
|
|
241
|
-
};
|
|
242
|
-
};
|
|
243
|
-
const toEnumTitle = type => {
|
|
244
|
-
// enum logic
|
|
245
|
-
const {
|
|
246
|
-
templateName,
|
|
247
|
-
targetName
|
|
248
|
-
} = parseEnumType(type);
|
|
249
|
-
return toTitle(targetName) + " " + toTitle(templateName);
|
|
250
|
-
};
|
|
251
|
-
const toTitle = typeOrAttr => {
|
|
252
|
-
const str = typeOrAttr || "";
|
|
253
|
-
return str.includes("_") ? toEnumTitle(str) : toNonEnumTitle(str);
|
|
254
|
-
};
|
|
255
|
-
const splitKeyword = keyword => {
|
|
256
|
-
const str = keyword || "";
|
|
257
|
-
const index = str.indexOf("/");
|
|
258
|
-
if (index === -1) {
|
|
259
|
-
return {
|
|
260
|
-
namespace: "",
|
|
261
|
-
name: str
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
const namespace = str.substring(0, index);
|
|
265
|
-
const name = str.substring(index + 1);
|
|
266
|
-
return {
|
|
267
|
-
namespace,
|
|
268
|
-
name
|
|
269
|
-
};
|
|
270
|
-
};
|
|
271
|
-
const parseType = external_lodash_default().memoize(type => {
|
|
272
|
-
if (!type.includes("/")) {
|
|
273
|
-
traceError(`parseType invalid usage: passed type is '${type}'`);
|
|
274
|
-
}
|
|
275
|
-
return splitKeyword(type);
|
|
276
|
-
});
|
|
277
|
-
const makeEnumTypeNamePart = _ref => {
|
|
278
|
-
let {
|
|
279
|
-
holderType,
|
|
280
|
-
enumName
|
|
281
|
-
} = _ref;
|
|
282
|
-
const {
|
|
283
|
-
namespace,
|
|
284
|
-
name
|
|
285
|
-
} = parseType(holderType);
|
|
286
|
-
return `${enumName}_${namespace}/${name}`;
|
|
287
|
-
};
|
|
288
|
-
const attachEnumNamespace = _ref2 => {
|
|
289
|
-
let {
|
|
290
|
-
enumNamespace,
|
|
291
|
-
typeNamePart
|
|
292
|
-
} = _ref2;
|
|
293
|
-
return `${enumNamespace}/${typeNamePart}`;
|
|
294
|
-
};
|
|
295
|
-
const removeDeletedTypesAndFields = rawSchema => {
|
|
296
|
-
const {
|
|
297
|
-
"fibery/types": rawTypeObjects,
|
|
298
|
-
...schemaRest
|
|
299
|
-
} = rawSchema;
|
|
300
|
-
const filteredRawTypeObjects = rawTypeObjects.filter(rawTypeObject => rawTypeObject["fibery/deleted?"] !== true).map(rawTypeObject => {
|
|
301
|
-
const {
|
|
302
|
-
"fibery/fields": rawFieldObjects,
|
|
303
|
-
...rawTypeObjectRest
|
|
304
|
-
} = rawTypeObject;
|
|
305
|
-
const filteredRawFieldObjects = rawFieldObjects.filter(rawFieldObject => rawFieldObject["fibery/deleted?"] !== true);
|
|
306
|
-
return {
|
|
307
|
-
...rawTypeObjectRest,
|
|
308
|
-
"fibery/fields": filteredRawFieldObjects
|
|
309
|
-
};
|
|
310
|
-
});
|
|
311
|
-
return {
|
|
312
|
-
...schemaRest,
|
|
313
|
-
"fibery/types": filteredRawTypeObjects
|
|
314
|
-
};
|
|
315
|
-
};
|
|
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 */
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
class FieldObject {
|
|
324
|
-
constructor(_ref) {
|
|
325
|
-
let {
|
|
326
|
-
rawFieldObject,
|
|
327
|
-
holderType,
|
|
328
|
-
resolveTypeObject,
|
|
329
|
-
version,
|
|
330
|
-
resolveMultiRelatedFieldObjects
|
|
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);
|
|
367
|
-
if (!external_lodash_default().isPlainObject(rawFieldObject)) {
|
|
368
|
-
throw new Error("rawFieldObject arg must be plain object");
|
|
369
|
-
}
|
|
370
|
-
if (!external_lodash_default().isString(holderType)) {
|
|
371
|
-
throw new Error("holderType arg must be string");
|
|
372
|
-
}
|
|
373
|
-
if (!external_lodash_default().isFunction(resolveTypeObject)) {
|
|
374
|
-
throw new Error("resolveTypeObject arg must be function");
|
|
375
|
-
}
|
|
376
|
-
if (!external_lodash_default().isFunction(resolveMultiRelatedFieldObjects)) {
|
|
377
|
-
throw new Error("resolveMultiRelationFieldObjects arg must be function");
|
|
378
|
-
}
|
|
379
|
-
this.name = rawFieldObject["fibery/name"];
|
|
380
|
-
this.description = rawFieldObject["fibery/description"] || null;
|
|
381
|
-
this.id = rawFieldObject["fibery/id"];
|
|
382
|
-
this.type = rawFieldObject["fibery/type"];
|
|
383
|
-
const rawMeta = rawFieldObject["fibery/meta"] || {};
|
|
384
|
-
this.rawMeta = rawMeta;
|
|
385
|
-
this.holderType = holderType;
|
|
386
|
-
this.isCollection = rawMeta["fibery/collection?"] || false;
|
|
387
|
-
this.isTitle = rawMeta["ui/title?"] || false;
|
|
388
|
-
this.isId = rawMeta["fibery/id?"] || false;
|
|
389
|
-
this.isPublicId = rawMeta["fibery/public-id?"] || false;
|
|
390
|
-
this.isReadOnly = rawMeta["fibery/readonly?"] || false;
|
|
391
|
-
this.isFormula = rawMeta["formula/formula?"] || false;
|
|
392
|
-
this.isFormulaDisabled = rawMeta["formula/disabled?"] || false;
|
|
393
|
-
this.formulaDisableReason = rawMeta["formula/disable-reason"] || null;
|
|
394
|
-
this.formula = rawMeta["formula/formula"] || null;
|
|
395
|
-
this.isLookup = rawMeta["formula/lookup?"] || false;
|
|
396
|
-
this.hasLinkRule = rawMeta["link-rule/link-rule?"] || false;
|
|
397
|
-
this.linkRule = rawMeta["link-rule/link-rule"] || null;
|
|
398
|
-
this.isLinkRuleDisabled = rawMeta["link-rule/disabled?"] || false;
|
|
399
|
-
this.linkRuleDisableReason = rawMeta["link-rule/disable-reason"] || null;
|
|
400
|
-
this.relation = rawMeta["fibery/relation"] || null;
|
|
401
|
-
this.defaultValue = rawMeta["fibery/default-value"] || null;
|
|
402
|
-
this.objectEditorOrder = rawMeta["ui/object-editor-order"] || 0;
|
|
403
|
-
this.isRequired = rawMeta["fibery/required?"] === true;
|
|
404
|
-
this.isHidden = rawMeta["ui/hidden?"] === true;
|
|
405
|
-
this.isDeleted = rawFieldObject["fibery/deleted?"] || false;
|
|
406
|
-
this.disableLinkExistingItems = rawMeta["ui/disable-link-existing-items"] || false;
|
|
407
|
-
this.version = version;
|
|
408
|
-
this.multiRelation = rawMeta["fibery/multi-relation"] || null;
|
|
409
|
-
Object.defineProperties(this, {
|
|
410
|
-
typeObject: {
|
|
411
|
-
configurable: false,
|
|
412
|
-
enumerable: true,
|
|
413
|
-
get: external_lodash_default().once(() => resolveTypeObject(this.type))
|
|
414
|
-
},
|
|
415
|
-
mixinTypeObject: {
|
|
416
|
-
configurable: false,
|
|
417
|
-
enumerable: true,
|
|
418
|
-
get: external_lodash_default().once(() => {
|
|
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");
|
|
422
|
-
})
|
|
423
|
-
},
|
|
424
|
-
holderTypeObject: {
|
|
425
|
-
configurable: false,
|
|
426
|
-
enumerable: true,
|
|
427
|
-
get: external_lodash_default().once(() => {
|
|
428
|
-
return resolveTypeObject(holderType);
|
|
429
|
-
})
|
|
430
|
-
},
|
|
431
|
-
nameParts: {
|
|
432
|
-
configurable: false,
|
|
433
|
-
enumerable: true,
|
|
434
|
-
get: external_lodash_default().once(() => parseType(rawFieldObject["fibery/name"]))
|
|
435
|
-
},
|
|
436
|
-
title: {
|
|
437
|
-
configurable: false,
|
|
438
|
-
enumerable: true,
|
|
439
|
-
get: external_lodash_default().once(() => toNonEnumTitle(rawFieldObject["fibery/name"]))
|
|
440
|
-
},
|
|
441
|
-
multiRelatedFieldObjects: {
|
|
442
|
-
configurable: false,
|
|
443
|
-
enumerable: true,
|
|
444
|
-
get: external_lodash_default().once(() => {
|
|
445
|
-
const {
|
|
446
|
-
multiRelation,
|
|
447
|
-
typeObject
|
|
448
|
-
} = this;
|
|
449
|
-
if (!multiRelation || !typeObject.isEntityRef) {
|
|
450
|
-
return [];
|
|
451
|
-
}
|
|
452
|
-
return resolveMultiRelatedFieldObjects(multiRelation);
|
|
453
|
-
})
|
|
454
|
-
}
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
get relatedFieldObject() {
|
|
458
|
-
const {
|
|
459
|
-
name,
|
|
460
|
-
relation,
|
|
461
|
-
multiRelation,
|
|
462
|
-
typeObject
|
|
463
|
-
} = this;
|
|
464
|
-
if (!relation && !multiRelation) {
|
|
465
|
-
return null;
|
|
466
|
-
}
|
|
467
|
-
if (!relation && multiRelation && typeObject.isEntityRef) {
|
|
468
|
-
return null;
|
|
469
|
-
}
|
|
470
|
-
let relationKey;
|
|
471
|
-
let relationId;
|
|
472
|
-
if (relation) {
|
|
473
|
-
relationKey = "relation";
|
|
474
|
-
relationId = relation;
|
|
475
|
-
} else {
|
|
476
|
-
relationId = multiRelation;
|
|
477
|
-
relationKey = "multiRelation";
|
|
478
|
-
}
|
|
479
|
-
const selector = this.type !== this.holderType ? fieldObject => fieldObject[relationKey] === relationId : fieldObject => fieldObject[relationKey] === relationId && fieldObject.name !== name;
|
|
480
|
-
const fieldObject = this.typeObject.fieldObjects.find(selector);
|
|
481
|
-
if (!fieldObject) {
|
|
482
|
-
throw new Error(`there no other end for ${relationKey} ${relationId}`);
|
|
483
|
-
}
|
|
484
|
-
return fieldObject;
|
|
485
|
-
}
|
|
486
|
-
get cardinality() {
|
|
487
|
-
const {
|
|
488
|
-
isCollection,
|
|
489
|
-
relatedFieldObject,
|
|
490
|
-
typeObject
|
|
491
|
-
} = this;
|
|
492
|
-
if (typeObject.isPrimitive) {
|
|
493
|
-
throw new Error("Only non-basic fields have cardinality");
|
|
494
|
-
}
|
|
495
|
-
if (isCollection && this.rawMeta["fibery/field-reversed-collection?"]) {
|
|
496
|
-
return ":cardinality/many-to-many";
|
|
497
|
-
}
|
|
498
|
-
if (!relatedFieldObject) {
|
|
499
|
-
return isCollection ? ":cardinality/one-to-many" : ":cardinality/many-to-one";
|
|
500
|
-
}
|
|
501
|
-
const isRelationCollection = relatedFieldObject.isCollection;
|
|
502
|
-
if (!isCollection && !isRelationCollection) {
|
|
503
|
-
return ":cardinality/one-to-one";
|
|
504
|
-
}
|
|
505
|
-
if (isCollection && !isRelationCollection) {
|
|
506
|
-
return ":cardinality/one-to-many";
|
|
507
|
-
}
|
|
508
|
-
if (!isCollection && isRelationCollection) {
|
|
509
|
-
return ":cardinality/many-to-one";
|
|
510
|
-
}
|
|
511
|
-
if (isCollection && isRelationCollection) {
|
|
512
|
-
return ":cardinality/many-to-many";
|
|
513
|
-
}
|
|
514
|
-
throw new Error("get cardinality invariant");
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
/** @deprecated use !typeObject.isPrimitive && cardinality === ... instead */
|
|
518
|
-
get kind() {
|
|
519
|
-
if (this.typeObject.isPrimitive) {
|
|
520
|
-
if (this.isCollection) {
|
|
521
|
-
throw new Error("basic collection is not implemented");
|
|
522
|
-
} else {
|
|
523
|
-
return ":field/basic";
|
|
524
|
-
}
|
|
525
|
-
} else {
|
|
526
|
-
if (this.isCollection) {
|
|
527
|
-
return ":field/reference-collection";
|
|
528
|
-
} else {
|
|
529
|
-
return ":field/reference";
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
|
-
}
|
|
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); }
|
|
538
|
-
|
|
539
|
-
class Schema {
|
|
540
|
-
constructor(_ref) {
|
|
541
|
-
let {
|
|
542
|
-
factory,
|
|
543
|
-
rawSchema: {
|
|
544
|
-
"fibery/id": id,
|
|
545
|
-
"fibery/types": rawTypeObjects,
|
|
546
|
-
"fibery/version": version
|
|
547
|
-
}
|
|
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);
|
|
554
|
-
if (!Array.isArray(rawTypeObjects)) {
|
|
555
|
-
throw new Error("rawTypeObjects arg must be array");
|
|
556
|
-
}
|
|
557
|
-
Object.defineProperties(this, {
|
|
558
|
-
toJSON: {
|
|
559
|
-
value: () => ({
|
|
560
|
-
"fibery/types": rawTypeObjects,
|
|
561
|
-
"fibery/meta": {
|
|
562
|
-
"fibery/version": version
|
|
563
|
-
}
|
|
564
|
-
}),
|
|
565
|
-
enumerable: false
|
|
566
|
-
}
|
|
567
|
-
});
|
|
568
|
-
const getTypeComponentTypeToFieldObject = external_lodash_default().once(() => {
|
|
569
|
-
const typeComponentTypeToFieldObject = new Map();
|
|
570
|
-
this.typeObjects.flatMap(typeObject => typeObject.fieldObjects).filter(fieldObject => {
|
|
571
|
-
return fieldObject.rawMeta["fibery/type-component?"] === true && fieldObject.typeObject.rawMeta["fibery/type-component?"] === true;
|
|
572
|
-
}).forEach(fieldObject => {
|
|
573
|
-
typeComponentTypeToFieldObject.set(fieldObject.type, fieldObject);
|
|
574
|
-
});
|
|
575
|
-
return typeComponentTypeToFieldObject;
|
|
576
|
-
});
|
|
577
|
-
let multiRelatedFieldsObjectsMap;
|
|
578
|
-
const initMultiRelatedFieldsObjectsMap = () => {
|
|
579
|
-
multiRelatedFieldsObjectsMap = new Map();
|
|
580
|
-
this.typeObjects.forEach(typeObject => {
|
|
581
|
-
typeObject.fieldObjects.forEach(fieldObject => {
|
|
582
|
-
if (fieldObject.multiRelation && !fieldObject.typeObject.isEntityRef) {
|
|
583
|
-
const store = multiRelatedFieldsObjectsMap.get(fieldObject.multiRelation) || [];
|
|
584
|
-
store.push(fieldObject);
|
|
585
|
-
multiRelatedFieldsObjectsMap.set(fieldObject.multiRelation, store);
|
|
586
|
-
}
|
|
587
|
-
});
|
|
588
|
-
});
|
|
589
|
-
};
|
|
590
|
-
this.typeObjects = rawTypeObjects.map(rawTypeObject => factory.makeTypeObject({
|
|
591
|
-
rawTypeObject,
|
|
592
|
-
resolveTypeObject: type => this.typeObjectsByName[type] || null,
|
|
593
|
-
getTypeComponentTypeToFieldObject: type => getTypeComponentTypeToFieldObject().get(type),
|
|
594
|
-
resolveMultiRelatedFieldObjects: multiRelation => {
|
|
595
|
-
if (!multiRelatedFieldsObjectsMap) {
|
|
596
|
-
initMultiRelatedFieldsObjectsMap();
|
|
597
|
-
}
|
|
598
|
-
return multiRelatedFieldsObjectsMap.get(multiRelation) || [];
|
|
599
|
-
},
|
|
600
|
-
version
|
|
601
|
-
}));
|
|
602
|
-
this.typeObjectsById = factory.makeTypeObjectsById(this.typeObjects);
|
|
603
|
-
this.typeObjectsByName = factory.makeTypeObjectsByName(this.typeObjects);
|
|
604
|
-
this.id = id;
|
|
605
|
-
this.version = version;
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
;// CONCATENATED MODULE: external "pluralize"
|
|
609
|
-
const external_pluralize_namespaceObject = require("pluralize");
|
|
610
|
-
var external_pluralize_default = /*#__PURE__*/__webpack_require__.n(external_pluralize_namespaceObject);
|
|
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 */
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
class TypeObject {
|
|
620
|
-
constructor(_ref) {
|
|
621
|
-
let {
|
|
622
|
-
rawTypeObject,
|
|
623
|
-
resolveTypeObject,
|
|
624
|
-
getTypeComponentTypeToFieldObject,
|
|
625
|
-
version,
|
|
626
|
-
factory,
|
|
627
|
-
resolveMultiRelatedFieldObjects
|
|
628
|
-
} = _ref;
|
|
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(() => {
|
|
657
|
-
const hasRank = this.installedMixins.has("fibery/rank-mixin");
|
|
658
|
-
return this.fieldObjects.reduce((result, fieldObject) => {
|
|
659
|
-
if (fieldObject.isId) {
|
|
660
|
-
result.idField = fieldObject.name;
|
|
661
|
-
result.idFieldObject = fieldObject;
|
|
662
|
-
} else if (fieldObject.isPublicId) {
|
|
663
|
-
result.publicIdField = fieldObject.name;
|
|
664
|
-
result.publicIdFieldObject = fieldObject;
|
|
665
|
-
} else if (fieldObject.isTitle) {
|
|
666
|
-
result.titleField = fieldObject.name;
|
|
667
|
-
result.titleFieldObject = fieldObject;
|
|
668
|
-
} else if (hasRank && fieldObject.name === "fibery/rank") {
|
|
669
|
-
result.rankField = fieldObject.name;
|
|
670
|
-
result.rankFieldObject = fieldObject;
|
|
671
|
-
}
|
|
672
|
-
return result;
|
|
673
|
-
}, {
|
|
674
|
-
idField: null,
|
|
675
|
-
idFieldObject: null,
|
|
676
|
-
publicIdField: null,
|
|
677
|
-
publicIdFieldObject: null,
|
|
678
|
-
titleField: null,
|
|
679
|
-
titleFieldObject: null,
|
|
680
|
-
rankField: null,
|
|
681
|
-
rankFieldObject: null
|
|
682
|
-
});
|
|
683
|
-
}));
|
|
684
|
-
if (!external_lodash_default().isPlainObject(rawTypeObject)) {
|
|
685
|
-
throw new Error("rawTypeObject arg must be plain object");
|
|
686
|
-
}
|
|
687
|
-
if (!external_lodash_default().isFunction(resolveTypeObject)) {
|
|
688
|
-
throw new Error("resolveTypeObject arg must be function");
|
|
689
|
-
}
|
|
690
|
-
this.name = rawTypeObject["fibery/name"];
|
|
691
|
-
this.description = rawTypeObject["fibery/description"] || null;
|
|
692
|
-
this.id = rawTypeObject["fibery/id"];
|
|
693
|
-
const rawMeta = rawTypeObject["fibery/meta"] || {};
|
|
694
|
-
this.rawMeta = rawMeta;
|
|
695
|
-
this.isDomain = rawMeta["fibery/domain?"] || false;
|
|
696
|
-
this.isPlatform = rawMeta["fibery/platform?"] || false;
|
|
697
|
-
this.isHighlight = rawMeta["fibery/highlight?"] || false;
|
|
698
|
-
this.isMixin = rawMeta["app/mixin?"] || false;
|
|
699
|
-
this.mixinIcon = rawMeta["ui/mixin-icon"] || null;
|
|
700
|
-
this.isEnum = rawMeta["fibery/enum?"] || false;
|
|
701
|
-
this.isPrimitive = rawMeta["fibery/primitive?"] || false;
|
|
702
|
-
this.isWriterModeByDefault = rawMeta["ui/writer-mode?"] || false;
|
|
703
|
-
this.isDeleted = rawTypeObject["fibery/deleted?"] || false;
|
|
704
|
-
this.nameParts = parseType(this.name);
|
|
705
|
-
this.color = rawMeta["ui/color"] || "#4568FB";
|
|
706
|
-
this.units = rawMeta["ui/units"] || null;
|
|
707
|
-
this.installedMixins = new Set(Object.keys(rawMeta["app/mixins"] || {}));
|
|
708
|
-
this.syncSource = rawMeta["sync/source"] || null;
|
|
709
|
-
this.version = version;
|
|
710
|
-
this.isEntityRef = rawTypeObject["fibery/name"] === "fibery/entity-ref";
|
|
711
|
-
const fieldObjectsByNameOnceGetter = external_lodash_default().once(() => {
|
|
712
|
-
return factory.makeFieldObjectsByName({
|
|
713
|
-
type: this.name,
|
|
714
|
-
fieldObjects: this.fieldObjects
|
|
715
|
-
});
|
|
716
|
-
});
|
|
717
|
-
const fieldObjectsGetter = external_lodash_default().once(() => rawTypeObject["fibery/fields"].map(rawFieldObject => {
|
|
718
|
-
return factory.makeFieldObject({
|
|
719
|
-
rawFieldObject,
|
|
720
|
-
holderType: this.name,
|
|
721
|
-
resolveTypeObject,
|
|
722
|
-
version,
|
|
723
|
-
resolveMultiRelatedFieldObjects
|
|
724
|
-
});
|
|
725
|
-
}));
|
|
726
|
-
Object.defineProperties(this, {
|
|
727
|
-
toJSON: {
|
|
728
|
-
value() {
|
|
729
|
-
if (false) {}
|
|
730
|
-
return rawTypeObject;
|
|
731
|
-
},
|
|
732
|
-
enumerable: false
|
|
733
|
-
},
|
|
734
|
-
fieldObjects: {
|
|
735
|
-
configurable: false,
|
|
736
|
-
enumerable: true,
|
|
737
|
-
get: fieldObjectsGetter
|
|
738
|
-
},
|
|
739
|
-
typeComponentFieldObject: {
|
|
740
|
-
configurable: false,
|
|
741
|
-
enumerable: true,
|
|
742
|
-
get: () => {
|
|
743
|
-
return getTypeComponentTypeToFieldObject(this.name);
|
|
744
|
-
}
|
|
745
|
-
},
|
|
746
|
-
fieldObjectsById: {
|
|
747
|
-
configurable: false,
|
|
748
|
-
enumerable: true,
|
|
749
|
-
get: external_lodash_default().once(() => {
|
|
750
|
-
return factory.makeFieldObjectsById({
|
|
751
|
-
type: this.name,
|
|
752
|
-
fieldObjects: this.fieldObjects
|
|
753
|
-
});
|
|
754
|
-
})
|
|
755
|
-
},
|
|
756
|
-
fieldObjectsByName: {
|
|
757
|
-
configurable: false,
|
|
758
|
-
enumerable: true,
|
|
759
|
-
get: fieldObjectsByNameOnceGetter
|
|
760
|
-
},
|
|
761
|
-
installedMixinTypeObjects: {
|
|
762
|
-
configurable: false,
|
|
763
|
-
enumerable: true,
|
|
764
|
-
get: external_lodash_default().once(() => [...this.installedMixins].map(resolveTypeObject).filter(typeObject => typeObject))
|
|
765
|
-
},
|
|
766
|
-
title: {
|
|
767
|
-
configurable: false,
|
|
768
|
-
enumerable: true,
|
|
769
|
-
get: external_lodash_default().once(() => toTitle(this.name))
|
|
770
|
-
},
|
|
771
|
-
pluralTitle: {
|
|
772
|
-
configurable: false,
|
|
773
|
-
enumerable: true,
|
|
774
|
-
get: external_lodash_default().once(() => toTitle(external_pluralize_default().plural(this.name)))
|
|
775
|
-
}
|
|
776
|
-
});
|
|
777
|
-
}
|
|
778
|
-
get idField() {
|
|
779
|
-
return this._getFieldObjectShortcuts().idField;
|
|
780
|
-
}
|
|
781
|
-
get idFieldObject() {
|
|
782
|
-
return this._getFieldObjectShortcuts().idFieldObject;
|
|
783
|
-
}
|
|
784
|
-
get publicIdField() {
|
|
785
|
-
return this._getFieldObjectShortcuts().publicIdField;
|
|
786
|
-
}
|
|
787
|
-
get publicIdFieldObject() {
|
|
788
|
-
return this._getFieldObjectShortcuts().publicIdFieldObject;
|
|
789
|
-
}
|
|
790
|
-
get titleField() {
|
|
791
|
-
return this._getFieldObjectShortcuts().titleField;
|
|
792
|
-
}
|
|
793
|
-
get titleFieldObject() {
|
|
794
|
-
return this._getFieldObjectShortcuts().titleFieldObject;
|
|
795
|
-
}
|
|
796
|
-
get rankField() {
|
|
797
|
-
return this._getFieldObjectShortcuts().rankField;
|
|
798
|
-
}
|
|
799
|
-
get rankFieldObject() {
|
|
800
|
-
return this._getFieldObjectShortcuts().rankFieldObject;
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
|
-
;// CONCATENATED MODULE: ./src/factory.ts
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
const factory = {
|
|
810
|
-
makeSchema: function (rawSchema) {
|
|
811
|
-
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
812
|
-
shouldRemoveDeletedTypesAndFields: true
|
|
813
|
-
};
|
|
814
|
-
return new Schema({
|
|
815
|
-
rawSchema: options.shouldRemoveDeletedTypesAndFields ? removeDeletedTypesAndFields(rawSchema) : rawSchema,
|
|
816
|
-
factory
|
|
817
|
-
});
|
|
818
|
-
},
|
|
819
|
-
makeTypeObject: args => new TypeObject({
|
|
820
|
-
...args,
|
|
821
|
-
factory
|
|
822
|
-
}),
|
|
823
|
-
makeTypeObjectsById: typeObjects => external_lodash_default().keyBy(typeObjects, x => x.id),
|
|
824
|
-
makeTypeObjectsByName: typeObjects => external_lodash_default().keyBy(typeObjects, x => x.name),
|
|
825
|
-
makeFieldObject: args => new FieldObject(args),
|
|
826
|
-
makeFieldObjectsById: _ref => {
|
|
827
|
-
let {
|
|
828
|
-
fieldObjects
|
|
829
|
-
} = _ref;
|
|
830
|
-
return external_lodash_default().keyBy(fieldObjects, x => x.id);
|
|
831
|
-
},
|
|
832
|
-
makeFieldObjectsByName: _ref2 => {
|
|
833
|
-
let {
|
|
834
|
-
fieldObjects
|
|
835
|
-
} = _ref2;
|
|
836
|
-
return external_lodash_default().keyBy(fieldObjects, x => x.name);
|
|
837
|
-
}
|
|
838
|
-
};
|
|
839
|
-
const protectiveFactory = {
|
|
840
|
-
makeSchema: function (rawSchema) {
|
|
841
|
-
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
842
|
-
shouldRemoveDeletedTypesAndFields: true
|
|
843
|
-
};
|
|
844
|
-
return withOnlyDefinedGets(new Schema({
|
|
845
|
-
rawSchema: options.shouldRemoveDeletedTypesAndFields ? removeDeletedTypesAndFields(rawSchema) : rawSchema,
|
|
846
|
-
factory: protectiveFactory
|
|
847
|
-
}), `schema`);
|
|
848
|
-
},
|
|
849
|
-
makeTypeObject: args => {
|
|
850
|
-
const typeObject = new TypeObject({
|
|
851
|
-
...args,
|
|
852
|
-
factory: protectiveFactory
|
|
853
|
-
});
|
|
854
|
-
return withOnlyDefinedGets(typeObject, `schema.typeObjectsByName["${typeObject.name}"]`);
|
|
855
|
-
},
|
|
856
|
-
makeTypeObjectsById: typeObjects => withOnlyDefinedGets(external_lodash_default().keyBy(typeObjects, x => x.id), "schema.typeObjectsById"),
|
|
857
|
-
makeTypeObjectsByName: typeObjects => withOnlyDefinedGets(external_lodash_default().keyBy(typeObjects, x => x.name), "schema.typeObjectsByName"),
|
|
858
|
-
makeFieldObject: args => {
|
|
859
|
-
const fieldObject = new FieldObject(args);
|
|
860
|
-
return withOnlyDefinedGets(fieldObject, `schema.typeObjectsByName["${fieldObject.holderType}"].fieldObjectsByName["${fieldObject.name}"]`);
|
|
861
|
-
},
|
|
862
|
-
makeFieldObjectsById: _ref3 => {
|
|
863
|
-
let {
|
|
864
|
-
type,
|
|
865
|
-
fieldObjects
|
|
866
|
-
} = _ref3;
|
|
867
|
-
return withOnlyDefinedGets(external_lodash_default().keyBy(fieldObjects, x => x.id), `schema.typeObjectsByName["${type}"].fieldObjectsById`);
|
|
868
|
-
},
|
|
869
|
-
makeFieldObjectsByName: _ref4 => {
|
|
870
|
-
let {
|
|
871
|
-
type,
|
|
872
|
-
fieldObjects
|
|
873
|
-
} = _ref4;
|
|
874
|
-
return withOnlyDefinedGets(external_lodash_default().keyBy(fieldObjects, x => x.name), `schema.typeObjectsByName["${type}"].fieldObjectsByName`);
|
|
875
|
-
}
|
|
876
|
-
};
|
|
877
|
-
;// CONCATENATED MODULE: ./src/errors.ts
|
|
878
|
-
class NotDefinedGetError extends Error {}
|
|
879
|
-
;// CONCATENATED MODULE: ./index.ts
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
module.exports = __webpack_exports__;
|
|
887
|
-
/******/ })()
|
|
888
|
-
;
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./src/factory"), exports);
|
|
18
|
+
__exportStar(require("./src/schema"), exports);
|
|
19
|
+
__exportStar(require("./src/type-object"), exports);
|
|
20
|
+
__exportStar(require("./src/field-object"), exports);
|
|
21
|
+
__exportStar(require("./src/utils"), exports);
|
|
22
|
+
__exportStar(require("./src/errors"), exports);
|