@based/schema 1.0.8 → 1.0.9
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/error.d.ts +2 -1
- package/dist/error.js +1 -0
- package/dist/error.js.map +1 -1
- package/dist/set/fields/index.js +2 -0
- package/dist/set/fields/index.js.map +1 -1
- package/dist/set/index.js +26 -0
- package/dist/set/index.js.map +1 -1
- package/dist/set/isValidId.js +1 -1
- package/dist/walker/args.d.ts +4 -0
- package/dist/walker/args.js +48 -2
- package/dist/walker/args.js.map +1 -1
- package/dist/walker/parse.js +30 -5
- package/dist/walker/parse.js.map +1 -1
- package/package.json +1 -1
- package/src/error.ts +1 -0
- package/src/set/fields/index.ts +2 -1
- package/src/set/index.ts +27 -0
- package/src/set/isValidId.ts +1 -1
- package/src/walker/args.ts +56 -2
- package/src/walker/parse.ts +37 -5
- package/test/number.ts +74 -69
- package/test/rest.ts +73 -136
- package/test/set.ts +116 -0
- package/test/string.ts +121 -139
- package/test/text.ts +199 -0
- package/test/walker.ts +158 -48
package/dist/error.d.ts
CHANGED
package/dist/error.js
CHANGED
|
@@ -17,5 +17,6 @@ var ParseError;
|
|
|
17
17
|
ParseError[ParseError["languageNotSupported"] = 11] = "languageNotSupported";
|
|
18
18
|
ParseError[ParseError["invalidJSON"] = 12] = "invalidJSON";
|
|
19
19
|
ParseError[ParseError["noLanguageFound"] = 13] = "noLanguageFound";
|
|
20
|
+
ParseError[ParseError["cannotDeleteNodeFromModify"] = 14] = "cannotDeleteNodeFromModify";
|
|
20
21
|
})(ParseError = exports.ParseError || (exports.ParseError = {}));
|
|
21
22
|
//# sourceMappingURL=error.js.map
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAgBX;AAhBD,WAAY,UAAU;IACpB,uEAAoB,CAAA;IACpB,qEAAmB,CAAA;IACnB,+DAAgB,CAAA;IAChB,iEAAiB,CAAA;IACjB,qEAAmB,CAAA;IACnB,iEAAiB,CAAA;IACjB,mFAA0B,CAAA;IAC1B,iEAAiB,CAAA;IACjB,yEAAqB,CAAA;IACrB,2FAA8B,CAAA;IAC9B,kFAAyB,CAAA;IACzB,4EAAsB,CAAA;IACtB,0DAAa,CAAA;IACb,kEAAiB,CAAA;IACjB,wFAA4B,CAAA;AAC9B,CAAC,EAhBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAgBrB"}
|
package/dist/set/fields/index.js
CHANGED
|
@@ -50,6 +50,7 @@ exports.fields = {
|
|
|
50
50
|
args.collect();
|
|
51
51
|
},
|
|
52
52
|
json: async (args) => {
|
|
53
|
+
args.stop();
|
|
53
54
|
try {
|
|
54
55
|
const parsedValue = JSON.stringify(args.value);
|
|
55
56
|
args.collect(parsedValue);
|
|
@@ -59,6 +60,7 @@ exports.fields = {
|
|
|
59
60
|
}
|
|
60
61
|
},
|
|
61
62
|
enum: async (args) => {
|
|
63
|
+
args.stop();
|
|
62
64
|
const enumValues = args.fieldSchema.enum;
|
|
63
65
|
for (let i = 0; i < enumValues.length; i++) {
|
|
64
66
|
if ((0, utils_1.deepEqual)(enumValues[i], args.value)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/set/fields/index.ts"],"names":[],"mappings":";;;AACA,uCAAwC;AAExC,mCAA+B;AAC/B,qCAAyC;AACzC,qCAAqD;AACrD,qCAAuC;AACvC,6CAAoD;AACpD,+BAA2B;AAC3B,sCAA4D;AAC5D,wCAAwC;AAE3B,QAAA,MAAM,GAA0C;IAC3D,KAAK,EAAL,aAAK;IACL,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,OAAO,EAAP,gBAAO;IACP,SAAS,EAAT,kBAAS;IACT,MAAM,EAAN,eAAM;IACN,GAAG,EAAH,SAAG;IACH,IAAI,EAAJ,aAAI;IACJ,SAAS,EAAT,sBAAS;IACT,UAAU,EAAV,uBAAU;IACV,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,WAAmB,CAAA;QACvB,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChD,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,mBAAmB,CAAC,CAAA;gBAC1C,OAAM;aACP;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;gBACnC,WAAW,GAAG,IAAA,+BAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;aACvE;iBAAM;gBACL,WAAW,GAAG,IAAA,+BAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;aAChE;SACF;aAAM;YACL,WAAW,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;SAC5C;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAA;YACtC,OAAM;SACP;QACD,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/set/fields/index.ts"],"names":[],"mappings":";;;AACA,uCAAwC;AAExC,mCAA+B;AAC/B,qCAAyC;AACzC,qCAAqD;AACrD,qCAAuC;AACvC,6CAAoD;AACpD,+BAA2B;AAC3B,sCAA4D;AAC5D,wCAAwC;AAE3B,QAAA,MAAM,GAA0C;IAC3D,KAAK,EAAL,aAAK;IACL,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,OAAO,EAAP,gBAAO;IACP,SAAS,EAAT,kBAAS;IACT,MAAM,EAAN,eAAM;IACN,GAAG,EAAH,SAAG;IACH,IAAI,EAAJ,aAAI;IACJ,SAAS,EAAT,sBAAS;IACT,UAAU,EAAV,uBAAU;IACV,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,WAAmB,CAAA;QACvB,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChD,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,mBAAmB,CAAC,CAAA;gBAC1C,OAAM;aACP;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;gBACnC,WAAW,GAAG,IAAA,+BAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;aACvE;iBAAM;gBACL,WAAW,GAAG,IAAA,+BAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;aAChE;SACF;aAAM;YACL,WAAW,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;SAC5C;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAA;YACtC,OAAM;SACP;QACD,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IACD,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACnB,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,IAAI;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,WAAW,CAAC,CAAA;SACnC;IACH,CAAC;IACD,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACnB,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gBACxC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;gBACf,OAAM;aACP;SACF;QACD,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;CACF,CAAA"}
|
package/dist/set/index.js
CHANGED
|
@@ -8,6 +8,32 @@ const isValidId_1 = require("./isValidId");
|
|
|
8
8
|
const opts = {
|
|
9
9
|
parsers: {
|
|
10
10
|
keys: {
|
|
11
|
+
$delete: async (args) => {
|
|
12
|
+
if (args.prev === args.root) {
|
|
13
|
+
args.error(error_1.ParseError.cannotDeleteNodeFromModify);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (args.value === true) {
|
|
17
|
+
args.stop();
|
|
18
|
+
args.prev.collect();
|
|
19
|
+
args.prev.stop();
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
$alias: async (args) => {
|
|
24
|
+
if (Array.isArray(args.value)) {
|
|
25
|
+
for (const field of args.value) {
|
|
26
|
+
if (typeof field !== 'string') {
|
|
27
|
+
args.error(error_1.ParseError.incorrectFormat);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (typeof args.value !== 'string') {
|
|
34
|
+
args.error(error_1.ParseError.incorrectFormat);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
11
37
|
$id: async (args) => {
|
|
12
38
|
if (!(0, isValidId_1.isValidId)(args.schema, args.value)) {
|
|
13
39
|
args.error(error_1.ParseError.incorrectFormat);
|
package/dist/set/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/set/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/set/index.ts"],"names":[],"mappings":"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"}
|
package/dist/set/isValidId.js
CHANGED
package/dist/walker/args.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { ArgsOpts, Path, Opts, Stopped, Collect } from './types';
|
|
|
4
4
|
import { ParseError } from '../error';
|
|
5
5
|
export declare class ArgsClass<T, K extends keyof BasedSchemaFields = keyof BasedSchemaFields> {
|
|
6
6
|
errors: any[];
|
|
7
|
+
id: number;
|
|
7
8
|
prev: ArgsClass<T, K>;
|
|
8
9
|
root: ArgsClass<T, K>;
|
|
9
10
|
_opts: Opts<T>;
|
|
@@ -26,6 +27,9 @@ export declare class ArgsClass<T, K extends keyof BasedSchemaFields = keyof Base
|
|
|
26
27
|
stop(onllyStopFieldSchemaParser?: boolean): void;
|
|
27
28
|
create(opts?: ArgsOpts<T>): ArgsClass<T>;
|
|
28
29
|
parse(opts?: ArgsOpts<T>): Promise<ArgsClass<T> | void>;
|
|
30
|
+
getTopPaths(): Path[];
|
|
31
|
+
getBackTrackTarget(): ArgsClass<T>;
|
|
32
|
+
getCollectTarget(): void;
|
|
29
33
|
collect(value?: any): void;
|
|
30
34
|
error(code: ParseError): void;
|
|
31
35
|
}
|
package/dist/walker/args.js
CHANGED
|
@@ -3,8 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ArgsClass = void 0;
|
|
4
4
|
const types_1 = require("./types");
|
|
5
5
|
const parse_1 = require("./parse");
|
|
6
|
+
const utils_1 = require("@saulx/utils");
|
|
7
|
+
let id = 0;
|
|
6
8
|
class ArgsClass {
|
|
7
9
|
constructor(opts, prev) {
|
|
10
|
+
this.id = ++id;
|
|
8
11
|
this.fromBackTrack = [];
|
|
9
12
|
this.collectedCommands = [];
|
|
10
13
|
if (opts.prev) {
|
|
@@ -25,6 +28,8 @@ class ArgsClass {
|
|
|
25
28
|
this.path = [...prev.path, opts.key];
|
|
26
29
|
}
|
|
27
30
|
else if (opts && prev) {
|
|
31
|
+
// this.collectedCommands = prev.collectedCommands
|
|
32
|
+
// this.fromBackTrack = prev.fromBackTrack
|
|
28
33
|
this.path = prev.path;
|
|
29
34
|
}
|
|
30
35
|
else {
|
|
@@ -94,22 +99,63 @@ class ArgsClass {
|
|
|
94
99
|
}
|
|
95
100
|
else {
|
|
96
101
|
const newArgs = new ArgsClass(opts, this);
|
|
102
|
+
if (newArgs.value === undefined) {
|
|
103
|
+
newArgs.value = this.value;
|
|
104
|
+
}
|
|
97
105
|
if (this._collectOverride) {
|
|
98
106
|
newArgs._collectOverride = this._collectOverride;
|
|
99
107
|
}
|
|
100
108
|
return newArgs.parse();
|
|
101
109
|
}
|
|
102
110
|
}
|
|
111
|
+
getTopPaths() {
|
|
112
|
+
let argPath = [];
|
|
113
|
+
let p = this;
|
|
114
|
+
while (p) {
|
|
115
|
+
argPath.unshift({ path: p.path, id: p.id });
|
|
116
|
+
// @ts-ignore
|
|
117
|
+
p = p.prev;
|
|
118
|
+
}
|
|
119
|
+
return argPath;
|
|
120
|
+
}
|
|
121
|
+
getBackTrackTarget() {
|
|
122
|
+
let p = this;
|
|
123
|
+
while (p) {
|
|
124
|
+
if (p.prev) {
|
|
125
|
+
if ((0, utils_1.deepEqual)(p.prev.path, p.path)) {
|
|
126
|
+
p = p.prev;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
p = p.prev;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// console.log(
|
|
138
|
+
// 'SELECTED TARGET',
|
|
139
|
+
// p && p.id,
|
|
140
|
+
// p && p.path,
|
|
141
|
+
// p && p.getTopPaths(),
|
|
142
|
+
// 'END'
|
|
143
|
+
// )
|
|
144
|
+
return p;
|
|
145
|
+
}
|
|
146
|
+
getCollectTarget() { }
|
|
103
147
|
collect(value) {
|
|
104
148
|
if (this.skipCollection) {
|
|
105
149
|
return;
|
|
106
150
|
}
|
|
107
151
|
const collectArgs = value !== undefined ? new ArgsClass({ value }, this) : this;
|
|
152
|
+
// this is prob still wrong
|
|
153
|
+
let collectTarget = this.prev;
|
|
108
154
|
if (this._collectOverride) {
|
|
109
|
-
|
|
155
|
+
collectTarget.collectedCommands.push(this._collectOverride(collectArgs));
|
|
110
156
|
}
|
|
111
157
|
else {
|
|
112
|
-
|
|
158
|
+
collectTarget.collectedCommands.push(this.root._opts.collect(collectArgs));
|
|
113
159
|
}
|
|
114
160
|
}
|
|
115
161
|
error(code) {
|
package/dist/walker/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/walker/args.ts"],"names":[],"mappings":";;;AAEA,mCAA8E;AAC9E,mCAA+B;
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/walker/args.ts"],"names":[],"mappings":"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"}
|
package/dist/walker/parse.js
CHANGED
|
@@ -11,7 +11,10 @@ function createOrUseArgs(from, newArgs) {
|
|
|
11
11
|
if (newArgs instanceof args_1.ArgsClass) {
|
|
12
12
|
return newArgs;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
const x = from.create(newArgs);
|
|
15
|
+
// x.collectedCommands = from.collectedCommands
|
|
16
|
+
// x.fromBackTrack = from.fromBackTrack
|
|
17
|
+
return x;
|
|
15
18
|
}
|
|
16
19
|
async function parseKey(from, key, parser) {
|
|
17
20
|
const keyArgs = new args_1.ArgsClass({
|
|
@@ -19,6 +22,7 @@ async function parseKey(from, key, parser) {
|
|
|
19
22
|
value: from.value[key],
|
|
20
23
|
fieldSchema: from.fieldSchema,
|
|
21
24
|
}, from);
|
|
25
|
+
// if same
|
|
22
26
|
const newArgs = createOrUseArgs(keyArgs, await parser(keyArgs));
|
|
23
27
|
if (newArgs) {
|
|
24
28
|
return newArgs.parse();
|
|
@@ -57,6 +61,7 @@ async function parse(args) {
|
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
await Promise.all(keyQ);
|
|
64
|
+
// schema
|
|
60
65
|
if (args.stopped === undefined) {
|
|
61
66
|
const fieldQ = [];
|
|
62
67
|
if (args.typeSchema && !args.fieldSchema) {
|
|
@@ -101,6 +106,7 @@ async function parse(args) {
|
|
|
101
106
|
}
|
|
102
107
|
await Promise.all(fieldQ);
|
|
103
108
|
}
|
|
109
|
+
// any
|
|
104
110
|
if (args.stopped !== types_1.Stopped.stopAll) {
|
|
105
111
|
const parser = opts.parsers.any || opts.parsers.catch;
|
|
106
112
|
if (parser) {
|
|
@@ -115,6 +121,7 @@ async function parse(args) {
|
|
|
115
121
|
}
|
|
116
122
|
else {
|
|
117
123
|
for (const key in args.value) {
|
|
124
|
+
// console.info(' -> parse field: ', args.path, '->', key)
|
|
118
125
|
if ((!opts.parsers.any && keysHandled.has(key)) || allKeysHandled) {
|
|
119
126
|
continue;
|
|
120
127
|
}
|
|
@@ -124,19 +131,30 @@ async function parse(args) {
|
|
|
124
131
|
await Promise.all(q);
|
|
125
132
|
}
|
|
126
133
|
}
|
|
134
|
+
// console.log(
|
|
135
|
+
// ' OBJECT COMPLETE ------------->',
|
|
136
|
+
// args.id,
|
|
137
|
+
// args.path,
|
|
138
|
+
// 'collected: ',
|
|
139
|
+
// args.collectedCommands,
|
|
140
|
+
// 'backtracked: ',
|
|
141
|
+
// args.fromBackTrack
|
|
142
|
+
// )
|
|
127
143
|
if (opts.backtrack &&
|
|
128
144
|
!args.skipCollection &&
|
|
129
145
|
(args.fromBackTrack.length || args.collectedCommands.length)) {
|
|
130
146
|
const backtracked = opts.backtrack(args, args.fromBackTrack ?? [], args.collectedCommands ?? []);
|
|
131
|
-
if (backtracked
|
|
132
|
-
|
|
133
|
-
|
|
147
|
+
if (backtracked) {
|
|
148
|
+
const target = args.getBackTrackTarget();
|
|
149
|
+
if (!target.fromBackTrack) {
|
|
150
|
+
target.fromBackTrack = [];
|
|
134
151
|
}
|
|
135
|
-
|
|
152
|
+
target.fromBackTrack.push(backtracked);
|
|
136
153
|
}
|
|
137
154
|
}
|
|
138
155
|
}
|
|
139
156
|
else {
|
|
157
|
+
// more
|
|
140
158
|
if (args.fieldSchema) {
|
|
141
159
|
const fieldParser = getFieldParser(args);
|
|
142
160
|
if (fieldParser) {
|
|
@@ -151,6 +169,13 @@ async function parse(args) {
|
|
|
151
169
|
anyParser(args);
|
|
152
170
|
}
|
|
153
171
|
}
|
|
172
|
+
else {
|
|
173
|
+
// console.info(
|
|
174
|
+
// ' ---->',
|
|
175
|
+
// 'parse non object (no field parser skip)',
|
|
176
|
+
// args.path
|
|
177
|
+
// )
|
|
178
|
+
}
|
|
154
179
|
}
|
|
155
180
|
}
|
|
156
181
|
exports.parse = parse;
|
package/dist/walker/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/walker/parse.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/walker/parse.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/error.ts
CHANGED
package/src/set/fields/index.ts
CHANGED
|
@@ -47,8 +47,8 @@ export const fields: Partial<FieldParsers<BasedSetTarget>> = {
|
|
|
47
47
|
}
|
|
48
48
|
args.collect()
|
|
49
49
|
},
|
|
50
|
-
|
|
51
50
|
json: async (args) => {
|
|
51
|
+
args.stop()
|
|
52
52
|
try {
|
|
53
53
|
const parsedValue = JSON.stringify(args.value)
|
|
54
54
|
args.collect(parsedValue)
|
|
@@ -57,6 +57,7 @@ export const fields: Partial<FieldParsers<BasedSetTarget>> = {
|
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
59
|
enum: async (args) => {
|
|
60
|
+
args.stop()
|
|
60
61
|
const enumValues = args.fieldSchema.enum
|
|
61
62
|
for (let i = 0; i < enumValues.length; i++) {
|
|
62
63
|
if (deepEqual(enumValues[i], args.value)) {
|
package/src/set/index.ts
CHANGED
|
@@ -7,6 +7,33 @@ import { isValidId } from './isValidId'
|
|
|
7
7
|
const opts: Opts<BasedSetTarget> = {
|
|
8
8
|
parsers: {
|
|
9
9
|
keys: {
|
|
10
|
+
$delete: async (args) => {
|
|
11
|
+
if (args.prev === args.root) {
|
|
12
|
+
args.error(ParseError.cannotDeleteNodeFromModify)
|
|
13
|
+
return
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (args.value === true) {
|
|
17
|
+
args.stop()
|
|
18
|
+
args.prev.collect()
|
|
19
|
+
args.prev.stop()
|
|
20
|
+
return
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
$alias: async (args) => {
|
|
24
|
+
if (Array.isArray(args.value)) {
|
|
25
|
+
for (const field of args.value) {
|
|
26
|
+
if (typeof field !== 'string') {
|
|
27
|
+
args.error(ParseError.incorrectFormat)
|
|
28
|
+
return
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return
|
|
32
|
+
}
|
|
33
|
+
if (typeof args.value !== 'string') {
|
|
34
|
+
args.error(ParseError.incorrectFormat)
|
|
35
|
+
}
|
|
36
|
+
},
|
|
10
37
|
$id: async (args) => {
|
|
11
38
|
if (!isValidId(args.schema, args.value)) {
|
|
12
39
|
args.error(ParseError.incorrectFormat)
|
package/src/set/isValidId.ts
CHANGED
package/src/walker/args.ts
CHANGED
|
@@ -3,6 +3,9 @@ import { BasedSchemaType, BasedSchemaFields } from '../types'
|
|
|
3
3
|
import { ArgsOpts, Path, Opts, Stopped, ErrorHandler, Collect } from './types'
|
|
4
4
|
import { parse } from './parse'
|
|
5
5
|
import { ParseError } from '../error'
|
|
6
|
+
import { deepEqual } from '@saulx/utils'
|
|
7
|
+
|
|
8
|
+
let id = 0
|
|
6
9
|
|
|
7
10
|
export class ArgsClass<
|
|
8
11
|
T,
|
|
@@ -10,6 +13,8 @@ export class ArgsClass<
|
|
|
10
13
|
> {
|
|
11
14
|
errors: any[]
|
|
12
15
|
|
|
16
|
+
id: number
|
|
17
|
+
|
|
13
18
|
prev: ArgsClass<T, K>
|
|
14
19
|
|
|
15
20
|
root: ArgsClass<T, K> // getter
|
|
@@ -42,6 +47,7 @@ export class ArgsClass<
|
|
|
42
47
|
collectedCommands: any[]
|
|
43
48
|
|
|
44
49
|
constructor(opts: ArgsOpts<T, K>, prev?: ArgsClass<T, K>) {
|
|
50
|
+
this.id = ++id
|
|
45
51
|
this.fromBackTrack = []
|
|
46
52
|
this.collectedCommands = []
|
|
47
53
|
if (opts.prev) {
|
|
@@ -60,6 +66,9 @@ export class ArgsClass<
|
|
|
60
66
|
} else if (prev && opts.key !== undefined) {
|
|
61
67
|
this.path = [...prev.path, opts.key]
|
|
62
68
|
} else if (opts && prev) {
|
|
69
|
+
// this.collectedCommands = prev.collectedCommands
|
|
70
|
+
// this.fromBackTrack = prev.fromBackTrack
|
|
71
|
+
|
|
63
72
|
this.path = prev.path
|
|
64
73
|
} else {
|
|
65
74
|
this.path = []
|
|
@@ -132,6 +141,9 @@ export class ArgsClass<
|
|
|
132
141
|
return parse(this)
|
|
133
142
|
} else {
|
|
134
143
|
const newArgs = new ArgsClass(opts, this)
|
|
144
|
+
if (newArgs.value === undefined) {
|
|
145
|
+
newArgs.value = this.value
|
|
146
|
+
}
|
|
135
147
|
if (this._collectOverride) {
|
|
136
148
|
newArgs._collectOverride = this._collectOverride
|
|
137
149
|
}
|
|
@@ -139,6 +151,45 @@ export class ArgsClass<
|
|
|
139
151
|
}
|
|
140
152
|
}
|
|
141
153
|
|
|
154
|
+
getTopPaths(): Path[] {
|
|
155
|
+
let argPath = []
|
|
156
|
+
let p = this
|
|
157
|
+
while (p) {
|
|
158
|
+
argPath.unshift({ path: p.path, id: p.id })
|
|
159
|
+
// @ts-ignore
|
|
160
|
+
p = p.prev
|
|
161
|
+
}
|
|
162
|
+
return argPath
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
getBackTrackTarget(): ArgsClass<T> {
|
|
166
|
+
let p: ArgsClass<T> = this
|
|
167
|
+
while (p) {
|
|
168
|
+
if (p.prev) {
|
|
169
|
+
if (deepEqual(p.prev.path, p.path)) {
|
|
170
|
+
p = p.prev
|
|
171
|
+
} else {
|
|
172
|
+
p = p.prev
|
|
173
|
+
break
|
|
174
|
+
}
|
|
175
|
+
} else {
|
|
176
|
+
break
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// console.log(
|
|
181
|
+
// 'SELECTED TARGET',
|
|
182
|
+
// p && p.id,
|
|
183
|
+
// p && p.path,
|
|
184
|
+
// p && p.getTopPaths(),
|
|
185
|
+
// 'END'
|
|
186
|
+
// )
|
|
187
|
+
|
|
188
|
+
return p
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
getCollectTarget() {}
|
|
192
|
+
|
|
142
193
|
collect(value?: any) {
|
|
143
194
|
if (this.skipCollection) {
|
|
144
195
|
return
|
|
@@ -146,10 +197,13 @@ export class ArgsClass<
|
|
|
146
197
|
const collectArgs =
|
|
147
198
|
value !== undefined ? new ArgsClass({ value }, this) : this
|
|
148
199
|
|
|
200
|
+
// this is prob still wrong
|
|
201
|
+
let collectTarget = this.prev
|
|
202
|
+
|
|
149
203
|
if (this._collectOverride) {
|
|
150
|
-
|
|
204
|
+
collectTarget.collectedCommands.push(this._collectOverride(collectArgs))
|
|
151
205
|
} else {
|
|
152
|
-
|
|
206
|
+
collectTarget.collectedCommands.push(this.root._opts.collect(collectArgs))
|
|
153
207
|
}
|
|
154
208
|
}
|
|
155
209
|
|
package/src/walker/parse.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { deepEqual } from '@saulx/utils'
|
|
1
2
|
import {
|
|
2
3
|
BasedSchemaField,
|
|
3
4
|
BasedSchemaFieldObject,
|
|
@@ -20,7 +21,13 @@ function createOrUseArgs<T>(
|
|
|
20
21
|
if (newArgs instanceof ArgsClass) {
|
|
21
22
|
return newArgs
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
+
|
|
25
|
+
const x = from.create(newArgs)
|
|
26
|
+
|
|
27
|
+
// x.collectedCommands = from.collectedCommands
|
|
28
|
+
// x.fromBackTrack = from.fromBackTrack
|
|
29
|
+
|
|
30
|
+
return x
|
|
24
31
|
}
|
|
25
32
|
|
|
26
33
|
async function parseKey<T>(
|
|
@@ -36,7 +43,11 @@ async function parseKey<T>(
|
|
|
36
43
|
},
|
|
37
44
|
from
|
|
38
45
|
)
|
|
46
|
+
|
|
47
|
+
// if same
|
|
48
|
+
|
|
39
49
|
const newArgs = createOrUseArgs(keyArgs, await parser(keyArgs))
|
|
50
|
+
|
|
40
51
|
if (newArgs) {
|
|
41
52
|
return newArgs.parse()
|
|
42
53
|
}
|
|
@@ -93,6 +104,7 @@ export async function parse<T>(
|
|
|
93
104
|
}
|
|
94
105
|
await Promise.all(keyQ)
|
|
95
106
|
|
|
107
|
+
// schema
|
|
96
108
|
if (args.stopped === undefined) {
|
|
97
109
|
const fieldQ: Promise<ParseResult<T>>[] = []
|
|
98
110
|
if (args.typeSchema && !args.fieldSchema) {
|
|
@@ -135,6 +147,7 @@ export async function parse<T>(
|
|
|
135
147
|
await Promise.all(fieldQ)
|
|
136
148
|
}
|
|
137
149
|
|
|
150
|
+
// any
|
|
138
151
|
if (args.stopped !== Stopped.stopAll) {
|
|
139
152
|
const parser = opts.parsers.any || opts.parsers.catch
|
|
140
153
|
if (parser) {
|
|
@@ -148,6 +161,7 @@ export async function parse<T>(
|
|
|
148
161
|
}
|
|
149
162
|
} else {
|
|
150
163
|
for (const key in args.value) {
|
|
164
|
+
// console.info(' -> parse field: ', args.path, '->', key)
|
|
151
165
|
if ((!opts.parsers.any && keysHandled.has(key)) || allKeysHandled) {
|
|
152
166
|
continue
|
|
153
167
|
}
|
|
@@ -158,6 +172,16 @@ export async function parse<T>(
|
|
|
158
172
|
}
|
|
159
173
|
}
|
|
160
174
|
|
|
175
|
+
// console.log(
|
|
176
|
+
// ' OBJECT COMPLETE ------------->',
|
|
177
|
+
// args.id,
|
|
178
|
+
// args.path,
|
|
179
|
+
// 'collected: ',
|
|
180
|
+
// args.collectedCommands,
|
|
181
|
+
// 'backtracked: ',
|
|
182
|
+
// args.fromBackTrack
|
|
183
|
+
// )
|
|
184
|
+
|
|
161
185
|
if (
|
|
162
186
|
opts.backtrack &&
|
|
163
187
|
!args.skipCollection &&
|
|
@@ -168,14 +192,16 @@ export async function parse<T>(
|
|
|
168
192
|
args.fromBackTrack ?? [],
|
|
169
193
|
args.collectedCommands ?? []
|
|
170
194
|
)
|
|
171
|
-
if (backtracked
|
|
172
|
-
|
|
173
|
-
|
|
195
|
+
if (backtracked) {
|
|
196
|
+
const target = args.getBackTrackTarget()
|
|
197
|
+
if (!target.fromBackTrack) {
|
|
198
|
+
target.fromBackTrack = []
|
|
174
199
|
}
|
|
175
|
-
|
|
200
|
+
target.fromBackTrack.push(backtracked)
|
|
176
201
|
}
|
|
177
202
|
}
|
|
178
203
|
} else {
|
|
204
|
+
// more
|
|
179
205
|
if (args.fieldSchema) {
|
|
180
206
|
const fieldParser = getFieldParser(args)
|
|
181
207
|
if (fieldParser) {
|
|
@@ -188,6 +214,12 @@ export async function parse<T>(
|
|
|
188
214
|
const anyParser = opts.parsers.any || opts.parsers.catch
|
|
189
215
|
anyParser(args)
|
|
190
216
|
}
|
|
217
|
+
} else {
|
|
218
|
+
// console.info(
|
|
219
|
+
// ' ---->',
|
|
220
|
+
// 'parse non object (no field parser skip)',
|
|
221
|
+
// args.path
|
|
222
|
+
// )
|
|
191
223
|
}
|
|
192
224
|
}
|
|
193
225
|
}
|