aontu 0.41.0 → 0.43.0
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/ctx.d.ts +5 -2
- package/dist/ctx.js +2 -1
- package/dist/ctx.js.map +1 -1
- package/dist/lang.d.ts +5 -1
- package/dist/lang.js +100 -24
- package/dist/lang.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +5 -0
- package/dist/type.js.map +1 -1
- package/dist/unify.js +292 -13
- package/dist/unify.js.map +1 -1
- package/dist/utility.js +6 -2
- package/dist/utility.js.map +1 -1
- package/dist/val/BagVal.d.ts +0 -3
- package/dist/val/BagVal.js +6 -6
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/ConjunctVal.d.ts +1 -1
- package/dist/val/ConjunctVal.js +137 -14
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/CopyFuncVal.js +3 -2
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/DisjunctVal.js +4 -0
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/ExpectVal.js +16 -3
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/JunctionVal.d.ts +1 -0
- package/dist/val/JunctionVal.js +6 -1
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.js +0 -2
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.d.ts +1 -0
- package/dist/val/ListVal.js +33 -66
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/MapVal.d.ts +3 -2
- package/dist/val/MapVal.js +67 -95
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MoveFuncVal.d.ts +2 -1
- package/dist/val/MoveFuncVal.js +78 -13
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/PathFuncVal.js +25 -4
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/{RefVal.d.ts → PathVal.d.ts} +4 -3
- package/dist/val/{RefVal.js → PathVal.js} +75 -77
- package/dist/val/PathVal.js.map +1 -0
- package/dist/val/PlusOpVal.d.ts +1 -1
- package/dist/val/PrefVal.js +18 -5
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/SpreadVal.d.ts +20 -0
- package/dist/val/SpreadVal.js +194 -0
- package/dist/val/SpreadVal.js.map +1 -0
- package/dist/val/Val.d.ts +2 -1
- package/dist/val/Val.js +7 -8
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js +2 -2
- package/dist/val/VarVal.js.map +1 -1
- package/package.json +5 -6
- package/src/ctx.ts +16 -3
- package/src/lang.ts +113 -23
- package/src/type.ts +5 -0
- package/src/unify.ts +310 -13
- package/src/utility.ts +5 -2
- package/src/val/BagVal.ts +6 -7
- package/src/val/ConjunctVal.ts +131 -13
- package/src/val/CopyFuncVal.ts +3 -2
- package/src/val/DisjunctVal.ts +6 -0
- package/src/val/ExpectVal.ts +18 -4
- package/src/val/JunctionVal.ts +5 -1
- package/src/val/KeyFuncVal.ts +0 -3
- package/src/val/ListVal.ts +38 -88
- package/src/val/MapVal.ts +75 -124
- package/src/val/MoveFuncVal.ts +79 -14
- package/src/val/PathFuncVal.ts +29 -4
- package/src/val/PathVal.ts +435 -0
- package/src/val/PrefVal.ts +19 -6
- package/src/val/{RefVal.ts → RefVal.ts.old} +30 -19
- package/src/val/SpreadVal.ts +275 -0
- package/src/val/Val.ts +9 -9
- package/src/val/VarVal.ts +2 -2
- package/dist/val/RefVal.js.map +0 -1
package/dist/val/Val.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Val.js","sourceRoot":"","sources":["../../src/val/Val.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;;;;;;;;;;;;;AA+bvD,sBAAK;AA7bP,yCAAmC;AAInC,kCAEgB;AAqChB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAA;AA+Yb,oBAAI;AA7YN,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AA8Y7B,wBAAM;AA5YR,yDAAyD;AACzD,4EAA4E;AAC5E,wEAAwE;AACxE,6CAA6C;AAC7C,MAAM,SAAS,GAAU,MAAM,CAAC,MAAM,CAAC,EAAE,CAAqB,CAAA;AAyY5D,8BAAS;AAtYX,IAAI,EAAE,GAAG,IAAI,CAAA;AAGb,MAAe,GAAG;
|
|
1
|
+
{"version":3,"file":"Val.js","sourceRoot":"","sources":["../../src/val/Val.ts"],"names":[],"mappings":"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"}
|
package/dist/val/VarVal.js
CHANGED
|
@@ -24,7 +24,7 @@ class VarVal extends FeatureVal_1.FeatureVal {
|
|
|
24
24
|
if (this.peg.isVal) {
|
|
25
25
|
// $.a.b.c - convert path to absolute
|
|
26
26
|
// if (this.peg instanceof RefVal) {
|
|
27
|
-
if (this.peg.
|
|
27
|
+
if (this.peg.isPath) {
|
|
28
28
|
this.peg.absolute = true;
|
|
29
29
|
nameVal = this.peg;
|
|
30
30
|
}
|
|
@@ -37,7 +37,7 @@ class VarVal extends FeatureVal_1.FeatureVal {
|
|
|
37
37
|
nameVal = new StringVal_1.StringVal({ peg: '' + this.peg }, ctx);
|
|
38
38
|
}
|
|
39
39
|
// if (!(nameVal instanceof RefVal) && DONE === nameVal.dc) {
|
|
40
|
-
if (!(nameVal.
|
|
40
|
+
if (!(nameVal.isPath) && type_1.DONE === nameVal.dc) {
|
|
41
41
|
if (nameVal instanceof StringVal_1.StringVal) {
|
|
42
42
|
let found = ctx.vars[nameVal.peg];
|
|
43
43
|
if (undefined === found) {
|
package/dist/val/VarVal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VarVal.js","sourceRoot":"","sources":["../../src/val/VarVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AASzD,kCAEgB;AAEhB,gCAIe;AAQf,2CAAuC;AAEvC,6CAAyC;AACzC,uCAAmC;AACnC,6CAAyC;AACzC,2CAAuC;AACvC,6CAAyC;AAGzC,wCAImB;AAGnB,qDAAqD;AAErD,MAAM,MAAO,SAAQ,uBAAU;IAG7B,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,UAAK,GAAG,IAAI,CAAA;IAOZ,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE1E,IAAI,GAAQ,CAAA;QAEZ,IAAI,OAAO,CAAA;QAEX,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACnB,qCAAqC;YACrC,oCAAoC;YACpC,IAAI,IAAI,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"VarVal.js","sourceRoot":"","sources":["../../src/val/VarVal.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aontu",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.0",
|
|
4
4
|
"main": "dist/aontu.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/aontu.d.ts",
|
|
@@ -36,11 +36,10 @@
|
|
|
36
36
|
"LICENSE"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@jsonic/
|
|
40
|
-
"@jsonic/
|
|
41
|
-
"@jsonic/
|
|
42
|
-
"
|
|
43
|
-
"jsonic": "2.27.0"
|
|
39
|
+
"@jsonic/expr": "2.2.0",
|
|
40
|
+
"@jsonic/multisource": "2.7.0",
|
|
41
|
+
"@jsonic/path": "2.1.0",
|
|
42
|
+
"jsonic": "2.28.0"
|
|
44
43
|
},
|
|
45
44
|
"devDependencies": {
|
|
46
45
|
"@types/node": "25.6.0",
|
package/src/ctx.ts
CHANGED
|
@@ -24,7 +24,7 @@ type AontuContextConfig = {
|
|
|
24
24
|
fs?: any
|
|
25
25
|
path?: string[]
|
|
26
26
|
root?: Val
|
|
27
|
-
seen?:
|
|
27
|
+
seen?: Map<string, number>
|
|
28
28
|
seenI?: number
|
|
29
29
|
src?: string
|
|
30
30
|
srcpath?: string
|
|
@@ -41,12 +41,14 @@ class AontuContext {
|
|
|
41
41
|
path: string[] // Path to current Val.
|
|
42
42
|
vc: number // Val counter to create unique val ids.
|
|
43
43
|
cc: number = -1
|
|
44
|
+
sc: number = 0 // Unresolved spread count
|
|
45
|
+
|
|
44
46
|
vars: Record<string, Val> = {}
|
|
45
47
|
src?: string
|
|
46
48
|
fs?: FST
|
|
47
49
|
|
|
48
50
|
seenI: number
|
|
49
|
-
seen:
|
|
51
|
+
seen: Map<string, number>
|
|
50
52
|
|
|
51
53
|
collect: boolean
|
|
52
54
|
|
|
@@ -87,6 +89,17 @@ class AontuContext {
|
|
|
87
89
|
// cached child is safe to reuse.
|
|
88
90
|
_childCache?: Map<string, AontuContext>
|
|
89
91
|
|
|
92
|
+
// Per-iteration cache for PathVal.find() clone results.
|
|
93
|
+
// Key: "pathId|targetId" — avoids repeated deep-clone + walk for
|
|
94
|
+
// the same (path, resolved-target) pair within one fixpoint pass.
|
|
95
|
+
// Cleared at the start of each iteration (alongside `seen`).
|
|
96
|
+
_refCloneCache?: Map<string, Val>
|
|
97
|
+
|
|
98
|
+
// Per-iteration cache for unite() results when both operands are
|
|
99
|
+
// done. Key: "aId|bId". Cleared per fixpoint iteration.
|
|
100
|
+
_uniteCache?: Map<string, Val>
|
|
101
|
+
|
|
102
|
+
|
|
90
103
|
|
|
91
104
|
constructor(cfg: AontuContextConfig) {
|
|
92
105
|
this.root = cfg.root
|
|
@@ -107,7 +120,7 @@ class AontuContext {
|
|
|
107
120
|
|
|
108
121
|
this.vars = cfg.vars ?? this.vars
|
|
109
122
|
this.seenI = cfg.seenI ?? 0
|
|
110
|
-
this.seen = cfg.seen ??
|
|
123
|
+
this.seen = cfg.seen ?? new Map()
|
|
111
124
|
|
|
112
125
|
this.srcpath = cfg.srcpath ?? undefined
|
|
113
126
|
|
package/src/lang.ts
CHANGED
|
@@ -25,6 +25,10 @@ import {
|
|
|
25
25
|
makeFileResolver
|
|
26
26
|
} from '@jsonic/multisource/resolver/file'
|
|
27
27
|
|
|
28
|
+
import {
|
|
29
|
+
preloadFiles
|
|
30
|
+
} from '@jsonic/multisource'
|
|
31
|
+
|
|
28
32
|
import {
|
|
29
33
|
makePkgResolver
|
|
30
34
|
} from '@jsonic/multisource/resolver/pkg'
|
|
@@ -75,7 +79,8 @@ import { NilVal } from './val/NilVal'
|
|
|
75
79
|
import { NullVal } from './val/NullVal'
|
|
76
80
|
import { NumberVal } from './val/NumberVal'
|
|
77
81
|
import { PrefVal } from './val/PrefVal'
|
|
78
|
-
import {
|
|
82
|
+
import { PathVal } from './val/PathVal'
|
|
83
|
+
// RefVal replaced by PathVal — see RefVal.ts.old
|
|
79
84
|
import { StringVal } from './val/StringVal'
|
|
80
85
|
import { VarVal } from './val/VarVal'
|
|
81
86
|
import { PlusOpVal } from './val/PlusOpVal'
|
|
@@ -91,6 +96,7 @@ import { PrefFuncVal } from './val/PrefFuncVal'
|
|
|
91
96
|
import { CloseFuncVal } from './val/CloseFuncVal'
|
|
92
97
|
import { OpenFuncVal } from './val/OpenFuncVal'
|
|
93
98
|
import { SuperFuncVal } from './val/SuperFuncVal'
|
|
99
|
+
import { SpreadVal } from './val/SpreadVal'
|
|
94
100
|
|
|
95
101
|
|
|
96
102
|
let AontuJsonic: Plugin = function AontuLang(jsonic: Jsonic) {
|
|
@@ -110,6 +116,17 @@ let AontuJsonic: Plugin = function AontuLang(jsonic: Jsonic) {
|
|
|
110
116
|
}
|
|
111
117
|
|
|
112
118
|
|
|
119
|
+
// Helper: create a SpreadVal from the raw SPREAD symbol data.
|
|
120
|
+
function makeSpreadVal(rawSpread: any): SpreadVal {
|
|
121
|
+
const constraint = Array.isArray(rawSpread.v)
|
|
122
|
+
? (rawSpread.v.length > 1
|
|
123
|
+
? new ConjunctVal({ peg: rawSpread.v })
|
|
124
|
+
: rawSpread.v[0])
|
|
125
|
+
: rawSpread.v
|
|
126
|
+
return new SpreadVal({ peg: constraint })
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
|
|
113
130
|
jsonic.options({
|
|
114
131
|
hint: {
|
|
115
132
|
unknown: `
|
|
@@ -223,12 +240,25 @@ help isolate the syntax error.`,
|
|
|
223
240
|
addsite(new DisjunctVal({ peg: terms }), r, ctx),
|
|
224
241
|
|
|
225
242
|
'dot-prefix': (r: Rule, ctx: JsonicContext, _op: Op, terms: any) => {
|
|
226
|
-
|
|
243
|
+
const pv = addsite(new PathVal({ peg: terms, prefix: true }), r, ctx)
|
|
244
|
+
if (ctx.meta.paths) { ctx.meta.paths.push(pv) }
|
|
245
|
+
return pv
|
|
227
246
|
},
|
|
228
247
|
|
|
229
248
|
'dot-infix': (r: Rule, ctx: JsonicContext, _op: Op, terms: any) => {
|
|
230
|
-
|
|
231
|
-
|
|
249
|
+
const paths = ctx.meta.paths
|
|
250
|
+
if (paths) {
|
|
251
|
+
// Remove consumed intermediates
|
|
252
|
+
for (const t of terms) {
|
|
253
|
+
if (t instanceof PathVal) {
|
|
254
|
+
const idx = paths.indexOf(t)
|
|
255
|
+
if (idx >= 0) paths.splice(idx, 1)
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
const pv = addsite(new PathVal({ peg: terms }), r, ctx)
|
|
260
|
+
if (paths) { paths.push(pv) }
|
|
261
|
+
return pv
|
|
232
262
|
},
|
|
233
263
|
|
|
234
264
|
'star-prefix': (r: Rule, ctx: JsonicContext, _op: Op, terms: any) =>
|
|
@@ -236,7 +266,7 @@ help isolate the syntax error.`,
|
|
|
236
266
|
|
|
237
267
|
'dollar-prefix': (r: Rule, ctx: JsonicContext, _op: Op, terms: any) => {
|
|
238
268
|
// $.a.b absolute path
|
|
239
|
-
if (terms[0] instanceof
|
|
269
|
+
if (terms[0] instanceof PathVal) {
|
|
240
270
|
terms[0].absolute = true
|
|
241
271
|
return terms[0]
|
|
242
272
|
}
|
|
@@ -271,6 +301,9 @@ help isolate the syntax error.`,
|
|
|
271
301
|
})
|
|
272
302
|
}
|
|
273
303
|
const out = addsite(val, r, ctx)
|
|
304
|
+
if (out.isKeyFunc && ctx.meta.keys) {
|
|
305
|
+
ctx.meta.keys.push(out)
|
|
306
|
+
}
|
|
274
307
|
return out
|
|
275
308
|
},
|
|
276
309
|
}
|
|
@@ -281,11 +314,11 @@ help isolate the syntax error.`,
|
|
|
281
314
|
op: {
|
|
282
315
|
// disjunct < conjunct: c & b | a -> (c & b) | a
|
|
283
316
|
'conjunct': {
|
|
284
|
-
infix: true, src: '&', left: 16_000_000, right: 17_000_000
|
|
317
|
+
infix: true, src: '&', left: 16_000_000, right: 17_000_000,
|
|
285
318
|
},
|
|
286
319
|
|
|
287
320
|
'disjunct': {
|
|
288
|
-
infix: true, src: '|', left: 14_000_000, right: 15_000_000
|
|
321
|
+
infix: true, src: '|', left: 14_000_000, right: 15_000_000,
|
|
289
322
|
},
|
|
290
323
|
|
|
291
324
|
'plus-infix': {
|
|
@@ -324,7 +357,6 @@ help isolate the syntax error.`,
|
|
|
324
357
|
paren: true,
|
|
325
358
|
preval: {
|
|
326
359
|
active: true,
|
|
327
|
-
// allow: ['floor'], //Object.keys(funcMap)
|
|
328
360
|
},
|
|
329
361
|
osrc: '(',
|
|
330
362
|
csrc: ')',
|
|
@@ -445,26 +477,46 @@ help isolate the syntax error.`,
|
|
|
445
477
|
{ s: [OPTKEY, QM], p: 'pair', b: 2, g: 'pair,list,val,imp,jsonic,aontu-optional' },
|
|
446
478
|
])
|
|
447
479
|
|
|
480
|
+
|
|
448
481
|
.bc((r: Rule, ctx: JsonicContext) => {
|
|
449
482
|
const optionalKeys = r.u.aontu_optional_keys ?? []
|
|
450
483
|
|
|
451
484
|
let mo = r.node
|
|
452
485
|
|
|
486
|
+
// Extract spread constraint before creating MapVal.
|
|
487
|
+
// If a spread exists, wrap: ConjunctVal([MapVal, SpreadVal])
|
|
488
|
+
const rawSpread = (mo as any)[SPREAD]
|
|
489
|
+
if (rawSpread) {
|
|
490
|
+
delete (mo as any)[SPREAD]
|
|
491
|
+
}
|
|
492
|
+
|
|
453
493
|
// Handle defered conjuncts, e.g. `{x:1 @"foo"}`
|
|
454
494
|
if (mo.___merge) {
|
|
455
495
|
let mop = { ...mo }
|
|
456
496
|
delete mop.___merge
|
|
457
497
|
|
|
458
|
-
// TODO: needs addpath?
|
|
459
498
|
let mopv = new MapVal({ peg: mop })
|
|
460
499
|
mopv.optionalKeys = optionalKeys
|
|
461
500
|
|
|
462
|
-
|
|
463
|
-
|
|
501
|
+
let terms = [mopv, ...mo.___merge]
|
|
502
|
+
if (rawSpread && '&' === rawSpread.o) {
|
|
503
|
+
terms.push(makeSpreadVal(rawSpread))
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
r.node = addsite(new ConjunctVal({ peg: terms }), r, ctx)
|
|
464
507
|
}
|
|
465
508
|
else {
|
|
466
|
-
|
|
467
|
-
|
|
509
|
+
let mapVal = new MapVal({ peg: mo })
|
|
510
|
+
mapVal.optionalKeys = optionalKeys
|
|
511
|
+
|
|
512
|
+
if (rawSpread && '&' === rawSpread.o) {
|
|
513
|
+
const spreadVal = makeSpreadVal(rawSpread)
|
|
514
|
+
r.node = addsite(
|
|
515
|
+
new ConjunctVal({ peg: [mapVal, spreadVal] }), r, ctx)
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
r.node = addsite(mapVal, r, ctx)
|
|
519
|
+
}
|
|
468
520
|
}
|
|
469
521
|
|
|
470
522
|
return undefined
|
|
@@ -486,20 +538,39 @@ help isolate the syntax error.`,
|
|
|
486
538
|
|
|
487
539
|
let ao = r.node
|
|
488
540
|
|
|
541
|
+
// Extract spread from list before creating ListVal.
|
|
542
|
+
const rawSpread = (ao as any)[SPREAD]
|
|
543
|
+
if (rawSpread) {
|
|
544
|
+
delete (ao as any)[SPREAD]
|
|
545
|
+
}
|
|
546
|
+
|
|
489
547
|
if (ao.___merge) {
|
|
490
548
|
let aop = [...ao]
|
|
491
549
|
delete (aop as any).___merge
|
|
492
550
|
|
|
493
|
-
// TODO: needs addpath?
|
|
494
551
|
let aopv = new ListVal({ peg: aop })
|
|
495
552
|
aopv.optionalKeys = optionalKeys
|
|
496
553
|
|
|
554
|
+
let terms = [aopv, ...ao.___merge]
|
|
555
|
+
if (rawSpread && '&' === rawSpread.o) {
|
|
556
|
+
terms.push(makeSpreadVal(rawSpread))
|
|
557
|
+
}
|
|
558
|
+
|
|
497
559
|
r.node =
|
|
498
|
-
addsite(new ConjunctVal({ peg:
|
|
560
|
+
addsite(new ConjunctVal({ peg: terms }), r, ctx)
|
|
499
561
|
}
|
|
500
562
|
else {
|
|
501
|
-
|
|
502
|
-
|
|
563
|
+
let listVal = new ListVal({ peg: ao })
|
|
564
|
+
listVal.optionalKeys = optionalKeys
|
|
565
|
+
|
|
566
|
+
if (rawSpread && '&' === rawSpread.o) {
|
|
567
|
+
const spreadVal = makeSpreadVal(rawSpread)
|
|
568
|
+
r.node = addsite(
|
|
569
|
+
new ConjunctVal({ peg: [listVal, spreadVal] }), r, ctx)
|
|
570
|
+
}
|
|
571
|
+
else {
|
|
572
|
+
r.node = addsite(listVal, r, ctx)
|
|
573
|
+
}
|
|
503
574
|
}
|
|
504
575
|
|
|
505
576
|
return undefined
|
|
@@ -555,11 +626,13 @@ help isolate the syntax error.`,
|
|
|
555
626
|
}
|
|
556
627
|
])
|
|
557
628
|
|
|
558
|
-
//
|
|
629
|
+
// Spread children inherit the parent path directly.
|
|
630
|
+
// The path gets adjusted correctly when SpreadVal applies
|
|
631
|
+
// the constraint via spreadClone(keyctx).
|
|
559
632
|
.ao((r) => {
|
|
560
633
|
if (0 < r.d && r.u.spread) {
|
|
561
|
-
r.child.k.path =
|
|
562
|
-
r.child.k.key =
|
|
634
|
+
r.child.k.path = r.k.path
|
|
635
|
+
r.child.k.key = r.k.key
|
|
563
636
|
}
|
|
564
637
|
})
|
|
565
638
|
|
|
@@ -647,10 +720,18 @@ function makeModelResolver(options: any) {
|
|
|
647
720
|
...(options.resolver?.mem || {})
|
|
648
721
|
})
|
|
649
722
|
|
|
650
|
-
|
|
651
|
-
let fileResolver = makeFileResolver((spec: any) => {
|
|
723
|
+
const pathfinder = (spec: any) => {
|
|
652
724
|
return 'string' === typeof spec ? spec : spec?.peg
|
|
653
|
-
}
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
let preload: { [fullpath: string]: string } | undefined
|
|
728
|
+
if (options.preload) {
|
|
729
|
+
preload = preloadFiles(options.preload)
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
let fileResolver = makeFileResolver(
|
|
733
|
+
preload ? { pathfinder, preload } : pathfinder
|
|
734
|
+
)
|
|
654
735
|
|
|
655
736
|
let pkgResolver = makePkgResolver({
|
|
656
737
|
require: useRequire,
|
|
@@ -699,6 +780,8 @@ class Lang {
|
|
|
699
780
|
jsonic: Jsonic
|
|
700
781
|
opts: AontuOptions
|
|
701
782
|
idcount: number | undefined
|
|
783
|
+
paths: PathVal[] = []
|
|
784
|
+
keys: KeyFuncVal[] = []
|
|
702
785
|
|
|
703
786
|
|
|
704
787
|
constructor(options?: Partial<AontuOptions>) {
|
|
@@ -732,9 +815,14 @@ class Lang {
|
|
|
732
815
|
// const start = performance.now()
|
|
733
816
|
|
|
734
817
|
// JSONIC-UPDATE - check meta
|
|
818
|
+
this.paths = []
|
|
819
|
+
this.keys = []
|
|
820
|
+
|
|
735
821
|
let jm: any = {
|
|
736
822
|
fs: opts?.fs,
|
|
737
823
|
fileName: opts?.path ?? this.opts.path,
|
|
824
|
+
paths: this.paths,
|
|
825
|
+
keys: this.keys,
|
|
738
826
|
multisource: {
|
|
739
827
|
path: opts?.path ?? this.opts.path,
|
|
740
828
|
deps: (opts && opts.deps) || undefined
|
|
@@ -779,5 +867,7 @@ class Lang {
|
|
|
779
867
|
|
|
780
868
|
export {
|
|
781
869
|
Lang,
|
|
870
|
+
PathVal,
|
|
871
|
+
KeyFuncVal,
|
|
782
872
|
Site,
|
|
783
873
|
}
|
package/src/type.ts
CHANGED
|
@@ -30,6 +30,11 @@ type AontuOptions = {
|
|
|
30
30
|
collect?: boolean // Collect errors into an errs property, rather than throw them.
|
|
31
31
|
err?: any[]
|
|
32
32
|
explain?: any[]
|
|
33
|
+
preload?: { // Preload files into memory before parsing.
|
|
34
|
+
folders: string[] // Folders to scan.
|
|
35
|
+
ext?: string[] // Extensions (default: ['.jsonic', '.json']).
|
|
36
|
+
recursive?: boolean // Recurse into subfolders (default: false).
|
|
37
|
+
}
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
|