@voxgig/apidef 2.4.1 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apidef.d.ts +5 -1
- package/dist/apidef.js +197 -112
- package/dist/apidef.js.map +1 -1
- package/dist/builder/entity/entity.d.ts +3 -0
- package/dist/builder/entity/{apiEntity.js → entity.js} +12 -9
- package/dist/builder/entity/entity.js.map +1 -0
- package/dist/builder/entity/info.d.ts +3 -0
- package/dist/builder/entity/info.js +22 -0
- package/dist/builder/entity/info.js.map +1 -0
- package/dist/builder/entity.js +7 -21
- package/dist/builder/entity.js.map +1 -1
- package/dist/builder/flow/flowHeuristic01.js +21 -11
- package/dist/builder/flow/flowHeuristic01.js.map +1 -1
- package/dist/builder/flow.d.ts +2 -1
- package/dist/builder/flow.js +29 -4
- package/dist/builder/flow.js.map +1 -1
- package/dist/def.d.ts +62 -0
- package/dist/def.js +4 -0
- package/dist/def.js.map +1 -0
- package/dist/desc.d.ts +89 -0
- package/dist/desc.js +4 -0
- package/dist/desc.js.map +1 -0
- package/dist/guide/guide.d.ts +2 -1
- package/dist/guide/guide.js +161 -30
- package/dist/guide/guide.js.map +1 -1
- package/dist/guide/heuristic01.d.ts +2 -1
- package/dist/guide/heuristic01.js +1120 -234
- package/dist/guide/heuristic01.js.map +1 -1
- package/dist/model.d.ts +55 -0
- package/dist/model.js +4 -0
- package/dist/model.js.map +1 -0
- package/dist/parse.d.ts +1 -2
- package/dist/parse.js +8 -47
- package/dist/parse.js.map +1 -1
- package/dist/transform/args.d.ts +3 -0
- package/dist/transform/args.js +58 -0
- package/dist/transform/args.js.map +1 -0
- package/dist/transform/clean.js +27 -3
- package/dist/transform/clean.js.map +1 -1
- package/dist/transform/entity.d.ts +11 -3
- package/dist/transform/entity.js +57 -41
- package/dist/transform/entity.js.map +1 -1
- package/dist/transform/field.d.ts +3 -3
- package/dist/transform/field.js +90 -65
- package/dist/transform/field.js.map +1 -1
- package/dist/transform/operation.d.ts +1 -1
- package/dist/transform/operation.js +94 -296
- package/dist/transform/operation.js.map +1 -1
- package/dist/transform/select.d.ts +3 -0
- package/dist/transform/select.js +44 -0
- package/dist/transform/select.js.map +1 -0
- package/dist/transform/top.d.ts +9 -0
- package/dist/transform/top.js +11 -2
- package/dist/transform/top.js.map +1 -1
- package/dist/transform.js +4 -0
- package/dist/transform.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +112 -19
- package/dist/types.js +4 -2
- package/dist/types.js.map +1 -1
- package/dist/utility.d.ts +30 -2
- package/dist/utility.js +381 -6
- package/dist/utility.js.map +1 -1
- package/model/apidef.jsonic +75 -1
- package/model/guide.jsonic +14 -44
- package/package.json +17 -14
- package/src/apidef.ts +264 -121
- package/src/builder/entity/{apiEntity.ts → entity.ts} +18 -11
- package/src/builder/entity/info.ts +53 -0
- package/src/builder/entity.ts +9 -35
- package/src/builder/flow/flowHeuristic01.ts +46 -12
- package/src/builder/flow.ts +39 -5
- package/src/def.ts +91 -0
- package/src/desc.ts +143 -0
- package/src/guide/guide.ts +207 -134
- package/src/guide/heuristic01.ts +1651 -272
- package/src/model.ts +98 -0
- package/src/parse.ts +5 -61
- package/src/schematron.ts.off +317 -0
- package/src/transform/args.ts +102 -0
- package/src/transform/clean.ts +43 -8
- package/src/transform/entity.ts +100 -51
- package/src/transform/field.ts +150 -71
- package/src/transform/operation.ts +118 -414
- package/src/transform/select.ts +90 -0
- package/src/transform/top.ts +76 -3
- package/src/transform.ts +4 -0
- package/src/types.ts +185 -5
- package/src/utility.ts +481 -9
- package/dist/builder/entity/apiEntity.d.ts +0 -3
- package/dist/builder/entity/apiEntity.js.map +0 -1
- package/dist/builder/entity/def.d.ts +0 -3
- package/dist/builder/entity/def.js +0 -19
- package/dist/builder/entity/def.js.map +0 -1
- package/src/builder/entity/def.ts +0 -44
- package/src/guide.ts.off +0 -136
package/dist/transform/field.js
CHANGED
|
@@ -2,84 +2,109 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fieldTransform = void 0;
|
|
4
4
|
const jostraca_1 = require("jostraca");
|
|
5
|
-
const
|
|
5
|
+
const utility_1 = require("../utility");
|
|
6
|
+
const types_1 = require("../types");
|
|
6
7
|
const fieldTransform = async function (ctx) {
|
|
7
|
-
const { apimodel,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
const { apimodel, def } = ctx;
|
|
9
|
+
const kit = apimodel.main[types_1.KIT];
|
|
10
|
+
let msg = 'field ';
|
|
11
|
+
const opFieldPrecedence = ['load', 'create', 'update', 'patch', 'list'];
|
|
12
|
+
(0, jostraca_1.each)(kit.entity, (ment, entname) => {
|
|
13
|
+
const fielddefs = [];
|
|
14
|
+
const fields = ment.fields;
|
|
15
|
+
const seen = {};
|
|
16
|
+
for (let opname of opFieldPrecedence) {
|
|
17
|
+
const mop = ment.op[opname];
|
|
18
|
+
if (mop) {
|
|
19
|
+
const malts = mop.alts;
|
|
20
|
+
for (let malt of malts) {
|
|
21
|
+
const opfields = resolveOpFields(ment, mop, malt, def);
|
|
22
|
+
for (let opfield of opfields) {
|
|
23
|
+
if (!seen[opfield.name]) {
|
|
24
|
+
fields.push(opfield);
|
|
25
|
+
seen[opfield.name] = opfield;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
mergeField(ment, mop, malt, def, seen[opfield.name], opfield);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
20
31
|
}
|
|
21
|
-
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
fields.sort((a, b) => {
|
|
35
|
+
return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
|
|
22
36
|
});
|
|
23
|
-
msg +=
|
|
37
|
+
msg += ment.name + ' ';
|
|
24
38
|
});
|
|
25
39
|
return { ok: true, msg };
|
|
26
40
|
};
|
|
27
41
|
exports.fieldTransform = fieldTransform;
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
42
|
+
function resolveOpFields(ment, mop, malt, def) {
|
|
43
|
+
const mfields = [];
|
|
44
|
+
const fielddefs = findFieldDefs(ment, mop, malt, def);
|
|
45
|
+
for (let fielddef of fielddefs) {
|
|
46
|
+
const fieldname = fielddef.key$;
|
|
47
|
+
const mfield = {
|
|
48
|
+
name: (0, utility_1.canonize)(fieldname),
|
|
49
|
+
type: (0, utility_1.validator)(fielddef.type),
|
|
50
|
+
req: !!fielddef.required,
|
|
51
|
+
op: {},
|
|
52
|
+
};
|
|
53
|
+
mfields.push(mfield);
|
|
54
|
+
}
|
|
55
|
+
return mfields;
|
|
56
|
+
}
|
|
57
|
+
function findFieldDefs(ment, mop, malt, def) {
|
|
58
|
+
const fielddefs = [];
|
|
59
|
+
const pathdef = def.paths[malt.orig];
|
|
60
|
+
const method = malt.method.toLowerCase();
|
|
61
|
+
const opdef = pathdef[method];
|
|
62
|
+
if (opdef) {
|
|
63
|
+
const responses = opdef.responses;
|
|
64
|
+
const requestBody = opdef.requestBody;
|
|
65
|
+
let fieldSets;
|
|
66
|
+
if (responses) {
|
|
67
|
+
fieldSets = (0, jostraca_1.getx)(responses, '200 content "application/json" schema') ??
|
|
68
|
+
(0, jostraca_1.getx)(responses, '200 schema');
|
|
69
|
+
if ('get' === method && 'list' == mop.name) {
|
|
70
|
+
fieldSets = (0, jostraca_1.getx)(responses, '201 content "application/json" schema items') ??
|
|
71
|
+
(0, jostraca_1.getx)(responses, '201 schema items');
|
|
72
|
+
}
|
|
73
|
+
else if ('put' === method && null == fieldSets) {
|
|
74
|
+
fieldSets = (0, jostraca_1.getx)(responses, '201 content "application/json" schema') ??
|
|
75
|
+
(0, jostraca_1.getx)(responses, '201 schema');
|
|
76
|
+
}
|
|
34
77
|
}
|
|
35
|
-
|
|
36
|
-
fieldSets = [
|
|
78
|
+
if (requestBody) {
|
|
79
|
+
fieldSets = [
|
|
80
|
+
fieldSets,
|
|
81
|
+
(0, jostraca_1.getx)(requestBody, 'content "application/json" schema') ??
|
|
82
|
+
(0, jostraca_1.getx)(requestBody, 'schema')
|
|
83
|
+
];
|
|
37
84
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// field.type = property.type
|
|
45
|
-
resolveFieldType(entityModel, field, property);
|
|
46
|
-
(0, transform_1.fixName)(field, field.type, 'type');
|
|
47
|
-
field.short = property.description;
|
|
48
|
-
fieldCount++;
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
// Guess id field name using GET path param
|
|
52
|
-
if ('load' === op.key$) {
|
|
53
|
-
const getdef = pathdef.get;
|
|
54
|
-
const getparams = getdef.parameters || [];
|
|
55
|
-
if (1 === getparams.length) {
|
|
56
|
-
if (entityModel.op.load.path.match(RegExp('\\{' + getdef.parameters[0].name + '\\}$'))) {
|
|
57
|
-
entityModel.id.field = getdef.parameters[0].name;
|
|
85
|
+
if (fieldSets) {
|
|
86
|
+
if (Array.isArray(fieldSets.allOf)) {
|
|
87
|
+
fieldSets = fieldSets.allOf;
|
|
88
|
+
}
|
|
89
|
+
else if (fieldSets.properties) {
|
|
90
|
+
fieldSets = [fieldSets];
|
|
58
91
|
}
|
|
59
92
|
}
|
|
93
|
+
(0, jostraca_1.each)(fieldSets, (fieldSet) => {
|
|
94
|
+
(0, jostraca_1.each)(fieldSet?.properties, (property) => {
|
|
95
|
+
fielddefs.push(property);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
60
98
|
}
|
|
61
|
-
return
|
|
99
|
+
return fielddefs;
|
|
62
100
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
else if (Array.isArray(property.type)) {
|
|
71
|
-
field.type =
|
|
72
|
-
(property.type.filter((t) => 'null' != t).sort()[0]) ||
|
|
73
|
-
property.type[0] ||
|
|
74
|
-
'string';
|
|
75
|
-
field.typelist = property.type;
|
|
76
|
-
}
|
|
77
|
-
else if ('undefined' === ptt && null != property.enum) {
|
|
78
|
-
field.type = 'string';
|
|
79
|
-
field.enum = property.enum;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
throw new Error(`APIDEF: Unsupported property type: ${property.type} (${entity.name}.${field.name})`);
|
|
101
|
+
function mergeField(ment, mop, malt, def, exisingField, newField) {
|
|
102
|
+
if (newField.req !== exisingField.req) {
|
|
103
|
+
exisingField.op[mop.name] = {
|
|
104
|
+
req: newField.req,
|
|
105
|
+
type: newField.type,
|
|
106
|
+
};
|
|
83
107
|
}
|
|
108
|
+
return exisingField;
|
|
84
109
|
}
|
|
85
110
|
//# sourceMappingURL=field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/transform/field.ts"],"names":[],"mappings":";;;AAEA,uCAAqC;
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/transform/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,308 +2,106 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.operationTransform = void 0;
|
|
4
4
|
const jostraca_1 = require("jostraca");
|
|
5
|
-
const
|
|
6
|
-
const utility_1 = require("../utility");
|
|
5
|
+
const types_1 = require("../types");
|
|
7
6
|
const operationTransform = async function (ctx) {
|
|
8
|
-
const { apimodel,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
const { apimodel, guide } = ctx;
|
|
8
|
+
const kit = apimodel.main[types_1.KIT];
|
|
9
|
+
let msg = 'operation ';
|
|
10
|
+
(0, jostraca_1.each)(guide.entity, (gent, entname) => {
|
|
11
|
+
collectOps(gent);
|
|
12
|
+
const opm = {
|
|
13
|
+
load: undefined,
|
|
14
|
+
list: undefined,
|
|
15
|
+
create: undefined,
|
|
16
|
+
update: undefined,
|
|
17
|
+
delete: undefined,
|
|
18
|
+
patch: undefined,
|
|
13
19
|
};
|
|
14
|
-
(
|
|
15
|
-
|
|
16
|
-
(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
required: queryDef.required
|
|
23
|
-
};
|
|
24
|
-
(0, transform_1.fixName)(queryMap[queryDef.name], queryDef.name);
|
|
25
|
-
const type = queryDef.schema ? queryDef.schema.type : queryDef.type;
|
|
26
|
-
(0, transform_1.fixName)(queryMap[queryDef.name], type, 'type');
|
|
27
|
-
if (queryDef.required) {
|
|
28
|
-
opModel.validate.params[queryDef.name] = `\`$${querySpec.TYPE}\``;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
// Resolve the JSON structure of the request or response.
|
|
32
|
-
// NOTE: uses heuristics.
|
|
33
|
-
const resolveTransform = (entityModel, op, kind, direction, pathdef) => {
|
|
34
|
-
let out;
|
|
35
|
-
let why = 'none';
|
|
36
|
-
if (null != op.transform?.[direction]) {
|
|
37
|
-
out = op.transform[direction];
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
const method = op.method;
|
|
41
|
-
const mdef = pathdef[method];
|
|
42
|
-
// TODO: fix getx
|
|
43
|
-
// const content = 'res' === kind ?
|
|
44
|
-
const content = 'resform' === direction ?
|
|
45
|
-
((0, jostraca_1.getx)(mdef, 'responses.200.content') ||
|
|
46
|
-
(0, jostraca_1.getx)(mdef, 'responses.201.content')) :
|
|
47
|
-
(0, jostraca_1.getx)(mdef, 'requestBody.content');
|
|
48
|
-
if (content) {
|
|
49
|
-
const schema = content['application/json']?.schema;
|
|
50
|
-
const propkeys = null == schema?.properties ? [] : Object.keys(schema.properties);
|
|
51
|
-
const resolveDirectionTransform = 'resform' === direction ? resolveResponseTransform : resolveRequestTransform;
|
|
52
|
-
[out, why]
|
|
53
|
-
= resolveDirectionTransform(entityModel, op, kind, direction, method, mdef, content, schema, propkeys);
|
|
54
|
-
// out = JSON.stringify(transform)
|
|
55
|
-
// out = transform
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
out = 'res' === kind ? '`body`' : '`reqdata`';
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return [out, why];
|
|
62
|
-
};
|
|
63
|
-
const resolveResponseTransform = (entityModel, op, kind, direction, method, mdef, content, schema, propkeys) => {
|
|
64
|
-
let why = 'default';
|
|
65
|
-
let transform = '`body`';
|
|
66
|
-
const properties = schema?.properties;
|
|
67
|
-
if (null == content || null == schema || null == propkeys || null == properties) {
|
|
68
|
-
return [transform, why];
|
|
69
|
-
}
|
|
70
|
-
const opname = op.key$;
|
|
71
|
-
if ('list' === opname) {
|
|
72
|
-
if ('array' !== schema.type) {
|
|
73
|
-
if (1 === propkeys.length) {
|
|
74
|
-
why = 'list-single-prop:' + propkeys[0];
|
|
75
|
-
transform = '`body.' + propkeys[0] + '`';
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
// Use sub property that is an array
|
|
79
|
-
for (let pk of propkeys) {
|
|
80
|
-
if ('array' === properties[pk]?.type) {
|
|
81
|
-
why = 'list-single-array:' + pk;
|
|
82
|
-
transform = '`body.' + pk + '`';
|
|
83
|
-
// TODO: if each item has prop === name of entity, use that, get with $EACH
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
if ('object' === schema.type) {
|
|
92
|
-
if (null == properties.id) {
|
|
93
|
-
if (1 === propkeys.length) {
|
|
94
|
-
why = 'map-single-prop:' + propkeys[0];
|
|
95
|
-
transform = '`body.' + propkeys[0] + '`';
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
for (let pk of propkeys) {
|
|
99
|
-
if (properties[pk]?.properties?.id) {
|
|
100
|
-
why = 'map-sub-prop:' + pk;
|
|
101
|
-
transform = '`body.' + pk + '`';
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return [transform, why];
|
|
110
|
-
};
|
|
111
|
-
const resolveRequestTransform = (entityModel, op, kind, direction, method, mdef, content, schema, propkeys) => {
|
|
112
|
-
let transform = '`reqdata`';
|
|
113
|
-
let why = 'default';
|
|
114
|
-
const properties = schema?.properties;
|
|
115
|
-
if (null == content || null == schema || null == propkeys || null == properties) {
|
|
116
|
-
return [transform, why];
|
|
117
|
-
}
|
|
118
|
-
const opname = op.key$;
|
|
119
|
-
if ('list' === opname) {
|
|
120
|
-
if ('array' !== schema.type) {
|
|
121
|
-
if (1 === propkeys.length) {
|
|
122
|
-
why = 'list-single-prop:' + propkeys[0];
|
|
123
|
-
transform = { [propkeys[0]]: '`reqdata`' };
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
// Use sub property that is an array
|
|
127
|
-
for (let pk of propkeys) {
|
|
128
|
-
if ('array' === properties[pk]?.type) {
|
|
129
|
-
why = 'list-single-array:' + pk;
|
|
130
|
-
transform = { [pk]: '`reqdata`' };
|
|
131
|
-
break;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
if ('object' === schema.type) {
|
|
139
|
-
if (null == properties.id) {
|
|
140
|
-
if (1 === propkeys.length) {
|
|
141
|
-
why = 'map-single-prop:' + propkeys[0];
|
|
142
|
-
transform = { [propkeys[0]]: '`reqdata`' };
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
for (let pk of propkeys) {
|
|
146
|
-
if (properties[pk]?.properties?.id) {
|
|
147
|
-
why = 'map-sub-prop:' + pk;
|
|
148
|
-
transform = { [pk]: '`reqdata`' };
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return [transform, why];
|
|
157
|
-
};
|
|
158
|
-
const opBuilder = {
|
|
159
|
-
any: (entityModel, pathdef, guideOp, guidePath, guideEntity, model) => {
|
|
160
|
-
if (false === guidePath.active) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
const opname = guideOp.key$;
|
|
164
|
-
const method = guideOp.method;
|
|
165
|
-
const kind = transform_1.OPKIND[opname];
|
|
166
|
-
const existingOpModel = entityModel.op[opname];
|
|
167
|
-
const existingParam = existingOpModel?.param;
|
|
168
|
-
const [resform, resform_COMMENT] = resolveTransform(entityModel, guideOp, kind, 'resform', pathdef);
|
|
169
|
-
const [reqform, reqform_COMMENT] = resolveTransform(entityModel, guideOp, kind, 'reqform', pathdef);
|
|
170
|
-
const opModel = {
|
|
171
|
-
path: guidePath.key$,
|
|
172
|
-
pathalt: [],
|
|
173
|
-
method,
|
|
174
|
-
kind,
|
|
175
|
-
param: existingParam || {},
|
|
176
|
-
query: {},
|
|
177
|
-
resform_COMMENT: 'derivation: ' + resform_COMMENT,
|
|
178
|
-
resform,
|
|
179
|
-
reqform_COMMENT: 'derivation: ' + reqform_COMMENT,
|
|
180
|
-
reqform,
|
|
181
|
-
validate: {
|
|
182
|
-
params: { '`$OPEN`': true }
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
(0, transform_1.fixName)(opModel, guideOp.key$);
|
|
186
|
-
let params = [];
|
|
187
|
-
// Params are in the path
|
|
188
|
-
if (0 < guidePath.params$.length) {
|
|
189
|
-
let sharedparams = (0, jostraca_1.getx)(pathdef, 'parameters?in=path') || [];
|
|
190
|
-
params = sharedparams.concat((0, jostraca_1.getx)(pathdef[method], 'parameters?in=path') || []);
|
|
191
|
-
// if (Array.isArray(params)) {
|
|
192
|
-
params.reduce((a, p) => (paramBuilder(a, p, opModel, entityModel, pathdef, guideOp, guidePath, guideEntity, model), a), opModel.param);
|
|
193
|
-
//}
|
|
194
|
-
}
|
|
195
|
-
// Queries are after the ?
|
|
196
|
-
let sharedqueries = (0, jostraca_1.getx)(pathdef, 'parameters?in!=path') || [];
|
|
197
|
-
let queries = sharedqueries.concat((0, jostraca_1.getx)(pathdef[method], 'parameters?in!=path') || []);
|
|
198
|
-
queries.reduce((a, p) => (queryBuilder(a, p, opModel, entityModel, pathdef, guideOp, guidePath, guideEntity, model), a), opModel.query);
|
|
199
|
-
let pathalt = [];
|
|
200
|
-
const pathselector = makePathSelector(guidePath.key$);
|
|
201
|
-
let before = false;
|
|
202
|
-
if (null != entityModel.op[opname]) {
|
|
203
|
-
pathalt = entityModel.op[opname].pathalt;
|
|
204
|
-
// Ordering for pathalts: most to least paramrs, then alphanumberic
|
|
205
|
-
for (let i = 0; i < pathalt.length; i++) {
|
|
206
|
-
let current = pathalt[i];
|
|
207
|
-
before =
|
|
208
|
-
pathselector.pn$ > current.pn$ ||
|
|
209
|
-
(pathselector.pn$ === current.pn$ &&
|
|
210
|
-
pathselector.path <= current.path);
|
|
211
|
-
if (before) {
|
|
212
|
-
pathalt = [
|
|
213
|
-
...pathalt.slice(0, i),
|
|
214
|
-
pathselector,
|
|
215
|
-
...pathalt.slice(i),
|
|
216
|
-
];
|
|
217
|
-
break;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
if (!before) {
|
|
222
|
-
pathalt.push(pathselector);
|
|
223
|
-
}
|
|
224
|
-
opModel.path = pathalt[pathalt.length - 1].path;
|
|
225
|
-
opModel.pathalt = pathalt;
|
|
226
|
-
entityModel.op[opname] = opModel;
|
|
227
|
-
return opModel;
|
|
228
|
-
},
|
|
229
|
-
list: (entityModel, pathdef, op, path, entity, model) => {
|
|
230
|
-
return opBuilder.any(entityModel, pathdef, op, path, entity, model);
|
|
231
|
-
},
|
|
232
|
-
load: (entityModel, pathdef, op, path, entity, model) => {
|
|
233
|
-
return opBuilder.any(entityModel, pathdef, op, path, entity, model);
|
|
234
|
-
},
|
|
235
|
-
create: (entityModel, pathdef, op, path, entity, model) => {
|
|
236
|
-
return opBuilder.any(entityModel, pathdef, op, path, entity, model);
|
|
237
|
-
},
|
|
238
|
-
update: (entityModel, pathdef, op, path, entity, model) => {
|
|
239
|
-
return opBuilder.any(entityModel, pathdef, op, path, entity, model);
|
|
240
|
-
},
|
|
241
|
-
remove: (entityModel, pathdef, op, path, entity, model) => {
|
|
242
|
-
return opBuilder.any(entityModel, pathdef, op, path, entity, model);
|
|
243
|
-
},
|
|
244
|
-
};
|
|
245
|
-
/*
|
|
246
|
-
console.dir(
|
|
247
|
-
transform({ guide }, {
|
|
248
|
-
entity: {
|
|
249
|
-
'`$PACK`': ['guide.entity', {
|
|
250
|
-
'`$KEY`': 'name',
|
|
251
|
-
op: {
|
|
252
|
-
// load: ['`$IF`', ['`$SELECT`',{path:{'`$ANY`':{op:{load:'`$EXISTS`'}}}}], {
|
|
253
|
-
load: ['`$IF`', 'path.*.op.load', {
|
|
254
|
-
path: () => 'foo'
|
|
255
|
-
}]
|
|
256
|
-
}
|
|
257
|
-
}]
|
|
258
|
-
}
|
|
259
|
-
}), { depth: null })
|
|
260
|
-
*/
|
|
261
|
-
(0, jostraca_1.each)(guide.entity, (guideEntity) => {
|
|
262
|
-
let opcount = 0;
|
|
263
|
-
const entityModel = apimodel.main.api.entity[guideEntity.key$];
|
|
264
|
-
(0, jostraca_1.each)(guideEntity.path, (guidePath) => {
|
|
265
|
-
const pathdef = def.paths[guidePath.key$];
|
|
266
|
-
(0, jostraca_1.each)(guidePath.op, (guideOp) => {
|
|
267
|
-
const opbuild = opBuilder[guideOp.key$];
|
|
268
|
-
if (opbuild) {
|
|
269
|
-
opbuild(entityModel, pathdef, guideOp, guidePath, guideEntity, model);
|
|
270
|
-
opcount++;
|
|
271
|
-
}
|
|
272
|
-
});
|
|
273
|
-
});
|
|
274
|
-
// Full list of params only know after all operations built.
|
|
275
|
-
(0, jostraca_1.each)(entityModel.op, (op) => {
|
|
276
|
-
const params = Object.keys(op.param || {});
|
|
277
|
-
const pathalt = op.pathalt || [];
|
|
278
|
-
// if ('course' === entityModel.name) {
|
|
279
|
-
// console.log('PA', params, pathalt)
|
|
280
|
-
// }
|
|
281
|
-
for (const pa of pathalt) {
|
|
282
|
-
for (const p of params) {
|
|
283
|
-
pa[p] = pa[p] || false;
|
|
284
|
-
// if ('course' === entityModel.name) {
|
|
285
|
-
// console.log('PA-SET', p, pa)
|
|
286
|
-
// }
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
// if ('course' === entityModel.name) {
|
|
291
|
-
// console.dir(entityModel, { depth: null })
|
|
292
|
-
// }
|
|
293
|
-
msg += guideEntity.name + '=' + opcount + ' ';
|
|
20
|
+
resolveLoad(opm, gent);
|
|
21
|
+
resolveList(opm, gent);
|
|
22
|
+
resolveCreate(opm, gent);
|
|
23
|
+
resolveUpdate(opm, gent);
|
|
24
|
+
resolveDelete(opm, gent);
|
|
25
|
+
resolvePatch(opm, gent);
|
|
26
|
+
kit.entity[entname].op = opm;
|
|
27
|
+
msg += gent.name + ' ';
|
|
294
28
|
});
|
|
295
29
|
return { ok: true, msg };
|
|
296
30
|
};
|
|
297
31
|
exports.operationTransform = operationTransform;
|
|
298
|
-
function
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
32
|
+
function collectOps(gent) {
|
|
33
|
+
gent.opm$ = gent.opm$ ?? {};
|
|
34
|
+
(0, jostraca_1.each)(gent.paths$, (pathdesc) => {
|
|
35
|
+
(0, jostraca_1.each)(pathdesc.op, (gop, opname) => {
|
|
36
|
+
gent.opm$[opname] = gent.opm$[opname] ?? { paths: [] };
|
|
37
|
+
const oppathdesc = {
|
|
38
|
+
orig: pathdesc.orig,
|
|
39
|
+
parts: pathdesc.parts,
|
|
40
|
+
rename: pathdesc.rename,
|
|
41
|
+
method: gop.method,
|
|
42
|
+
op: pathdesc.op,
|
|
43
|
+
def: pathdesc.def,
|
|
44
|
+
};
|
|
45
|
+
gent.opm$[opname].paths.push(oppathdesc);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function resolveLoad(opm, gent) {
|
|
50
|
+
const opdesc = opm.load = resolveOp('load', gent);
|
|
51
|
+
return opdesc;
|
|
52
|
+
}
|
|
53
|
+
function resolveList(opm, gent) {
|
|
54
|
+
const opdesc = opm.list = resolveOp('list', gent);
|
|
55
|
+
return opdesc;
|
|
56
|
+
}
|
|
57
|
+
function resolveCreate(opm, gent) {
|
|
58
|
+
const opdesc = opm.create = resolveOp('create', gent);
|
|
59
|
+
return opdesc;
|
|
60
|
+
}
|
|
61
|
+
function resolveUpdate(opm, gent) {
|
|
62
|
+
const opdesc = opm.update = resolveOp('update', gent);
|
|
63
|
+
return opdesc;
|
|
64
|
+
}
|
|
65
|
+
function resolveDelete(opm, gent) {
|
|
66
|
+
const opdesc = opm.delete = resolveOp('delete', gent);
|
|
67
|
+
return opdesc;
|
|
68
|
+
}
|
|
69
|
+
function resolvePatch(opm, gent) {
|
|
70
|
+
const opdesc = resolveOp('patch', gent);
|
|
71
|
+
// If patch is actually update, make it update!
|
|
72
|
+
if (null != opdesc && null == opm.update) {
|
|
73
|
+
opm.update = opdesc;
|
|
74
|
+
opm.update.name = 'update';
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
opm.patch = opdesc;
|
|
305
78
|
}
|
|
306
|
-
|
|
307
|
-
|
|
79
|
+
return opdesc;
|
|
80
|
+
}
|
|
81
|
+
function resolveOp(opname, gent) {
|
|
82
|
+
let mop = undefined;
|
|
83
|
+
let opdesc = gent.opm$[opname];
|
|
84
|
+
if (opdesc) {
|
|
85
|
+
// console.dir(opdesc, { depth: null })
|
|
86
|
+
mop = {
|
|
87
|
+
name: opname,
|
|
88
|
+
alts: opdesc.paths.map(p => {
|
|
89
|
+
const parts = applyRename(p);
|
|
90
|
+
const malt = {
|
|
91
|
+
orig: p.orig,
|
|
92
|
+
parts,
|
|
93
|
+
method: p.method,
|
|
94
|
+
args: {},
|
|
95
|
+
select: {}
|
|
96
|
+
};
|
|
97
|
+
return malt;
|
|
98
|
+
})
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return mop;
|
|
102
|
+
}
|
|
103
|
+
function applyRename(pathdesc) {
|
|
104
|
+
const prn = pathdesc.rename?.param ?? {};
|
|
105
|
+
return pathdesc.parts.map(p => '{' === p[0] ? (prn[p.substring(1, p.length - 1)] ?? p) : p);
|
|
308
106
|
}
|
|
309
107
|
//# sourceMappingURL=operation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/transform/operation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/transform/operation.ts"],"names":[],"mappings":"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"}
|