@fncts/schema 0.0.14 → 0.0.15

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.
@@ -1,18 +1,31 @@
1
- const fileName_1 = "(@fncts/schema) src/Parser/interpreter.ts";
2
1
  import * as tsplus_module_1 from "@fncts/schema/Parser/definition";
3
2
  import * as tsplus_module_2 from "@fncts/schema/ParseResult";
4
3
  import * as tsplus_module_3 from "@fncts/base/collection/immutable/Vector/api";
5
4
  import * as tsplus_module_4 from "@fncts/base/data/Maybe/api";
6
- import * as tsplus_module_5 from "@fncts/schema/ParseError";
7
- import * as tsplus_module_6 from "@fncts/base/collection/immutable/Vector/internal";
8
- import * as tsplus_module_7 from "@fncts/base/data/Either/api";
9
- import * as tsplus_module_8 from "@fncts/base/data/Maybe/definition";
10
- import * as tsplus_module_9 from "@fncts/schema/AST";
11
- import * as tsplus_module_10 from "@fncts/base/data/Maybe/constructors";
5
+ import * as tsplus_module_5 from "@fncts/schema/AST";
6
+ import * as tsplus_module_6 from "@fncts/schema/ParseError";
7
+ import * as tsplus_module_7 from "@fncts/base/collection/immutable/Vector/internal";
8
+ import * as tsplus_module_8 from "@fncts/base/data/Either/api";
9
+ import * as tsplus_module_9 from "@fncts/base/data/Maybe/definition";
10
+ import * as tsplus_module_10 from "@fncts/schema/ParseFailure";
11
+ import { globalValue } from "@fncts/base/data/Global";
12
12
  import { isBigInt, isBoolean, isNumber, isObject, isRecord, isString, isSymbol, isUndefined } from "@fncts/base/util/predicates";
13
- import { concrete } from "../AST.mjs";
13
+ import { concrete, getSearchTree } from "../AST.mjs";
14
+ import { RefinementError, TransformationError } from "../ParseError.mjs";
14
15
  import { getKeysForIndexSignature, getTemplateLiteralRegex, memoize, ownKeys } from "../utils.mjs";
15
- const go = /*#__PURE__*/memoize(function go(ast) {
16
+ const decodeMemoMap = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("fncts.schema.Parser.decodeMemoMap"), () => new WeakMap());
17
+ const encodeMemoMap = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("fncts.schema.Parser.encodeMemoMap"), () => new WeakMap());
18
+ function goMemo(ast, isDecoding) {
19
+ const memoMap = isDecoding ? decodeMemoMap : encodeMemoMap;
20
+ const memo = memoMap.get(ast);
21
+ if (memo) {
22
+ return memo;
23
+ }
24
+ const parser = go(ast, isDecoding);
25
+ memoMap.set(ast, parser);
26
+ return parser;
27
+ }
28
+ function go(ast, isDecoding) {
16
29
  void 0;
17
30
  switch (ast._tag) {
18
31
  case 0 /* ASTTag.Declaration */:
@@ -50,52 +63,52 @@ const go = /*#__PURE__*/memoize(function go(ast) {
50
63
  }
51
64
  case 16 /* ASTTag.Tuple */:
52
65
  {
53
- const elements = tsplus_module_3.map(e => go(e.type))(ast.elements);
54
- const rest = tsplus_module_4.map(rest => tsplus_module_3.map(go)(rest))(ast.rest);
66
+ const elements = tsplus_module_3.map(e => goMemo(e.type, isDecoding))(ast.elements);
67
+ const rest = tsplus_module_4.map(rest => tsplus_module_3.map(ast => goMemo(ast, isDecoding))(rest))(ast.rest);
55
68
  return tsplus_module_1.make((input, options) => {
56
69
  if (!Array.isArray(input)) {
57
- return tsplus_module_2.fail(tsplus_module_5.typeError(unknownArray, input));
70
+ return tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.unknownArray, input));
58
71
  }
59
72
  const output = [];
60
73
  const errors = tsplus_module_3.emptyPushable();
61
74
  const allErrors = options?.allErrors;
62
75
  let i = 0;
63
76
  for (; i < elements.length; i++) {
64
- if (input.length < i + i) {
77
+ if (input.length < i + 1) {
65
78
  if (!tsplus_module_3.unsafeGet(i)(ast.elements).isOptional) {
66
- const e = tsplus_module_5.indexError(i, tsplus_module_3.vector(tsplus_module_5.missingError));
67
- tsplus_module_6.push(e)(errors);
79
+ const e = tsplus_module_6.indexError(i, tsplus_module_3.vector(tsplus_module_6.missingError));
80
+ tsplus_module_7.push(e)(errors);
68
81
  if (allErrors) {
69
82
  continue;
70
83
  } else {
71
84
  return tsplus_module_2.failures(errors);
72
85
  }
73
- } else {
74
- const parser = tsplus_module_3.unsafeGet(i)(elements);
75
- const t = parser(input[i], options);
76
- void 0;
77
- if (tsplus_module_7.isLeft(t)) {
78
- const e = tsplus_module_5.indexError(i, t.left.errors);
79
- tsplus_module_6.push(e)(errors);
80
- if (allErrors) {
81
- continue;
82
- } else {
83
- return tsplus_module_2.failures(errors);
84
- }
86
+ }
87
+ } else {
88
+ const parser = tsplus_module_3.unsafeGet(i)(elements);
89
+ const t = parser(input[i], options);
90
+ void 0;
91
+ if (tsplus_module_8.isLeft(t)) {
92
+ const e = tsplus_module_6.indexError(i, t.left.errors);
93
+ tsplus_module_7.push(e)(errors);
94
+ if (allErrors) {
95
+ continue;
96
+ } else {
97
+ return tsplus_module_2.failures(errors);
85
98
  }
86
- output.push(t.right);
87
99
  }
100
+ output.push(t.right);
88
101
  }
89
102
  }
90
- if (tsplus_module_8.isJust(rest)) {
103
+ if (tsplus_module_9.isJust(rest)) {
91
104
  const head = tsplus_module_3.unsafeHead(rest.value);
92
105
  const tail = tsplus_module_3.tail(rest.value);
93
106
  for (; i < input.length - tail.length; i++) {
94
107
  const t = head(input[i], options);
95
108
  void 0;
96
- if (tsplus_module_7.isLeft(t)) {
97
- const e = tsplus_module_5.indexError(i, t.left.errors);
98
- tsplus_module_6.push(e)(errors);
109
+ if (tsplus_module_8.isLeft(t)) {
110
+ const e = tsplus_module_6.indexError(i, t.left.errors);
111
+ tsplus_module_7.push(e)(errors);
99
112
  if (allErrors) {
100
113
  continue;
101
114
  } else {
@@ -107,14 +120,14 @@ const go = /*#__PURE__*/memoize(function go(ast) {
107
120
  for (let j = 0; j < tail.length; j++) {
108
121
  i += j;
109
122
  if (input.length < i + 1) {
110
- tsplus_module_6.push(tsplus_module_5.indexError(i, tsplus_module_3.vector(tsplus_module_5.missingError)))(errors);
123
+ tsplus_module_7.push(tsplus_module_6.indexError(i, tsplus_module_3.vector(tsplus_module_6.missingError)))(errors);
111
124
  return tsplus_module_2.failures(errors);
112
125
  } else {
113
126
  const t = tsplus_module_3.unsafeGet(j)(tail)(input[i], options);
114
127
  void 0;
115
- if (tsplus_module_7.isLeft(t)) {
116
- const e = tsplus_module_5.indexError(i, t.left.errors);
117
- tsplus_module_6.push(e)(errors);
128
+ if (tsplus_module_8.isLeft(t)) {
129
+ const e = tsplus_module_6.indexError(i, t.left.errors);
130
+ tsplus_module_7.push(e)(errors);
118
131
  if (allErrors) {
119
132
  continue;
120
133
  } else {
@@ -127,9 +140,9 @@ const go = /*#__PURE__*/memoize(function go(ast) {
127
140
  } else {
128
141
  const isUnexpectedAllowed = options?.isUnexpectedAllowed;
129
142
  for (; i < input.length; i++) {
130
- const e = tsplus_module_5.indexError(i, tsplus_module_3.vector(tsplus_module_5.unexpectedError(input[i])));
143
+ const e = tsplus_module_6.indexError(i, tsplus_module_3.vector(tsplus_module_6.unexpectedError(input[i])));
131
144
  if (!isUnexpectedAllowed) {
132
- tsplus_module_6.push(e)(errors);
145
+ tsplus_module_7.push(e)(errors);
133
146
  if (allErrors) {
134
147
  continue;
135
148
  } else {
@@ -146,11 +159,11 @@ const go = /*#__PURE__*/memoize(function go(ast) {
146
159
  if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {
147
160
  return tsplus_module_1.fromRefinement(ast, u => u !== null);
148
161
  }
149
- const propertySignatureTypes = tsplus_module_3.map(f => go(f.type))(ast.propertySignatures);
150
- const indexSignatures = tsplus_module_3.map(is => [go(is.parameter), go(is.type)])(ast.indexSignatures);
162
+ const propertySignatureTypes = tsplus_module_3.map(f => goMemo(f.type, isDecoding))(ast.propertySignatures);
163
+ const indexSignatures = tsplus_module_3.map(is => [goMemo(is.parameter, isDecoding), goMemo(is.type, isDecoding)])(ast.indexSignatures);
151
164
  return tsplus_module_1.make((input, options) => {
152
165
  if (!isRecord(input)) {
153
- return tsplus_module_2.fail(tsplus_module_5.typeError(unknownRecord, input));
166
+ return tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.unknownRecord, input));
154
167
  }
155
168
  const output = {};
156
169
  const expectedKeys = {};
@@ -163,8 +176,8 @@ const go = /*#__PURE__*/memoize(function go(ast) {
163
176
  expectedKeys[name] = null;
164
177
  if (!Object.prototype.hasOwnProperty.call(input, name)) {
165
178
  if (!ps.isOptional) {
166
- const e = tsplus_module_5.keyError(tsplus_module_9.createKey(name), name, tsplus_module_3.vector(tsplus_module_5.missingError));
167
- tsplus_module_6.push(e)(errors);
179
+ const e = tsplus_module_6.keyError(tsplus_module_5.createKey(name), name, tsplus_module_3.vector(tsplus_module_6.missingError));
180
+ tsplus_module_7.push(e)(errors);
168
181
  if (allErrors) {
169
182
  continue;
170
183
  } else {
@@ -174,9 +187,9 @@ const go = /*#__PURE__*/memoize(function go(ast) {
174
187
  } else {
175
188
  const t = parser(input[name], options);
176
189
  void 0;
177
- if (tsplus_module_7.isLeft(t)) {
178
- const e = tsplus_module_5.keyError(tsplus_module_9.createKey(name), name, t.left.errors);
179
- tsplus_module_6.push(e)(errors);
190
+ if (tsplus_module_8.isLeft(t)) {
191
+ const e = tsplus_module_6.keyError(tsplus_module_5.createKey(name), name, t.left.errors);
192
+ tsplus_module_7.push(e)(errors);
180
193
  if (allErrors) {
181
194
  continue;
182
195
  } else {
@@ -196,9 +209,9 @@ const go = /*#__PURE__*/memoize(function go(ast) {
196
209
  }
197
210
  let t = parameter(key, options);
198
211
  void 0;
199
- if (tsplus_module_7.isLeft(t)) {
200
- const e = tsplus_module_5.keyError(tsplus_module_9.createKey(key), key, t.left.errors);
201
- tsplus_module_6.push(e)(errors);
212
+ if (tsplus_module_8.isLeft(t)) {
213
+ const e = tsplus_module_6.keyError(tsplus_module_5.createKey(key), key, t.left.errors);
214
+ tsplus_module_7.push(e)(errors);
202
215
  if (allErrors) {
203
216
  continue;
204
217
  } else {
@@ -207,9 +220,9 @@ const go = /*#__PURE__*/memoize(function go(ast) {
207
220
  }
208
221
  t = type(input[key], options);
209
222
  void 0;
210
- if (tsplus_module_7.isLeft(t)) {
211
- const e = tsplus_module_5.keyError(tsplus_module_9.createKey(key), key, t.left.errors);
212
- tsplus_module_6.push(e)(errors);
223
+ if (tsplus_module_8.isLeft(t)) {
224
+ const e = tsplus_module_6.keyError(tsplus_module_5.createKey(key), key, t.left.errors);
225
+ tsplus_module_7.push(e)(errors);
213
226
  if (allErrors) {
214
227
  continue;
215
228
  } else {
@@ -223,9 +236,9 @@ const go = /*#__PURE__*/memoize(function go(ast) {
223
236
  const isUnexpectedAllowed = options?.isUnexpectedAllowed;
224
237
  for (const key of ownKeys(input)) {
225
238
  if (!Object.prototype.hasOwnProperty.call(expectedKeys, key)) {
226
- const e = tsplus_module_5.keyError(tsplus_module_9.createKey(key), key, tsplus_module_3.vector(tsplus_module_5.unexpectedError(input[key])));
239
+ const e = tsplus_module_6.keyError(tsplus_module_5.createKey(key), key, tsplus_module_3.vector(tsplus_module_6.unexpectedError(input[key])));
227
240
  if (!isUnexpectedAllowed) {
228
- tsplus_module_6.push(e)(errors);
241
+ tsplus_module_7.push(e)(errors);
229
242
  if (allErrors) {
230
243
  continue;
231
244
  } else {
@@ -240,13 +253,13 @@ const go = /*#__PURE__*/memoize(function go(ast) {
240
253
  }
241
254
  case 18 /* ASTTag.Union */:
242
255
  {
243
- const searchTree = getSearchTree(ast.types);
256
+ const searchTree = getSearchTree(ast.types, isDecoding);
244
257
  const ownKeys = Reflect.ownKeys(searchTree.keys);
245
258
  const len = ownKeys.length;
246
259
  const otherwise = searchTree.otherwise;
247
260
  const map = new Map();
248
261
  tsplus_module_3.forEach(ast => {
249
- map.set(ast, go(ast));
262
+ map.set(ast, goMemo(ast, isDecoding));
250
263
  })(ast.types);
251
264
  return tsplus_module_1.make((input, options) => {
252
265
  const errors = tsplus_module_3.emptyPushable();
@@ -262,58 +275,58 @@ const go = /*#__PURE__*/memoize(function go(ast) {
262
275
  for (let i = 0; i < bucket.length; i++) {
263
276
  const t = map.get(bucket[i])(input, options);
264
277
  void 0;
265
- if (tsplus_module_7.isRight(t)) {
278
+ if (tsplus_module_8.isRight(t)) {
266
279
  return t;
267
280
  } else {
268
- tsplus_module_6.push(tsplus_module_5.unionMemberError(t.left.errors))(errors);
281
+ tsplus_module_7.push(tsplus_module_6.unionMemberError(t.left.errors))(errors);
269
282
  }
270
283
  }
271
284
  } else {
272
- tsplus_module_6.push(tsplus_module_5.keyError(tsplus_module_9.createKey(name), name, tsplus_module_3.vector(tsplus_module_5.typeError(searchTree.keys[name].ast, input[name]))))(errors);
285
+ tsplus_module_7.push(tsplus_module_6.keyError(tsplus_module_5.createKey(name), name, tsplus_module_3.vector(tsplus_module_6.typeError(searchTree.keys[name].ast, input[name]))))(errors);
273
286
  }
274
287
  } else {
275
- tsplus_module_6.push(tsplus_module_5.keyError(tsplus_module_9.createKey(name), name, tsplus_module_3.vector(tsplus_module_5.missingError)))(errors);
288
+ tsplus_module_7.push(tsplus_module_6.keyError(tsplus_module_5.createKey(name), name, tsplus_module_3.vector(tsplus_module_6.missingError)))(errors);
276
289
  }
277
290
  }
278
291
  } else {
279
- tsplus_module_6.push(tsplus_module_5.typeError(unknownRecord, input))(errors);
292
+ tsplus_module_7.push(tsplus_module_6.typeError(tsplus_module_5.unknownRecord, input))(errors);
280
293
  }
281
294
  }
282
295
  for (let i = 0; i < otherwise.length; i++) {
283
296
  const t = map.get(otherwise[i])(input, options);
284
297
  void 0;
285
- if (tsplus_module_7.isRight(t)) {
298
+ if (tsplus_module_8.isRight(t)) {
286
299
  return t;
287
300
  } else {
288
- tsplus_module_6.push(tsplus_module_5.unionMemberError(t.left.errors))(errors);
301
+ tsplus_module_7.push(tsplus_module_6.unionMemberError(t.left.errors))(errors);
289
302
  }
290
303
  }
291
- return tsplus_module_3.isNonEmpty(errors) ? tsplus_module_2.failures(errors) : tsplus_module_2.fail(tsplus_module_5.typeError(tsplus_module_9.neverKeyword, input));
304
+ return tsplus_module_3.isNonEmpty(errors) ? tsplus_module_2.failures(errors) : tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.neverKeyword, input));
292
305
  });
293
306
  }
294
307
  case 19 /* ASTTag.Lazy */:
295
308
  {
296
- const f = () => go(ast.getAST());
309
+ const f = () => goMemo(ast.getAST(), isDecoding);
297
310
  const get = memoize(f);
298
311
  return tsplus_module_1.make((a, options) => get()(a, options));
299
312
  }
300
313
  case 20 /* ASTTag.Refinement */:
301
314
  {
302
- const from = go(ast.from);
303
- if (ast.isReversed) {
304
- const to = go(tsplus_module_9.getTo(ast.from));
305
- return tsplus_module_1.make((input, options) => tsplus_module_7.flatMap(a => from(a, options))(tsplus_module_7.flatMap(a => ast.decode(a, options))(to(input, options))));
315
+ if (isDecoding) {
316
+ const from = goMemo(ast.from, isDecoding);
317
+ return tsplus_module_1.make((input, options) => tsplus_module_8.flatMap(a => tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.refinementError(ast, input, "Predicate", failure.errors))))(ast.decode(a, options)))(tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.refinementError(ast, input, "From", failure.errors))))(from(input, options))));
318
+ } else {
319
+ const from = goMemo(ast.from, true);
320
+ const to = goMemo(tsplus_module_5.getTo(ast.from), false);
321
+ return tsplus_module_1.make((input, options) => tsplus_module_8.flatMap(a => from(a, options))(tsplus_module_8.flatMap(a => ast.decode(a, options))(to(input, options))));
306
322
  }
307
- return tsplus_module_1.make((input, options) => tsplus_module_7.flatMap(a => ast.decode(a, options))(from(input, options)));
308
323
  }
309
324
  case 21 /* ASTTag.Transform */:
310
325
  {
311
- const from = go(ast.from);
312
- if (ast.isReversed) {
313
- const to = go(ast.to);
314
- return tsplus_module_1.make((input, options) => tsplus_module_7.flatMap(a => from(a, options))(tsplus_module_7.flatMap(a => ast.encode(a, options))(to(input, options))));
315
- }
316
- return tsplus_module_1.make((input, options) => tsplus_module_7.flatMap(a => ast.decode(a, options))(from(input, options)));
326
+ const transformation = isDecoding ? ast.decode : ast.encode;
327
+ const from = isDecoding ? goMemo(ast.from, true) : goMemo(ast.to, false);
328
+ const to = isDecoding ? goMemo(ast.to, true) : goMemo(ast.from, false);
329
+ return tsplus_module_1.make((input, options) => tsplus_module_8.flatMap(a => tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.transformationError(ast, input, isDecoding ? "Type" : "Encoded", failure.errors))))(to(a, options)))(tsplus_module_8.flatMap(a => tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.transformationError(ast, input, "Transformation", failure.errors))))(transformation(a, options)))(tsplus_module_8.mapLeft(failure => tsplus_module_10.make(tsplus_module_3.vector(tsplus_module_6.transformationError(ast, input, isDecoding ? "Encoded" : "Type", failure.errors))))(from(input, options)))));
317
330
  }
318
331
  case 22 /* ASTTag.Validation */:
319
332
  {
@@ -322,81 +335,20 @@ const go = /*#__PURE__*/memoize(function go(ast) {
322
335
  const allErrors = options?.allErrors;
323
336
  for (const validation of ast.validation) {
324
337
  if (!validation.validate(u)) {
325
- tsplus_module_6.push(validation)(missedBrands);
338
+ tsplus_module_7.push(validation)(missedBrands);
326
339
  if (allErrors) {
327
340
  continue;
328
341
  } else {
329
- return tsplus_module_2.fail(tsplus_module_5.typeError(tsplus_module_9.createValidation(ast.from, missedBrands, ast.annotations), u));
342
+ return tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.createValidation(ast.from, missedBrands, ast.annotations), u));
330
343
  }
331
344
  }
332
345
  }
333
- return missedBrands.length > 0 ? tsplus_module_2.fail(tsplus_module_5.typeError(tsplus_module_9.createValidation(ast.from, missedBrands, ast.annotations), u)) : tsplus_module_2.succeed(u);
346
+ return missedBrands.length > 0 ? tsplus_module_2.fail(tsplus_module_6.typeError(tsplus_module_5.createValidation(ast.from, missedBrands, ast.annotations), u)) : tsplus_module_2.succeed(u);
334
347
  });
335
348
  }
336
349
  }
337
- });
338
- export function parserFor(ast) {
339
- return go(ast);
340
350
  }
341
- const unknownArray = /*#__PURE__*/tsplus_module_9.createTuple( /*#__PURE__*/tsplus_module_3.empty(), /*#__PURE__*/tsplus_module_10.just( /*#__PURE__*/tsplus_module_3.vector(tsplus_module_9.unknownKeyword), fileName_1 + ":367:58"), true);
342
- const unknownRecord = /*#__PURE__*/tsplus_module_9.createTypeLiteral( /*#__PURE__*/tsplus_module_3.empty(), /*#__PURE__*/tsplus_module_3.vector( /*#__PURE__*/tsplus_module_9.createIndexSignature(tsplus_module_9.stringKeyword, tsplus_module_9.unknownKeyword, true), /*#__PURE__*/tsplus_module_9.createIndexSignature(tsplus_module_9.symbolKeyword, tsplus_module_9.unknownKeyword, true)));
343
- function getLiterals(ast) {
344
- void 0;
345
- switch (ast._tag) {
346
- case 0 /* ASTTag.Declaration */:
347
- return getLiterals(ast.type);
348
- case 17 /* ASTTag.TypeLiteral */:
349
- {
350
- const out = [];
351
- for (let i = 0; i < ast.propertySignatures.length; i++) {
352
- const propertySignature = tsplus_module_3.unsafeGet(i)(ast.propertySignatures);
353
- if (tsplus_module_9.isLiteral(propertySignature.type) && !propertySignature.isOptional) {
354
- out.push([propertySignature.name, propertySignature.type]);
355
- }
356
- }
357
- return out;
358
- }
359
- case 20 /* ASTTag.Refinement */:
360
- return getLiterals(ast.from);
361
- case 21 /* ASTTag.Transform */:
362
- return ast.isReversed ? getLiterals(ast.to) : getLiterals(tsplus_module_9.getFrom(ast.from));
363
- }
364
- return [];
365
- }
366
- function getSearchTree(members) {
367
- const keys = {};
368
- const otherwise = [];
369
- for (let i = 0; i < members.length; i++) {
370
- const member = tsplus_module_3.unsafeGet(i)(members);
371
- const tags = getLiterals(member);
372
- if (tags.length > 0) {
373
- for (let j = 0; j < tags.length; j++) {
374
- const [key, literal] = tags[j];
375
- const hash = String(literal.literal);
376
- keys[key] || (keys[key] = {
377
- buckets: {},
378
- ast: tsplus_module_9.neverKeyword
379
- });
380
- const buckets = keys[key].buckets;
381
- if (Object.prototype.hasOwnProperty.call(buckets, hash)) {
382
- if (j < tags.length - 1) {
383
- continue;
384
- }
385
- buckets[hash].push(member);
386
- keys[key].ast = tsplus_module_9.createUnion(tsplus_module_3.vector(keys[key].ast, literal));
387
- } else {
388
- buckets[hash] = [member];
389
- keys[key].ast = tsplus_module_9.createUnion(tsplus_module_3.vector(keys[key].ast, literal));
390
- break;
391
- }
392
- }
393
- } else {
394
- otherwise.push(member);
395
- }
396
- }
397
- return {
398
- keys,
399
- otherwise
400
- };
351
+ export function parserFor(ast, isDecoding) {
352
+ return goMemo(ast, isDecoding);
401
353
  }
402
354
  //# sourceMappingURL=interpreter.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpreter.mjs","names":["isBigInt","isBoolean","isNumber","isObject","isRecord","isString","isSymbol","isUndefined","concrete","getKeysForIndexSignature","getTemplateLiteralRegex","memoize","ownKeys","go","ast","_tag","tsplus_module_1","make","decode","typeParameters","fromRefinement","u","literal","symbol","_","tsplus_module_2","succeed","tsplus_module_3","some","value","enums","regex","test","elements","map","e","type","rest","tsplus_module_4","input","options","Array","isArray","fail","tsplus_module_5","typeError","unknownArray","output","errors","emptyPushable","allErrors","i","length","unsafeGet","isOptional","indexError","vector","missingError","tsplus_module_6","push","failures","parser","t","tsplus_module_7","isLeft","left","right","tsplus_module_8","isJust","head","unsafeHead","tail","j","isUnexpectedAllowed","unexpectedError","isNonEmpty","propertySignatures","indexSignatures","propertySignatureTypes","f","is","parameter","unknownRecord","expectedKeys","ps","name","Object","prototype","hasOwnProperty","call","keyError","tsplus_module_9","createKey","keys","key","searchTree","getSearchTree","types","Reflect","len","otherwise","Map","forEach","set","buckets","String","bucket","get","isRight","unionMemberError","neverKeyword","getAST","a","from","isReversed","to","getTo","flatMap","encode","missedBrands","validation","validate","createValidation","annotations","parserFor","createTuple","empty","tsplus_module_10","just","unknownKeyword","fileName_1","createTypeLiteral","createIndexSignature","stringKeyword","symbolKeyword","getLiterals","out","propertySignature","isLiteral","getFrom","members","member","tags","hash","createUnion"],"sources":["../../_src/Parser/interpreter.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"interpreter.mjs","names":["globalValue","isBigInt","isBoolean","isNumber","isObject","isRecord","isString","isSymbol","isUndefined","concrete","getSearchTree","RefinementError","TransformationError","getKeysForIndexSignature","getTemplateLiteralRegex","memoize","ownKeys","decodeMemoMap","Symbol","for","WeakMap","encodeMemoMap","goMemo","ast","isDecoding","memoMap","memo","get","parser","go","set","_tag","tsplus_module_1","make","decode","typeParameters","fromRefinement","u","literal","symbol","_","tsplus_module_2","succeed","tsplus_module_3","some","value","enums","regex","test","elements","map","e","type","rest","tsplus_module_4","input","options","Array","isArray","fail","tsplus_module_6","typeError","tsplus_module_5","unknownArray","output","errors","emptyPushable","allErrors","i","length","unsafeGet","isOptional","indexError","vector","missingError","tsplus_module_7","push","failures","t","tsplus_module_8","isLeft","left","right","tsplus_module_9","isJust","head","unsafeHead","tail","j","isUnexpectedAllowed","unexpectedError","isNonEmpty","propertySignatures","indexSignatures","propertySignatureTypes","f","is","parameter","unknownRecord","expectedKeys","ps","name","Object","prototype","hasOwnProperty","call","keyError","createKey","keys","key","searchTree","types","Reflect","len","otherwise","Map","forEach","buckets","String","bucket","isRight","unionMemberError","neverKeyword","getAST","a","from","flatMap","mapLeft","failure","tsplus_module_10","refinementError","to","getTo","transformation","encode","transformationError","missedBrands","validation","validate","createValidation","annotations","parserFor"],"sources":["../../_src/Parser/interpreter.ts"],"sourcesContent":[null],"mappings":"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"}