@based/schema 1.0.7 → 1.0.8
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/set/fields/array.js +3 -3
- package/dist/set/fields/array.js.map +1 -1
- package/dist/walker/parse.d.ts +1 -0
- package/dist/walker/parse.js +5 -5
- package/package.json +1 -1
- package/src/set/fields/array.ts +3 -3
- package/src/walker/parse.ts +6 -6
- package/test/walker.ts +44 -16
package/dist/set/fields/array.js
CHANGED
|
@@ -12,8 +12,8 @@ const parseArray = async (args, value) => {
|
|
|
12
12
|
path: [i],
|
|
13
13
|
value: fromValue[i],
|
|
14
14
|
fieldSchema: args.fieldSchema.values,
|
|
15
|
-
collect: (args
|
|
16
|
-
(0, utils_1.setByPath)(arr, args.path,
|
|
15
|
+
collect: (args) => {
|
|
16
|
+
(0, utils_1.setByPath)(arr, args.path, args.value);
|
|
17
17
|
},
|
|
18
18
|
}));
|
|
19
19
|
}
|
|
@@ -35,7 +35,7 @@ const operations = {
|
|
|
35
35
|
args.collect(value);
|
|
36
36
|
},
|
|
37
37
|
$unshift: async (args, value) => {
|
|
38
|
-
value.$unshift = await parseArray(args, value.$
|
|
38
|
+
value.$unshift = await parseArray(args, value.$unshift);
|
|
39
39
|
args.collect(value);
|
|
40
40
|
},
|
|
41
41
|
$remove: async (args, value) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/set/fields/array.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,uCAAwC;AAIxC,MAAM,UAAU,GAAG,KAAK,EACtB,IAAwC,EACxC,KAAU,EACM,EAAE;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACxD,MAAM,CAAC,GAAmB,EAAE,CAAA;IAC5B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,CAAC,CAAC,IAAI,CACJ,IAAI,CAAC,KAAK,CAAC;YACT,IAAI,EAAE,CAAC,CAAC,CAAC;YACT,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;YACpC,OAAO,EAAE,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/set/fields/array.ts"],"names":[],"mappings":"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"}
|
package/dist/walker/parse.d.ts
CHANGED
package/dist/walker/parse.js
CHANGED
|
@@ -127,12 +127,12 @@ async function parse(args) {
|
|
|
127
127
|
if (opts.backtrack &&
|
|
128
128
|
!args.skipCollection &&
|
|
129
129
|
(args.fromBackTrack.length || args.collectedCommands.length)) {
|
|
130
|
-
const backtracked = opts.backtrack(
|
|
131
|
-
if (backtracked &&
|
|
132
|
-
if (!
|
|
133
|
-
|
|
130
|
+
const backtracked = opts.backtrack(args, args.fromBackTrack ?? [], args.collectedCommands ?? []);
|
|
131
|
+
if (backtracked && args.prev) {
|
|
132
|
+
if (!args.prev.fromBackTrack) {
|
|
133
|
+
args.prev.fromBackTrack = [];
|
|
134
134
|
}
|
|
135
|
-
|
|
135
|
+
args.prev.fromBackTrack.push(backtracked);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
}
|
package/package.json
CHANGED
package/src/set/fields/array.ts
CHANGED
|
@@ -16,8 +16,8 @@ const parseArray = async (
|
|
|
16
16
|
path: [i],
|
|
17
17
|
value: fromValue[i],
|
|
18
18
|
fieldSchema: args.fieldSchema.values,
|
|
19
|
-
collect: (args
|
|
20
|
-
setByPath(arr, args.path,
|
|
19
|
+
collect: (args) => {
|
|
20
|
+
setByPath(arr, args.path, args.value)
|
|
21
21
|
},
|
|
22
22
|
})
|
|
23
23
|
)
|
|
@@ -48,7 +48,7 @@ const operations: {
|
|
|
48
48
|
args.collect(value)
|
|
49
49
|
},
|
|
50
50
|
$unshift: async (args, value) => {
|
|
51
|
-
value.$unshift = await parseArray(args, value.$
|
|
51
|
+
value.$unshift = await parseArray(args, value.$unshift)
|
|
52
52
|
args.collect(value)
|
|
53
53
|
},
|
|
54
54
|
$remove: async (args, value) => {
|
package/src/walker/parse.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import { ArgsClass } from './args'
|
|
8
8
|
import { ArgsOpts, FieldParser, KeyParser, Stopped } from './types'
|
|
9
9
|
|
|
10
|
-
type ParseResult<T> = ArgsClass<T> | void
|
|
10
|
+
export type ParseResult<T> = ArgsClass<T> | void
|
|
11
11
|
|
|
12
12
|
// TODO needs cleaning
|
|
13
13
|
function createOrUseArgs<T>(
|
|
@@ -164,15 +164,15 @@ export async function parse<T>(
|
|
|
164
164
|
(args.fromBackTrack.length || args.collectedCommands.length)
|
|
165
165
|
) {
|
|
166
166
|
const backtracked = opts.backtrack(
|
|
167
|
-
|
|
167
|
+
args,
|
|
168
168
|
args.fromBackTrack ?? [],
|
|
169
169
|
args.collectedCommands ?? []
|
|
170
170
|
)
|
|
171
|
-
if (backtracked &&
|
|
172
|
-
if (!
|
|
173
|
-
|
|
171
|
+
if (backtracked && args.prev) {
|
|
172
|
+
if (!args.prev.fromBackTrack) {
|
|
173
|
+
args.prev.fromBackTrack = []
|
|
174
174
|
}
|
|
175
|
-
|
|
175
|
+
args.prev.fromBackTrack.push(backtracked)
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
} else {
|
package/test/walker.ts
CHANGED
|
@@ -85,31 +85,23 @@ const schema: BasedSchema = {
|
|
|
85
85
|
},
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
test('walker', async (t) => {
|
|
89
|
-
const x = await walk(
|
|
88
|
+
test.only('walker', async (t) => {
|
|
89
|
+
const x = await walk<{ lullz: true }>(
|
|
90
90
|
schema,
|
|
91
91
|
{
|
|
92
|
-
init: async (
|
|
93
|
-
return {
|
|
92
|
+
init: async () => {
|
|
93
|
+
return { target: { lullz: true } }
|
|
94
94
|
},
|
|
95
95
|
parsers: {
|
|
96
|
-
keys: {
|
|
97
|
-
|
|
98
|
-
// return {
|
|
99
|
-
// ...args,
|
|
100
|
-
// value: { flapdrol: true },
|
|
101
|
-
// }
|
|
102
|
-
// },
|
|
103
|
-
},
|
|
104
|
-
fields: {
|
|
105
|
-
// string: () => {}
|
|
106
|
-
},
|
|
96
|
+
keys: {},
|
|
97
|
+
fields: {},
|
|
107
98
|
any: async (args) => {
|
|
108
99
|
args.collect(args)
|
|
109
100
|
return args
|
|
110
101
|
},
|
|
111
102
|
},
|
|
112
103
|
collect: (args) => {
|
|
104
|
+
console.info('..', args.path)
|
|
113
105
|
return args.path.join('.')
|
|
114
106
|
},
|
|
115
107
|
backtrack: (args, fromBt, collected) => {
|
|
@@ -275,7 +267,7 @@ test('perf setWalker', async (t) => {
|
|
|
275
267
|
t.true(d < 1e3)
|
|
276
268
|
})
|
|
277
269
|
|
|
278
|
-
test
|
|
270
|
+
test('string', async (t) => {
|
|
279
271
|
// for (let i = 0; i < 10; i++) {
|
|
280
272
|
// console.log(
|
|
281
273
|
// (await setWalker(schema, { $id: 'bl120', name: 'blax' })).target
|
|
@@ -682,5 +674,41 @@ test.only('string', async (t) => {
|
|
|
682
674
|
{ depth: 10 }
|
|
683
675
|
)
|
|
684
676
|
|
|
677
|
+
console.info('---- doink 27 ------')
|
|
678
|
+
r = await setWalker(schema, {
|
|
679
|
+
$id: 'bl120',
|
|
680
|
+
intarray: {
|
|
681
|
+
$push: [1, 2, 3, 4, 5],
|
|
682
|
+
},
|
|
683
|
+
})
|
|
684
|
+
|
|
685
|
+
r.collected.forEach((v) => {
|
|
686
|
+
console.info(v.root.typeSchema)
|
|
687
|
+
})
|
|
688
|
+
|
|
689
|
+
console.log(r.errors)
|
|
690
|
+
console.dir(
|
|
691
|
+
r.collected.map((v) => ({ path: v.path, value: v.value })),
|
|
692
|
+
{ depth: 10 }
|
|
693
|
+
)
|
|
694
|
+
|
|
695
|
+
console.info('---- doink 28 ------')
|
|
696
|
+
r = await setWalker(schema, {
|
|
697
|
+
$id: 'bl120',
|
|
698
|
+
intarray: {
|
|
699
|
+
$unshift: [1, 2, 3, 4, 5],
|
|
700
|
+
},
|
|
701
|
+
})
|
|
702
|
+
|
|
703
|
+
r.collected.forEach((v) => {
|
|
704
|
+
console.info(v.root.typeSchema)
|
|
705
|
+
})
|
|
706
|
+
|
|
707
|
+
console.log(r.errors)
|
|
708
|
+
console.dir(
|
|
709
|
+
r.collected.map((v) => ({ path: v.path, value: v.value })),
|
|
710
|
+
{ depth: 10 }
|
|
711
|
+
)
|
|
712
|
+
|
|
685
713
|
t.true(true)
|
|
686
714
|
})
|