@akanjs/constant 0.0.102 → 0.0.103
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.js +17 -1
- package/index.mjs +1 -0
- package/package.json +4 -4
- package/src/baseGql.js +62 -52
- package/src/baseGql.mjs +154 -0
- package/src/classMeta.js +50 -31
- package/src/{classMeta.cjs → classMeta.mjs} +31 -50
- package/src/constantDecorator.js +24 -5
- package/src/constantDecorator.mjs +21 -0
- package/src/fieldMeta.js +32 -17
- package/src/fieldMeta.mjs +67 -0
- package/src/filterMeta.js +39 -24
- package/src/{filterMeta.cjs → filterMeta.mjs} +24 -39
- package/src/index.js +23 -7
- package/src/index.mjs +7 -0
- package/src/scalar.js +45 -34
- package/src/scalar.mjs +76 -0
- package/src/types.js +23 -4
- package/src/types.mjs +10 -0
- package/index.cjs +0 -17
- package/src/baseGql.cjs +0 -164
- package/src/constantDecorator.cjs +0 -40
- package/src/fieldMeta.cjs +0 -82
- package/src/index.cjs +0 -23
- package/src/scalar.cjs +0 -87
- package/src/types.cjs +0 -29
package/index.js
CHANGED
|
@@ -1 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var constant_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(constant_exports);
|
|
17
|
+
__reExport(constant_exports, require("./src"), module.exports);
|
package/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./src";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akanjs/constant",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"type": "
|
|
3
|
+
"version": "0.0.103",
|
|
4
|
+
"type": "commonjs",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
},
|
|
20
20
|
"exports": {
|
|
21
21
|
".": {
|
|
22
|
-
"require": "./index.
|
|
23
|
-
"import": "./index.
|
|
22
|
+
"require": "./index.js",
|
|
23
|
+
"import": "./index.mjs"
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"esbuild": {
|
package/src/baseGql.js
CHANGED
|
@@ -1,17 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from2, except, desc) => {
|
|
10
|
+
if (from2 && typeof from2 === "object" || typeof from2 === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from2))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var baseGql_exports = {};
|
|
19
|
+
__export(baseGql_exports, {
|
|
20
|
+
as: () => as,
|
|
21
|
+
from: () => from,
|
|
22
|
+
mixModelOf: () => mixModelOf,
|
|
23
|
+
over: () => over,
|
|
24
|
+
via: () => via
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(baseGql_exports);
|
|
27
|
+
var import_reflect_metadata = require("reflect-metadata");
|
|
28
|
+
var import_base = require("@akanjs/base");
|
|
29
|
+
var import_common = require("@akanjs/common");
|
|
30
|
+
var import_filterMeta = require("./filterMeta");
|
|
31
|
+
var import_scalar = require("./scalar");
|
|
15
32
|
const defaultFieldMeta = {
|
|
16
33
|
fieldType: "property",
|
|
17
34
|
immutable: false,
|
|
@@ -25,7 +42,7 @@ const defaultFieldMeta = {
|
|
|
25
42
|
default: null,
|
|
26
43
|
isMap: false
|
|
27
44
|
};
|
|
28
|
-
const idFieldMeta = { ...defaultFieldMeta, key: "id", name: "ID", modelRef: ID };
|
|
45
|
+
const idFieldMeta = { ...defaultFieldMeta, key: "id", name: "ID", modelRef: import_base.ID };
|
|
29
46
|
const createdAtFieldMeta = { ...defaultFieldMeta, key: "createdAt", name: "Date", modelRef: Date };
|
|
30
47
|
const updatedAtFieldMeta = { ...defaultFieldMeta, key: "updatedAt", name: "Date", modelRef: Date };
|
|
31
48
|
const removedAtFieldMeta = {
|
|
@@ -39,8 +56,8 @@ const removedAtFieldMeta = {
|
|
|
39
56
|
const extendModel = (modelRef) => {
|
|
40
57
|
class BaseModel {
|
|
41
58
|
}
|
|
42
|
-
const metadataMap = getFieldMetaMap(modelRef);
|
|
43
|
-
setFieldMetaMap(BaseModel, metadataMap);
|
|
59
|
+
const metadataMap = (0, import_scalar.getFieldMetaMap)(modelRef);
|
|
60
|
+
(0, import_scalar.setFieldMetaMap)(BaseModel, metadataMap);
|
|
44
61
|
return BaseModel;
|
|
45
62
|
};
|
|
46
63
|
const as = extendModel;
|
|
@@ -48,7 +65,7 @@ const baseModelOf = (modelRef) => {
|
|
|
48
65
|
class BaseModel {
|
|
49
66
|
__ModelType__ = "full";
|
|
50
67
|
}
|
|
51
|
-
const metadataMap = getFieldMetaMap(modelRef);
|
|
68
|
+
const metadataMap = (0, import_scalar.getFieldMetaMap)(modelRef);
|
|
52
69
|
metadataMap.set("id", idFieldMeta);
|
|
53
70
|
metadataMap.set("createdAt", createdAtFieldMeta);
|
|
54
71
|
metadataMap.set("updatedAt", updatedAtFieldMeta);
|
|
@@ -58,7 +75,7 @@ const baseModelOf = (modelRef) => {
|
|
|
58
75
|
};
|
|
59
76
|
const lightModelOf = (objectRef, fields) => {
|
|
60
77
|
const map = /* @__PURE__ */ new Map();
|
|
61
|
-
const metadataMap = getFieldMetaMap(objectRef);
|
|
78
|
+
const metadataMap = (0, import_scalar.getFieldMetaMap)(objectRef);
|
|
62
79
|
class BaseGql {
|
|
63
80
|
__ModelType__ = "light";
|
|
64
81
|
}
|
|
@@ -67,18 +84,18 @@ const lightModelOf = (objectRef, fields) => {
|
|
|
67
84
|
return BaseGql;
|
|
68
85
|
};
|
|
69
86
|
const fullModelOf = (modelRef, lightRef, overwriteRef, overwriteLightRef) => {
|
|
70
|
-
const modelFieldMetaMap = getFieldMetaMap(modelRef);
|
|
71
|
-
const lightFieldMetaMap = getFieldMetaMap(lightRef);
|
|
72
|
-
applyMixins(modelRef, [lightRef]);
|
|
87
|
+
const modelFieldMetaMap = (0, import_scalar.getFieldMetaMap)(modelRef);
|
|
88
|
+
const lightFieldMetaMap = (0, import_scalar.getFieldMetaMap)(lightRef);
|
|
89
|
+
(0, import_common.applyMixins)(modelRef, [lightRef]);
|
|
73
90
|
if (overwriteRef) {
|
|
74
|
-
applyMixins(overwriteRef, [modelRef]);
|
|
75
|
-
setFieldMetaMap(overwriteRef, modelFieldMetaMap);
|
|
91
|
+
(0, import_common.applyMixins)(overwriteRef, [modelRef]);
|
|
92
|
+
(0, import_scalar.setFieldMetaMap)(overwriteRef, modelFieldMetaMap);
|
|
76
93
|
}
|
|
77
94
|
if (overwriteLightRef) {
|
|
78
|
-
applyMixins(overwriteLightRef, [lightRef]);
|
|
79
|
-
setFieldMetaMap(overwriteLightRef, lightFieldMetaMap);
|
|
95
|
+
(0, import_common.applyMixins)(overwriteLightRef, [lightRef]);
|
|
96
|
+
(0, import_scalar.setFieldMetaMap)(overwriteLightRef, lightFieldMetaMap);
|
|
80
97
|
}
|
|
81
|
-
setFieldMetaMap(modelRef, new Map([...modelFieldMetaMap, ...lightFieldMetaMap]));
|
|
98
|
+
(0, import_scalar.setFieldMetaMap)(modelRef, new Map([...modelFieldMetaMap, ...lightFieldMetaMap]));
|
|
82
99
|
return modelRef;
|
|
83
100
|
};
|
|
84
101
|
const via = (modelRef, fieldsOrLightModelRef, overwriteRef, overwriteLightRef) => {
|
|
@@ -90,43 +107,43 @@ const via = (modelRef, fieldsOrLightModelRef, overwriteRef, overwriteLightRef) =
|
|
|
90
107
|
return fullModelOf(modelRef, fieldsOrLightModelRef, overwriteRef, overwriteLightRef);
|
|
91
108
|
};
|
|
92
109
|
const addModelOf = (modelRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) => {
|
|
93
|
-
const modelMetadataMap = getFieldMetaMap(modelRef);
|
|
110
|
+
const modelMetadataMap = (0, import_scalar.getFieldMetaMap)(modelRef);
|
|
94
111
|
const metadataMap = new Map(
|
|
95
112
|
[t1, t2, t3, t4, t5, t6, t7, t8, t9, t10].filter((t) => !!t).reduce((acc, writeRef) => {
|
|
96
|
-
const writeMetadataMap = getFieldMetaMap(writeRef);
|
|
97
|
-
applyMixins(modelRef, [writeRef]);
|
|
113
|
+
const writeMetadataMap = (0, import_scalar.getFieldMetaMap)(writeRef);
|
|
114
|
+
(0, import_common.applyMixins)(modelRef, [writeRef]);
|
|
98
115
|
return new Map([...acc, ...writeMetadataMap]);
|
|
99
116
|
}, modelMetadataMap)
|
|
100
117
|
);
|
|
101
|
-
setFieldMetaMap(modelRef, metadataMap);
|
|
118
|
+
(0, import_scalar.setFieldMetaMap)(modelRef, metadataMap);
|
|
102
119
|
return modelRef;
|
|
103
120
|
};
|
|
104
121
|
const addFilterOf = (filterRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) => {
|
|
105
|
-
const filterMeta = getFilterMeta(filterRef);
|
|
106
|
-
const filterQueryMap = getFilterQueryMap(filterRef);
|
|
122
|
+
const filterMeta = (0, import_filterMeta.getFilterMeta)(filterRef);
|
|
123
|
+
const filterQueryMap = (0, import_filterMeta.getFilterQueryMap)(filterRef);
|
|
107
124
|
const metadataMap = new Map(
|
|
108
125
|
[t1, t2, t3, t4, t5, t6, t7, t8, t9, t10].filter((t) => !!t).reduce((acc, writeRef) => {
|
|
109
|
-
const writeMetadataMap = getFilterQueryMap(writeRef);
|
|
110
|
-
applyMixins(filterRef, [writeRef]);
|
|
126
|
+
const writeMetadataMap = (0, import_filterMeta.getFilterQueryMap)(writeRef);
|
|
127
|
+
(0, import_common.applyMixins)(filterRef, [writeRef]);
|
|
111
128
|
writeMetadataMap.forEach((value, key) => {
|
|
112
|
-
const filterArgMetas = getFilterArgMetas(writeRef, key);
|
|
113
|
-
setFilterArgMetasOnPrototype(filterRef.prototype, key, filterArgMetas);
|
|
129
|
+
const filterArgMetas = (0, import_filterMeta.getFilterArgMetas)(writeRef, key);
|
|
130
|
+
(0, import_filterMeta.setFilterArgMetasOnPrototype)(filterRef.prototype, key, filterArgMetas);
|
|
114
131
|
});
|
|
115
132
|
return new Map([...acc, ...writeMetadataMap]);
|
|
116
133
|
}, filterQueryMap)
|
|
117
134
|
);
|
|
118
|
-
const filterSort = [t1, t2, t3, t4, t5, t6, t7, t8, t9, t10].filter((t) => !!t).map((t) => getFilterSortMap(t)).reduce((acc, sort) => {
|
|
135
|
+
const filterSort = [t1, t2, t3, t4, t5, t6, t7, t8, t9, t10].filter((t) => !!t).map((t) => (0, import_filterMeta.getFilterSortMap)(t)).reduce((acc, sort) => {
|
|
119
136
|
Object.assign(acc, sort);
|
|
120
137
|
return acc;
|
|
121
138
|
}, filterMeta.sort);
|
|
122
|
-
setFilterKeyMetaMapOnPrototype(filterRef.prototype, metadataMap);
|
|
123
|
-
setFilterMeta(filterRef, { ...filterMeta, sort: filterSort });
|
|
139
|
+
(0, import_filterMeta.setFilterKeyMetaMapOnPrototype)(filterRef.prototype, metadataMap);
|
|
140
|
+
(0, import_filterMeta.setFilterMeta)(filterRef, { ...filterMeta, sort: filterSort });
|
|
124
141
|
return filterRef;
|
|
125
142
|
};
|
|
126
143
|
const from = (modelRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) => {
|
|
127
|
-
if (isConstantModel(modelRef))
|
|
144
|
+
if ((0, import_scalar.isConstantModel)(modelRef))
|
|
128
145
|
return addModelOf(modelRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
|
|
129
|
-
else if (isFilterModel(modelRef))
|
|
146
|
+
else if ((0, import_filterMeta.isFilterModel)(modelRef))
|
|
130
147
|
return addFilterOf(modelRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
|
|
131
148
|
else
|
|
132
149
|
throw new Error("Invalid modelRef");
|
|
@@ -136,19 +153,12 @@ const mixModelOf = (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14,
|
|
|
136
153
|
}
|
|
137
154
|
const metadataMap = new Map(
|
|
138
155
|
[t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20].filter((t) => !!t).reduce((acc, modelRef) => {
|
|
139
|
-
const modelMetadataMap = getFieldMetaMap(modelRef);
|
|
140
|
-
applyMixins(Mix, [modelRef]);
|
|
156
|
+
const modelMetadataMap = (0, import_scalar.getFieldMetaMap)(modelRef);
|
|
157
|
+
(0, import_common.applyMixins)(Mix, [modelRef]);
|
|
141
158
|
return [...acc, ...modelMetadataMap];
|
|
142
159
|
}, [])
|
|
143
160
|
);
|
|
144
|
-
setFieldMetaMap(Mix, metadataMap);
|
|
161
|
+
(0, import_scalar.setFieldMetaMap)(Mix, metadataMap);
|
|
145
162
|
return Mix;
|
|
146
163
|
};
|
|
147
164
|
const over = mixModelOf;
|
|
148
|
-
export {
|
|
149
|
-
as,
|
|
150
|
-
from,
|
|
151
|
-
mixModelOf,
|
|
152
|
-
over,
|
|
153
|
-
via
|
|
154
|
-
};
|
package/src/baseGql.mjs
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { ID } from "@akanjs/base";
|
|
3
|
+
import { applyMixins } from "@akanjs/common";
|
|
4
|
+
import {
|
|
5
|
+
getFilterArgMetas,
|
|
6
|
+
getFilterMeta,
|
|
7
|
+
getFilterQueryMap,
|
|
8
|
+
getFilterSortMap,
|
|
9
|
+
isFilterModel,
|
|
10
|
+
setFilterArgMetasOnPrototype,
|
|
11
|
+
setFilterKeyMetaMapOnPrototype,
|
|
12
|
+
setFilterMeta
|
|
13
|
+
} from "./filterMeta";
|
|
14
|
+
import { getFieldMetaMap, isConstantModel, setFieldMetaMap } from "./scalar";
|
|
15
|
+
const defaultFieldMeta = {
|
|
16
|
+
fieldType: "property",
|
|
17
|
+
immutable: false,
|
|
18
|
+
select: true,
|
|
19
|
+
isClass: false,
|
|
20
|
+
isScalar: true,
|
|
21
|
+
nullable: false,
|
|
22
|
+
isArray: false,
|
|
23
|
+
arrDepth: 0,
|
|
24
|
+
optArrDepth: 0,
|
|
25
|
+
default: null,
|
|
26
|
+
isMap: false
|
|
27
|
+
};
|
|
28
|
+
const idFieldMeta = { ...defaultFieldMeta, key: "id", name: "ID", modelRef: ID };
|
|
29
|
+
const createdAtFieldMeta = { ...defaultFieldMeta, key: "createdAt", name: "Date", modelRef: Date };
|
|
30
|
+
const updatedAtFieldMeta = { ...defaultFieldMeta, key: "updatedAt", name: "Date", modelRef: Date };
|
|
31
|
+
const removedAtFieldMeta = {
|
|
32
|
+
...defaultFieldMeta,
|
|
33
|
+
key: "removedAt",
|
|
34
|
+
name: "Date",
|
|
35
|
+
modelRef: Date,
|
|
36
|
+
nullable: true,
|
|
37
|
+
default: null
|
|
38
|
+
};
|
|
39
|
+
const extendModel = (modelRef) => {
|
|
40
|
+
class BaseModel {
|
|
41
|
+
}
|
|
42
|
+
const metadataMap = getFieldMetaMap(modelRef);
|
|
43
|
+
setFieldMetaMap(BaseModel, metadataMap);
|
|
44
|
+
return BaseModel;
|
|
45
|
+
};
|
|
46
|
+
const as = extendModel;
|
|
47
|
+
const baseModelOf = (modelRef) => {
|
|
48
|
+
class BaseModel {
|
|
49
|
+
__ModelType__ = "full";
|
|
50
|
+
}
|
|
51
|
+
const metadataMap = getFieldMetaMap(modelRef);
|
|
52
|
+
metadataMap.set("id", idFieldMeta);
|
|
53
|
+
metadataMap.set("createdAt", createdAtFieldMeta);
|
|
54
|
+
metadataMap.set("updatedAt", updatedAtFieldMeta);
|
|
55
|
+
metadataMap.set("removedAt", removedAtFieldMeta);
|
|
56
|
+
Reflect.defineMetadata("fields", metadataMap, BaseModel.prototype);
|
|
57
|
+
return BaseModel;
|
|
58
|
+
};
|
|
59
|
+
const lightModelOf = (objectRef, fields) => {
|
|
60
|
+
const map = /* @__PURE__ */ new Map();
|
|
61
|
+
const metadataMap = getFieldMetaMap(objectRef);
|
|
62
|
+
class BaseGql {
|
|
63
|
+
__ModelType__ = "light";
|
|
64
|
+
}
|
|
65
|
+
["id", ...fields, "createdAt", "updatedAt", "removedAt"].forEach((key) => map.set(key, metadataMap.get(key)));
|
|
66
|
+
Reflect.defineMetadata("fields", map, BaseGql.prototype);
|
|
67
|
+
return BaseGql;
|
|
68
|
+
};
|
|
69
|
+
const fullModelOf = (modelRef, lightRef, overwriteRef, overwriteLightRef) => {
|
|
70
|
+
const modelFieldMetaMap = getFieldMetaMap(modelRef);
|
|
71
|
+
const lightFieldMetaMap = getFieldMetaMap(lightRef);
|
|
72
|
+
applyMixins(modelRef, [lightRef]);
|
|
73
|
+
if (overwriteRef) {
|
|
74
|
+
applyMixins(overwriteRef, [modelRef]);
|
|
75
|
+
setFieldMetaMap(overwriteRef, modelFieldMetaMap);
|
|
76
|
+
}
|
|
77
|
+
if (overwriteLightRef) {
|
|
78
|
+
applyMixins(overwriteLightRef, [lightRef]);
|
|
79
|
+
setFieldMetaMap(overwriteLightRef, lightFieldMetaMap);
|
|
80
|
+
}
|
|
81
|
+
setFieldMetaMap(modelRef, new Map([...modelFieldMetaMap, ...lightFieldMetaMap]));
|
|
82
|
+
return modelRef;
|
|
83
|
+
};
|
|
84
|
+
const via = (modelRef, fieldsOrLightModelRef, overwriteRef, overwriteLightRef) => {
|
|
85
|
+
if (!fieldsOrLightModelRef)
|
|
86
|
+
return baseModelOf(modelRef);
|
|
87
|
+
else if (Array.isArray(fieldsOrLightModelRef))
|
|
88
|
+
return lightModelOf(modelRef, fieldsOrLightModelRef);
|
|
89
|
+
else
|
|
90
|
+
return fullModelOf(modelRef, fieldsOrLightModelRef, overwriteRef, overwriteLightRef);
|
|
91
|
+
};
|
|
92
|
+
const addModelOf = (modelRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) => {
|
|
93
|
+
const modelMetadataMap = getFieldMetaMap(modelRef);
|
|
94
|
+
const metadataMap = new Map(
|
|
95
|
+
[t1, t2, t3, t4, t5, t6, t7, t8, t9, t10].filter((t) => !!t).reduce((acc, writeRef) => {
|
|
96
|
+
const writeMetadataMap = getFieldMetaMap(writeRef);
|
|
97
|
+
applyMixins(modelRef, [writeRef]);
|
|
98
|
+
return new Map([...acc, ...writeMetadataMap]);
|
|
99
|
+
}, modelMetadataMap)
|
|
100
|
+
);
|
|
101
|
+
setFieldMetaMap(modelRef, metadataMap);
|
|
102
|
+
return modelRef;
|
|
103
|
+
};
|
|
104
|
+
const addFilterOf = (filterRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) => {
|
|
105
|
+
const filterMeta = getFilterMeta(filterRef);
|
|
106
|
+
const filterQueryMap = getFilterQueryMap(filterRef);
|
|
107
|
+
const metadataMap = new Map(
|
|
108
|
+
[t1, t2, t3, t4, t5, t6, t7, t8, t9, t10].filter((t) => !!t).reduce((acc, writeRef) => {
|
|
109
|
+
const writeMetadataMap = getFilterQueryMap(writeRef);
|
|
110
|
+
applyMixins(filterRef, [writeRef]);
|
|
111
|
+
writeMetadataMap.forEach((value, key) => {
|
|
112
|
+
const filterArgMetas = getFilterArgMetas(writeRef, key);
|
|
113
|
+
setFilterArgMetasOnPrototype(filterRef.prototype, key, filterArgMetas);
|
|
114
|
+
});
|
|
115
|
+
return new Map([...acc, ...writeMetadataMap]);
|
|
116
|
+
}, filterQueryMap)
|
|
117
|
+
);
|
|
118
|
+
const filterSort = [t1, t2, t3, t4, t5, t6, t7, t8, t9, t10].filter((t) => !!t).map((t) => getFilterSortMap(t)).reduce((acc, sort) => {
|
|
119
|
+
Object.assign(acc, sort);
|
|
120
|
+
return acc;
|
|
121
|
+
}, filterMeta.sort);
|
|
122
|
+
setFilterKeyMetaMapOnPrototype(filterRef.prototype, metadataMap);
|
|
123
|
+
setFilterMeta(filterRef, { ...filterMeta, sort: filterSort });
|
|
124
|
+
return filterRef;
|
|
125
|
+
};
|
|
126
|
+
const from = (modelRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) => {
|
|
127
|
+
if (isConstantModel(modelRef))
|
|
128
|
+
return addModelOf(modelRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
|
|
129
|
+
else if (isFilterModel(modelRef))
|
|
130
|
+
return addFilterOf(modelRef, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
|
|
131
|
+
else
|
|
132
|
+
throw new Error("Invalid modelRef");
|
|
133
|
+
};
|
|
134
|
+
const mixModelOf = (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20) => {
|
|
135
|
+
class Mix {
|
|
136
|
+
}
|
|
137
|
+
const metadataMap = new Map(
|
|
138
|
+
[t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20].filter((t) => !!t).reduce((acc, modelRef) => {
|
|
139
|
+
const modelMetadataMap = getFieldMetaMap(modelRef);
|
|
140
|
+
applyMixins(Mix, [modelRef]);
|
|
141
|
+
return [...acc, ...modelMetadataMap];
|
|
142
|
+
}, [])
|
|
143
|
+
);
|
|
144
|
+
setFieldMetaMap(Mix, metadataMap);
|
|
145
|
+
return Mix;
|
|
146
|
+
};
|
|
147
|
+
const over = mixModelOf;
|
|
148
|
+
export {
|
|
149
|
+
as,
|
|
150
|
+
from,
|
|
151
|
+
mixModelOf,
|
|
152
|
+
over,
|
|
153
|
+
via
|
|
154
|
+
};
|
package/src/classMeta.js
CHANGED
|
@@ -1,7 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var classMeta_exports = {};
|
|
19
|
+
__export(classMeta_exports, {
|
|
20
|
+
FilterModelStorage: () => FilterModelStorage,
|
|
21
|
+
FullModelStorage: () => FullModelStorage,
|
|
22
|
+
InputModelStorage: () => InputModelStorage,
|
|
23
|
+
LightModelStorage: () => LightModelStorage,
|
|
24
|
+
Model: () => Model,
|
|
25
|
+
ScalarModelStorage: () => ScalarModelStorage,
|
|
26
|
+
getAllFilterModelRefs: () => getAllFilterModelRefs,
|
|
27
|
+
getAllFullModelRefs: () => getAllFullModelRefs,
|
|
28
|
+
getAllScalarModelRefs: () => getAllScalarModelRefs,
|
|
29
|
+
getChildClassRefs: () => getChildClassRefs,
|
|
30
|
+
getFieldEnumMetas: () => getFieldEnumMetas,
|
|
31
|
+
getFullModelRef: () => getFullModelRef,
|
|
32
|
+
getInputModelRef: () => getInputModelRef,
|
|
33
|
+
getLightModelRef: () => getLightModelRef,
|
|
34
|
+
getScalarModelRef: () => getScalarModelRef,
|
|
35
|
+
hasTextField: () => hasTextField
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(classMeta_exports);
|
|
38
|
+
var import_reflect_metadata = require("reflect-metadata");
|
|
39
|
+
var import_common = require("@akanjs/common");
|
|
40
|
+
var import_filterMeta = require("./filterMeta");
|
|
41
|
+
var import_scalar = require("./scalar");
|
|
5
42
|
class InputModelStorage {
|
|
6
43
|
}
|
|
7
44
|
class LightModelStorage {
|
|
@@ -13,38 +50,38 @@ class ScalarModelStorage {
|
|
|
13
50
|
class FilterModelStorage {
|
|
14
51
|
}
|
|
15
52
|
const getFullModelRef = (refName) => {
|
|
16
|
-
const modelRef = Reflect.getMetadata(capitalize(refName), FullModelStorage.prototype);
|
|
53
|
+
const modelRef = Reflect.getMetadata((0, import_common.capitalize)(refName), FullModelStorage.prototype);
|
|
17
54
|
if (!modelRef)
|
|
18
55
|
throw new Error(`FullModel not found - ${refName}`);
|
|
19
56
|
return modelRef;
|
|
20
57
|
};
|
|
21
58
|
const getInputModelRef = (refName) => {
|
|
22
|
-
const modelRef = Reflect.getMetadata(capitalize(refName), InputModelStorage.prototype);
|
|
59
|
+
const modelRef = Reflect.getMetadata((0, import_common.capitalize)(refName), InputModelStorage.prototype);
|
|
23
60
|
if (!modelRef)
|
|
24
61
|
throw new Error(`InputModel not found - ${refName}`);
|
|
25
62
|
return modelRef;
|
|
26
63
|
};
|
|
27
64
|
const getScalarModelRef = (refName) => {
|
|
28
|
-
const modelRef = Reflect.getMetadata(capitalize(refName), ScalarModelStorage.prototype);
|
|
65
|
+
const modelRef = Reflect.getMetadata((0, import_common.capitalize)(refName), ScalarModelStorage.prototype);
|
|
29
66
|
if (!modelRef)
|
|
30
67
|
throw new Error(`ScalarModel not found - ${refName}`);
|
|
31
68
|
return modelRef;
|
|
32
69
|
};
|
|
33
70
|
const getChildClassRefs = (target) => {
|
|
34
|
-
const metadatas = getFieldMetas(target);
|
|
71
|
+
const metadatas = (0, import_scalar.getFieldMetas)(target);
|
|
35
72
|
const refMap = /* @__PURE__ */ new Map();
|
|
36
73
|
const childRefs = metadatas.filter((metadata) => metadata.isClass).reduce((acc, metadata) => {
|
|
37
74
|
return [...acc, metadata.modelRef, ...getChildClassRefs(metadata.modelRef)];
|
|
38
75
|
}, []);
|
|
39
|
-
childRefs.filter((modelRef, idx) => childRefs.findIndex((ref) => ref.prototype === modelRef.prototype) === idx).map((modelRef) => refMap.set(getClassMeta(modelRef).refName, modelRef));
|
|
76
|
+
childRefs.filter((modelRef, idx) => childRefs.findIndex((ref) => ref.prototype === modelRef.prototype) === idx).map((modelRef) => refMap.set((0, import_scalar.getClassMeta)(modelRef).refName, modelRef));
|
|
40
77
|
return [...refMap.values()];
|
|
41
78
|
};
|
|
42
79
|
const getFieldEnumMetas = (modelRef) => {
|
|
43
|
-
const fieldMetas = getFieldMetas(modelRef);
|
|
80
|
+
const fieldMetas = (0, import_scalar.getFieldMetas)(modelRef);
|
|
44
81
|
return fieldMetas.filter((fieldMeta) => !!fieldMeta.enum).map((fieldMeta) => ({ key: fieldMeta.key, enum: fieldMeta.enum }));
|
|
45
82
|
};
|
|
46
83
|
const hasTextField = (modelRef) => {
|
|
47
|
-
const fieldMetas = getFieldMetas(modelRef);
|
|
84
|
+
const fieldMetas = (0, import_scalar.getFieldMetas)(modelRef);
|
|
48
85
|
return fieldMetas.some(
|
|
49
86
|
(fieldMeta) => !!fieldMeta.text || fieldMeta.isScalar && fieldMeta.isClass && fieldMeta.select && hasTextField(fieldMeta.modelRef)
|
|
50
87
|
);
|
|
@@ -63,7 +100,7 @@ const applyFilterMeta = (storage) => {
|
|
|
63
100
|
return function(refName) {
|
|
64
101
|
return function(target) {
|
|
65
102
|
const modelRef = target;
|
|
66
|
-
setFilterMeta(modelRef, { refName, sort: {} });
|
|
103
|
+
(0, import_filterMeta.setFilterMeta)(modelRef, { refName, sort: {} });
|
|
67
104
|
Reflect.defineMetadata(refName, modelRef, storage.prototype);
|
|
68
105
|
};
|
|
69
106
|
};
|
|
@@ -79,7 +116,7 @@ const Model = {
|
|
|
79
116
|
Filter: applyFilterMeta(FilterModelStorage)
|
|
80
117
|
};
|
|
81
118
|
const getLightModelRef = (modelRef) => {
|
|
82
|
-
const classMeta = getClassMeta(modelRef);
|
|
119
|
+
const classMeta = (0, import_scalar.getClassMeta)(modelRef);
|
|
83
120
|
if (classMeta.type !== "full")
|
|
84
121
|
return modelRef;
|
|
85
122
|
const lightModelRef = Reflect.getMetadata(`Light${classMeta.refName}`, LightModelStorage.prototype);
|
|
@@ -108,21 +145,3 @@ const getAllFilterModelRefs = () => {
|
|
|
108
145
|
);
|
|
109
146
|
return modelRefs;
|
|
110
147
|
};
|
|
111
|
-
export {
|
|
112
|
-
FilterModelStorage,
|
|
113
|
-
FullModelStorage,
|
|
114
|
-
InputModelStorage,
|
|
115
|
-
LightModelStorage,
|
|
116
|
-
Model,
|
|
117
|
-
ScalarModelStorage,
|
|
118
|
-
getAllFilterModelRefs,
|
|
119
|
-
getAllFullModelRefs,
|
|
120
|
-
getAllScalarModelRefs,
|
|
121
|
-
getChildClassRefs,
|
|
122
|
-
getFieldEnumMetas,
|
|
123
|
-
getFullModelRef,
|
|
124
|
-
getInputModelRef,
|
|
125
|
-
getLightModelRef,
|
|
126
|
-
getScalarModelRef,
|
|
127
|
-
hasTextField
|
|
128
|
-
};
|
|
@@ -1,44 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var classMeta_exports = {};
|
|
19
|
-
__export(classMeta_exports, {
|
|
20
|
-
FilterModelStorage: () => FilterModelStorage,
|
|
21
|
-
FullModelStorage: () => FullModelStorage,
|
|
22
|
-
InputModelStorage: () => InputModelStorage,
|
|
23
|
-
LightModelStorage: () => LightModelStorage,
|
|
24
|
-
Model: () => Model,
|
|
25
|
-
ScalarModelStorage: () => ScalarModelStorage,
|
|
26
|
-
getAllFilterModelRefs: () => getAllFilterModelRefs,
|
|
27
|
-
getAllFullModelRefs: () => getAllFullModelRefs,
|
|
28
|
-
getAllScalarModelRefs: () => getAllScalarModelRefs,
|
|
29
|
-
getChildClassRefs: () => getChildClassRefs,
|
|
30
|
-
getFieldEnumMetas: () => getFieldEnumMetas,
|
|
31
|
-
getFullModelRef: () => getFullModelRef,
|
|
32
|
-
getInputModelRef: () => getInputModelRef,
|
|
33
|
-
getLightModelRef: () => getLightModelRef,
|
|
34
|
-
getScalarModelRef: () => getScalarModelRef,
|
|
35
|
-
hasTextField: () => hasTextField
|
|
36
|
-
});
|
|
37
|
-
module.exports = __toCommonJS(classMeta_exports);
|
|
38
|
-
var import_reflect_metadata = require("reflect-metadata");
|
|
39
|
-
var import_common = require("@akanjs/common");
|
|
40
|
-
var import_filterMeta = require("./filterMeta");
|
|
41
|
-
var import_scalar = require("./scalar");
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { capitalize } from "@akanjs/common";
|
|
3
|
+
import { setFilterMeta } from "./filterMeta";
|
|
4
|
+
import { getClassMeta, getFieldMetas } from "./scalar";
|
|
42
5
|
class InputModelStorage {
|
|
43
6
|
}
|
|
44
7
|
class LightModelStorage {
|
|
@@ -50,38 +13,38 @@ class ScalarModelStorage {
|
|
|
50
13
|
class FilterModelStorage {
|
|
51
14
|
}
|
|
52
15
|
const getFullModelRef = (refName) => {
|
|
53
|
-
const modelRef = Reflect.getMetadata(
|
|
16
|
+
const modelRef = Reflect.getMetadata(capitalize(refName), FullModelStorage.prototype);
|
|
54
17
|
if (!modelRef)
|
|
55
18
|
throw new Error(`FullModel not found - ${refName}`);
|
|
56
19
|
return modelRef;
|
|
57
20
|
};
|
|
58
21
|
const getInputModelRef = (refName) => {
|
|
59
|
-
const modelRef = Reflect.getMetadata(
|
|
22
|
+
const modelRef = Reflect.getMetadata(capitalize(refName), InputModelStorage.prototype);
|
|
60
23
|
if (!modelRef)
|
|
61
24
|
throw new Error(`InputModel not found - ${refName}`);
|
|
62
25
|
return modelRef;
|
|
63
26
|
};
|
|
64
27
|
const getScalarModelRef = (refName) => {
|
|
65
|
-
const modelRef = Reflect.getMetadata(
|
|
28
|
+
const modelRef = Reflect.getMetadata(capitalize(refName), ScalarModelStorage.prototype);
|
|
66
29
|
if (!modelRef)
|
|
67
30
|
throw new Error(`ScalarModel not found - ${refName}`);
|
|
68
31
|
return modelRef;
|
|
69
32
|
};
|
|
70
33
|
const getChildClassRefs = (target) => {
|
|
71
|
-
const metadatas =
|
|
34
|
+
const metadatas = getFieldMetas(target);
|
|
72
35
|
const refMap = /* @__PURE__ */ new Map();
|
|
73
36
|
const childRefs = metadatas.filter((metadata) => metadata.isClass).reduce((acc, metadata) => {
|
|
74
37
|
return [...acc, metadata.modelRef, ...getChildClassRefs(metadata.modelRef)];
|
|
75
38
|
}, []);
|
|
76
|
-
childRefs.filter((modelRef, idx) => childRefs.findIndex((ref) => ref.prototype === modelRef.prototype) === idx).map((modelRef) => refMap.set(
|
|
39
|
+
childRefs.filter((modelRef, idx) => childRefs.findIndex((ref) => ref.prototype === modelRef.prototype) === idx).map((modelRef) => refMap.set(getClassMeta(modelRef).refName, modelRef));
|
|
77
40
|
return [...refMap.values()];
|
|
78
41
|
};
|
|
79
42
|
const getFieldEnumMetas = (modelRef) => {
|
|
80
|
-
const fieldMetas =
|
|
43
|
+
const fieldMetas = getFieldMetas(modelRef);
|
|
81
44
|
return fieldMetas.filter((fieldMeta) => !!fieldMeta.enum).map((fieldMeta) => ({ key: fieldMeta.key, enum: fieldMeta.enum }));
|
|
82
45
|
};
|
|
83
46
|
const hasTextField = (modelRef) => {
|
|
84
|
-
const fieldMetas =
|
|
47
|
+
const fieldMetas = getFieldMetas(modelRef);
|
|
85
48
|
return fieldMetas.some(
|
|
86
49
|
(fieldMeta) => !!fieldMeta.text || fieldMeta.isScalar && fieldMeta.isClass && fieldMeta.select && hasTextField(fieldMeta.modelRef)
|
|
87
50
|
);
|
|
@@ -100,7 +63,7 @@ const applyFilterMeta = (storage) => {
|
|
|
100
63
|
return function(refName) {
|
|
101
64
|
return function(target) {
|
|
102
65
|
const modelRef = target;
|
|
103
|
-
|
|
66
|
+
setFilterMeta(modelRef, { refName, sort: {} });
|
|
104
67
|
Reflect.defineMetadata(refName, modelRef, storage.prototype);
|
|
105
68
|
};
|
|
106
69
|
};
|
|
@@ -116,7 +79,7 @@ const Model = {
|
|
|
116
79
|
Filter: applyFilterMeta(FilterModelStorage)
|
|
117
80
|
};
|
|
118
81
|
const getLightModelRef = (modelRef) => {
|
|
119
|
-
const classMeta =
|
|
82
|
+
const classMeta = getClassMeta(modelRef);
|
|
120
83
|
if (classMeta.type !== "full")
|
|
121
84
|
return modelRef;
|
|
122
85
|
const lightModelRef = Reflect.getMetadata(`Light${classMeta.refName}`, LightModelStorage.prototype);
|
|
@@ -145,3 +108,21 @@ const getAllFilterModelRefs = () => {
|
|
|
145
108
|
);
|
|
146
109
|
return modelRefs;
|
|
147
110
|
};
|
|
111
|
+
export {
|
|
112
|
+
FilterModelStorage,
|
|
113
|
+
FullModelStorage,
|
|
114
|
+
InputModelStorage,
|
|
115
|
+
LightModelStorage,
|
|
116
|
+
Model,
|
|
117
|
+
ScalarModelStorage,
|
|
118
|
+
getAllFilterModelRefs,
|
|
119
|
+
getAllFullModelRefs,
|
|
120
|
+
getAllScalarModelRefs,
|
|
121
|
+
getChildClassRefs,
|
|
122
|
+
getFieldEnumMetas,
|
|
123
|
+
getFullModelRef,
|
|
124
|
+
getInputModelRef,
|
|
125
|
+
getLightModelRef,
|
|
126
|
+
getScalarModelRef,
|
|
127
|
+
hasTextField
|
|
128
|
+
};
|