@fncts/schema 0.0.14 → 0.0.16
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/AST.d.ts +29 -12
- package/Guard.d.ts +9 -0
- package/ParseError.d.ts +40 -3
- package/Parser/api.d.ts +0 -6
- package/Parser/interpreter.d.ts +1 -2
- package/Schema/api.d.ts +1 -1
- package/Schema/derivations.d.ts +1 -1
- package/Show.d.ts +1 -1
- package/_cjs/AST.cjs +115 -65
- package/_cjs/AST.cjs.map +1 -1
- package/_cjs/Guard.cjs +278 -0
- package/_cjs/Guard.cjs.map +1 -0
- package/_cjs/ParseError.cjs +77 -3
- package/_cjs/ParseError.cjs.map +1 -1
- package/_cjs/Parser/api.cjs +11 -23
- package/_cjs/Parser/api.cjs.map +1 -1
- package/_cjs/Parser/interpreter.cjs +93 -141
- package/_cjs/Parser/interpreter.cjs.map +1 -1
- package/_cjs/Schema/api.cjs +28 -29
- package/_cjs/Schema/api.cjs.map +1 -1
- package/_cjs/Show.cjs +23 -12
- package/_cjs/Show.cjs.map +1 -1
- package/_mjs/AST.mjs +107 -61
- package/_mjs/AST.mjs.map +1 -1
- package/_mjs/Guard.mjs +269 -0
- package/_mjs/Guard.mjs.map +1 -0
- package/_mjs/ParseError.mjs +72 -2
- package/_mjs/ParseError.mjs.map +1 -1
- package/_mjs/Parser/api.mjs +10 -21
- package/_mjs/Parser/api.mjs.map +1 -1
- package/_mjs/Parser/interpreter.mjs +94 -142
- package/_mjs/Parser/interpreter.mjs.map +1 -1
- package/_mjs/Schema/api.mjs +28 -29
- package/_mjs/Schema/api.mjs.map +1 -1
- package/_mjs/Show.mjs +23 -12
- package/_mjs/Show.mjs.map +1 -1
- package/_src/AST.ts +96 -47
- package/_src/Guard.ts +268 -0
- package/_src/ParseError.ts +88 -4
- package/_src/Parser/api.ts +8 -21
- package/_src/Parser/interpreter.ts +87 -121
- package/_src/Schema/api.ts +4 -11
- package/_src/Schema/derivations.ts +1 -1
- package/_src/Show.ts +28 -15
- package/package.json +3 -3
package/_mjs/Schema/api.mjs
CHANGED
|
@@ -2,14 +2,13 @@ const fileName_1 = "(@fncts/schema) src/Schema/api.ts";
|
|
|
2
2
|
import * as tsplus_module_1 from "@fncts/schema/Schema/definition";
|
|
3
3
|
import * as tsplus_module_2 from "@fncts/base/collection/immutable/Vector/api";
|
|
4
4
|
import * as tsplus_module_3 from "@fncts/schema/AST";
|
|
5
|
-
import * as tsplus_module_4 from "@fncts/schema/
|
|
6
|
-
import * as tsplus_module_5 from "@fncts/schema/
|
|
7
|
-
import * as tsplus_module_6 from "@fncts/schema/
|
|
8
|
-
import * as tsplus_module_7 from "@fncts/
|
|
9
|
-
import * as tsplus_module_8 from "@fncts/
|
|
10
|
-
import * as tsplus_module_9 from "@fncts/
|
|
11
|
-
import * as tsplus_module_10 from "@fncts/base/data/Maybe/
|
|
12
|
-
import * as tsplus_module_11 from "@fncts/base/data/Maybe/definition";
|
|
5
|
+
import * as tsplus_module_4 from "@fncts/schema/ASTAnnotation";
|
|
6
|
+
import * as tsplus_module_5 from "@fncts/schema/ParseResult";
|
|
7
|
+
import * as tsplus_module_6 from "@fncts/schema/Parser/api";
|
|
8
|
+
import * as tsplus_module_7 from "@fncts/base/data/Maybe/api";
|
|
9
|
+
import * as tsplus_module_8 from "@fncts/schema/Schema/api/maybe";
|
|
10
|
+
import * as tsplus_module_9 from "@fncts/base/data/Maybe/constructors";
|
|
11
|
+
import * as tsplus_module_10 from "@fncts/base/data/Maybe/definition";
|
|
13
12
|
export const make = make_1;
|
|
14
13
|
export const annotate = annotate_1;
|
|
15
14
|
export const filter = filter_1;
|
|
@@ -48,7 +47,7 @@ export function declaration(typeParameters, type, decode, annotations) {
|
|
|
48
47
|
}
|
|
49
48
|
function filter_1(predicate) {
|
|
50
49
|
return self => {
|
|
51
|
-
const ast = tsplus_module_3.createRefinement(self.ast,
|
|
50
|
+
const ast = tsplus_module_3.createRefinement(self.ast, predicate);
|
|
52
51
|
return make_1(ast);
|
|
53
52
|
};
|
|
54
53
|
}
|
|
@@ -57,7 +56,7 @@ function filter_1(predicate) {
|
|
|
57
56
|
*/
|
|
58
57
|
export function brand(validation) {
|
|
59
58
|
return self => {
|
|
60
|
-
const ast = tsplus_module_3.createRefinement(self.ast,
|
|
59
|
+
const ast = tsplus_module_3.createRefinement(self.ast, validation.validate, self.ast.annotations.annotate(tsplus_module_4.Brand, tsplus_module_2.vector(validation)));
|
|
61
60
|
return make_1(ast);
|
|
62
61
|
};
|
|
63
62
|
}
|
|
@@ -147,14 +146,14 @@ export const date = date_1;
|
|
|
147
146
|
*/
|
|
148
147
|
export const implicitDate = /*#__PURE__*/transformOrFail_1(date_1, (input, options) => {
|
|
149
148
|
if (typeof input === "string" || typeof input === "number") {
|
|
150
|
-
return
|
|
149
|
+
return tsplus_module_5.succeed(new Date(input));
|
|
151
150
|
} else {
|
|
152
|
-
return
|
|
151
|
+
return tsplus_module_6.decode(date_1)(input, options);
|
|
153
152
|
}
|
|
154
|
-
}, input =>
|
|
153
|
+
}, input => tsplus_module_5.succeed(input))(unknown_1);
|
|
155
154
|
/**
|
|
156
|
-
* @tsplus static fncts.schema.SchemaOps union
|
|
157
155
|
* @tsplus derive fncts.schema.Schema<|> 30
|
|
156
|
+
* @tsplus static fncts.schema.SchemaOps union
|
|
158
157
|
*/
|
|
159
158
|
function union_1(...members) {
|
|
160
159
|
return make_1(tsplus_module_3.createUnion(tsplus_module_2.from(members.map(m => m.ast))));
|
|
@@ -176,28 +175,28 @@ export function uniqueSymbol(symbol, annotations) {
|
|
|
176
175
|
*/
|
|
177
176
|
export function optional(self) {
|
|
178
177
|
return make_1(self.ast.clone({
|
|
179
|
-
annotations: self.ast.annotations.annotate(
|
|
178
|
+
annotations: self.ast.annotations.annotate(tsplus_module_4.Optional, true)
|
|
180
179
|
}));
|
|
181
180
|
}
|
|
182
181
|
/**
|
|
183
182
|
* @tsplus fluent fncts.schema.Schema isOptional
|
|
184
183
|
*/
|
|
185
184
|
function isOptional_1(self) {
|
|
186
|
-
return
|
|
185
|
+
return tsplus_module_7.getOrElse(() => false)(self.ast.annotations.get(tsplus_module_4.Optional));
|
|
187
186
|
}
|
|
188
187
|
/**
|
|
189
188
|
* @tsplus getter fncts.schema.Schema parseOptional
|
|
190
189
|
*/
|
|
191
190
|
export function parseOptional(self) {
|
|
192
191
|
return make_1(self.ast.clone({
|
|
193
|
-
annotations: self.ast.annotations.annotate(
|
|
192
|
+
annotations: self.ast.annotations.annotate(tsplus_module_4.ParseOptional, true)
|
|
194
193
|
}));
|
|
195
194
|
}
|
|
196
195
|
/**
|
|
197
196
|
* @tsplus fluent fncts.schema.Schema isParseOptional
|
|
198
197
|
*/
|
|
199
198
|
function isParseOptional_1(self) {
|
|
200
|
-
return
|
|
199
|
+
return tsplus_module_7.getOrElse(() => false)(self.ast.annotations.get(tsplus_module_4.ParseOptional));
|
|
201
200
|
}
|
|
202
201
|
/**
|
|
203
202
|
* @tsplus static fncts.schema.SchemaOps struct
|
|
@@ -213,9 +212,9 @@ export function struct(fields) {
|
|
|
213
212
|
const to = make_1(tsplus_module_3.createTypeLiteral(tsplus_module_2.map(p => {
|
|
214
213
|
if (tsplus_module_2.includes(p.name)(parseOptionalKeys)) {
|
|
215
214
|
if (tsplus_module_3.isLazy(fields[p.name].ast)) {
|
|
216
|
-
return tsplus_module_3.createPropertySignature(p.name, tsplus_module_3.createLazy(() =>
|
|
215
|
+
return tsplus_module_3.createPropertySignature(p.name, tsplus_module_3.createLazy(() => tsplus_module_8.maybe(fields[p.name]).ast), true, p.isReadonly);
|
|
217
216
|
}
|
|
218
|
-
return tsplus_module_3.createPropertySignature(p.name,
|
|
217
|
+
return tsplus_module_3.createPropertySignature(p.name, tsplus_module_8.maybe(fields[p.name]).ast, true, p.isReadonly);
|
|
219
218
|
}
|
|
220
219
|
return p;
|
|
221
220
|
})(propertySignatures), tsplus_module_2.empty()));
|
|
@@ -224,7 +223,7 @@ export function struct(fields) {
|
|
|
224
223
|
...input
|
|
225
224
|
};
|
|
226
225
|
for (const key of parseOptionalKeys) {
|
|
227
|
-
output[key] =
|
|
226
|
+
output[key] = tsplus_module_9.fromNullable(input[key]);
|
|
228
227
|
}
|
|
229
228
|
return output;
|
|
230
229
|
}, input => {
|
|
@@ -233,11 +232,11 @@ export function struct(fields) {
|
|
|
233
232
|
};
|
|
234
233
|
for (const key of parseOptionalKeys) {
|
|
235
234
|
const value = input[key];
|
|
236
|
-
if (
|
|
235
|
+
if (tsplus_module_10.isNothing(value)) {
|
|
237
236
|
delete output[key];
|
|
238
237
|
continue;
|
|
239
238
|
}
|
|
240
|
-
output[key] =
|
|
239
|
+
output[key] = tsplus_module_7.toUndefined(value);
|
|
241
240
|
}
|
|
242
241
|
return output;
|
|
243
242
|
})(from);
|
|
@@ -246,7 +245,7 @@ export function struct(fields) {
|
|
|
246
245
|
* @tsplus static fncts.schema.SchemaOps tuple
|
|
247
246
|
*/
|
|
248
247
|
export function tuple(...elements) {
|
|
249
|
-
return make_1(tsplus_module_3.createTuple(tsplus_module_2.from(elements.map(schema => tsplus_module_3.createElement(schema.ast, false))),
|
|
248
|
+
return make_1(tsplus_module_3.createTuple(tsplus_module_2.from(elements.map(schema => tsplus_module_3.createElement(schema.ast, false))), tsplus_module_9.nothing(fileName_1 + ":333:105"), true));
|
|
250
249
|
}
|
|
251
250
|
/**
|
|
252
251
|
* @tsplus static fncts.schema.SchemaOps lazy
|
|
@@ -259,14 +258,14 @@ export function lazy(f, annotations) {
|
|
|
259
258
|
* @tsplus getter fncts.schema.Schema array
|
|
260
259
|
*/
|
|
261
260
|
export function array(item) {
|
|
262
|
-
return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(),
|
|
261
|
+
return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(), tsplus_module_9.just(tsplus_module_2.vector(item.ast), fileName_1 + ":349:61"), true));
|
|
263
262
|
}
|
|
264
263
|
/**
|
|
265
264
|
* @tsplus static fncts.schema.SchemaOps mutableArray
|
|
266
265
|
* @tsplus getter fncts.schema.Schema mutableArray
|
|
267
266
|
*/
|
|
268
267
|
export function mutableArray(item) {
|
|
269
|
-
return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(),
|
|
268
|
+
return make_1(tsplus_module_3.createTuple(tsplus_module_2.empty(), tsplus_module_9.just(tsplus_module_2.vector(item.ast), fileName_1 + ":357:61"), false));
|
|
270
269
|
}
|
|
271
270
|
/**
|
|
272
271
|
* @tsplus static fncts.schema.SchemaOps record
|
|
@@ -365,7 +364,7 @@ export function extend(that) {
|
|
|
365
364
|
*/
|
|
366
365
|
function instanceOf_1(constructor) {
|
|
367
366
|
return self => {
|
|
368
|
-
return annotate_1(
|
|
367
|
+
return annotate_1(tsplus_module_4.Description, `an instance of ${constructor.name}`)(filter_1(value => value instanceof constructor)(self));
|
|
369
368
|
};
|
|
370
369
|
}
|
|
371
370
|
/**
|
|
@@ -373,7 +372,7 @@ function instanceOf_1(constructor) {
|
|
|
373
372
|
*/
|
|
374
373
|
function transformOrFail_1(to, decode, encode) {
|
|
375
374
|
return from => {
|
|
376
|
-
return make_1(tsplus_module_3.createTransform(from.ast, to.ast, decode, encode
|
|
375
|
+
return make_1(tsplus_module_3.createTransform(from.ast, to.ast, decode, encode));
|
|
377
376
|
};
|
|
378
377
|
}
|
|
379
378
|
/**
|
|
@@ -381,7 +380,7 @@ function transformOrFail_1(to, decode, encode) {
|
|
|
381
380
|
*/
|
|
382
381
|
function transform_1(to, decode, encode) {
|
|
383
382
|
return from => {
|
|
384
|
-
return transformOrFail_1(to, (input, options) =>
|
|
383
|
+
return transformOrFail_1(to, (input, options) => tsplus_module_5.succeed(decode(input, options)), (input, options) => tsplus_module_5.succeed(encode(input, options)))(from);
|
|
385
384
|
};
|
|
386
385
|
}
|
|
387
386
|
//# sourceMappingURL=api.mjs.map
|
package/_mjs/Schema/api.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.mjs","names":["make","make_1","annotate","annotate_1","filter","filter_1","union","union_1","isOptional","isOptional_1","isParseOptional","isParseOptional_1","enum_","enum_1","instanceOf","instanceOf_1","transformOrFail","transformOrFail_1","transform","transform_1","show","getParameter","concrete","TemplateLiteralSpan","ownKeys","ast","tsplus_module_1","Schema","annotation","value","self","clone","annotations","declaration","typeParameters","type","decode","tsplus_module_3","createDeclaration","tsplus_module_2","map","tp","predicate","createRefinement","a","tsplus_module_4","succeed","fail","tsplus_module_5","typeError","brand","validation","validate","tsplus_module_6","Brand","vector","makeLiteral","createLiteral","literal","literals","never","neverKeyword","unknown_1","unknownKeyword","unknown","any","anyKeyword","_undefined_1","undefinedKeyword","_undefined","undefined","_null_1","_null","null","_void_1","voidKeyword","_void","void","string","stringKeyword","number","numberKeyword","boolean","booleanKeyword","bigint","bigIntKeyword","symbol","symbolKeyword","object_1","objectKeyword","object","date_1","Date","date","implicitDate","input","options","tsplus_module_7","members","createUnion","from","m","nullable","uniqueSymbol","createUniqueSymbol","optional","Optional","tsplus_module_8","getOrElse","get","parseOptional","ParseOptional","struct","fields","parseOptionalKeys","key","createTypeLiteral","createPropertySignature","empty","isEmpty","propertySignatures","p","includes","name","isReadonly","to","isLazy","createLazy","tsplus_module_9","maybe","output","tsplus_module_10","fromNullable","tsplus_module_11","isNothing","toUndefined","tuple","elements","createTuple","schema","createElement","nothing","fileName_1","lazy","f","array","item","just","mutableArray","record","createRecord","enums","createEnum","Object","keys","enum","getTemplateLiterals","_tag","createTemplateLiteral","flatMap","types","Error","combineTemplateLiterals","b","isLiteral","String","head","spans","isNonEmpty","last","unsafeLast","append","slice","concat","templateLiteral","tail","span","keyof","isOverlappingPropertySignatures","x","y","some","px","py","isOverlappingIndexSignatures","ix","iy","bx","parameter","by","isStringKeyword","isSymbolKeyword","indexSignatures","extend","that","selfTypes","isUnion","thatTypes","every","isTypeLiteral","constructor","Description","encode","createTransform"],"sources":["../../_src/Schema/api.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.mjs","names":["make","make_1","annotate","annotate_1","filter","filter_1","union","union_1","isOptional","isOptional_1","isParseOptional","isParseOptional_1","enum_","enum_1","instanceOf","instanceOf_1","transformOrFail","transformOrFail_1","transform","transform_1","show","getParameter","concrete","TemplateLiteralSpan","ownKeys","ast","tsplus_module_1","Schema","annotation","value","self","clone","annotations","declaration","typeParameters","type","decode","tsplus_module_3","createDeclaration","tsplus_module_2","map","tp","predicate","createRefinement","brand","validation","validate","tsplus_module_4","Brand","vector","makeLiteral","createLiteral","literal","literals","never","neverKeyword","unknown_1","unknownKeyword","unknown","any","anyKeyword","_undefined_1","undefinedKeyword","_undefined","undefined","_null_1","_null","null","_void_1","voidKeyword","_void","void","string","stringKeyword","number","numberKeyword","boolean","booleanKeyword","bigint","bigIntKeyword","symbol","symbolKeyword","object_1","objectKeyword","object","date_1","Date","date","implicitDate","input","options","tsplus_module_5","succeed","tsplus_module_6","members","createUnion","from","m","nullable","uniqueSymbol","createUniqueSymbol","optional","Optional","tsplus_module_7","getOrElse","get","parseOptional","ParseOptional","struct","fields","parseOptionalKeys","key","createTypeLiteral","createPropertySignature","empty","isEmpty","propertySignatures","p","includes","name","isReadonly","to","isLazy","createLazy","tsplus_module_8","maybe","output","tsplus_module_9","fromNullable","tsplus_module_10","isNothing","toUndefined","tuple","elements","createTuple","schema","createElement","nothing","fileName_1","lazy","f","array","item","just","mutableArray","record","createRecord","enums","createEnum","Object","keys","enum","getTemplateLiterals","_tag","createTemplateLiteral","flatMap","types","Error","combineTemplateLiterals","a","b","isLiteral","String","head","spans","isNonEmpty","last","unsafeLast","append","slice","concat","templateLiteral","tail","span","keyof","isOverlappingPropertySignatures","x","y","some","px","py","isOverlappingIndexSignatures","ix","iy","bx","parameter","by","isStringKeyword","isSymbolKeyword","indexSignatures","extend","that","selfTypes","isUnion","thatTypes","every","isTypeLiteral","constructor","Description","encode","createTransform"],"sources":["../../_src/Schema/api.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/_mjs/Show.mjs
CHANGED
|
@@ -5,15 +5,26 @@ import * as tsplus_module_4 from "@fncts/base/control/Eval/instance";
|
|
|
5
5
|
import * as tsplus_module_5 from "@fncts/base/control/Eval/api";
|
|
6
6
|
import * as tsplus_module_6 from "@fncts/schema/ASTAnnotation";
|
|
7
7
|
import * as tsplus_module_7 from "@fncts/base/data/Maybe/destructors";
|
|
8
|
+
import { globalValue } from "@fncts/base/data/Global";
|
|
8
9
|
import { memoize } from "@fncts/schema/utils";
|
|
10
|
+
const showMemoMap = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("fncts.schema.Guard.showMemoMap"), () => new WeakMap());
|
|
11
|
+
function goMemo(ast) {
|
|
12
|
+
const memo = showMemoMap.get(ast);
|
|
13
|
+
if (memo) {
|
|
14
|
+
return memo;
|
|
15
|
+
}
|
|
16
|
+
const s = go(ast);
|
|
17
|
+
showMemoMap.set(ast, s);
|
|
18
|
+
return s;
|
|
19
|
+
}
|
|
9
20
|
/**
|
|
10
21
|
* @tsplus getter fncts.schema.Schema show
|
|
11
22
|
*/
|
|
12
23
|
export function show(self) {
|
|
13
|
-
const ev =
|
|
24
|
+
const ev = goMemo(self.ast);
|
|
14
25
|
return tsplus_module_1.run(ev);
|
|
15
26
|
}
|
|
16
|
-
|
|
27
|
+
function go(ast) {
|
|
17
28
|
void 0;
|
|
18
29
|
switch (ast._tag) {
|
|
19
30
|
case 0 /* ASTTag.Declaration */:
|
|
@@ -25,7 +36,7 @@ const go = /*#__PURE__*/memoize(function go(ast) {
|
|
|
25
36
|
} else {
|
|
26
37
|
return `${id}<${tsplus_module_3.join(", ")(ts)}>`;
|
|
27
38
|
}
|
|
28
|
-
})(tsplus_module_3._traverse(ast.typeParameters)(tsplus_module_4.Applicative)(
|
|
39
|
+
})(tsplus_module_3._traverse(ast.typeParameters)(tsplus_module_4.Applicative)(goMemo));
|
|
29
40
|
})(ast.annotations.get(tsplus_module_6.Identifier));
|
|
30
41
|
}
|
|
31
42
|
case 1 /* ASTTag.Literal */:
|
|
@@ -75,7 +86,7 @@ const go = /*#__PURE__*/memoize(function go(ast) {
|
|
|
75
86
|
const middle = restElements.length > 0 ? ", " : "";
|
|
76
87
|
const suffix = tsplus_module_3.join(", ")(tsplus_module_3.map(s => `...${s}`)(restElements)) + "]";
|
|
77
88
|
return prefix + middle + suffix;
|
|
78
|
-
}))(tsplus_module_7.match(() => tsplus_module_2.now(tsplus_module_3.empty()), rest => tsplus_module_3._traverse(rest)(tsplus_module_4.Applicative)(
|
|
89
|
+
}))(tsplus_module_7.match(() => tsplus_module_2.now(tsplus_module_3.empty()), rest => tsplus_module_3._traverse(rest)(tsplus_module_4.Applicative)(goMemo))(ast.rest)))(tsplus_module_3._traverse(ast.elements)(tsplus_module_4.Applicative)(element => goMemo(element.type)));
|
|
79
90
|
case 17 /* ASTTag.TypeLiteral */:
|
|
80
91
|
return tsplus_module_5.flatMap(propertySignatures => tsplus_module_5.map(indexSignatures => {
|
|
81
92
|
const required = [];
|
|
@@ -93,14 +104,14 @@ const go = /*#__PURE__*/memoize(function go(ast) {
|
|
|
93
104
|
const index = tsplus_module_3.join(", ")(tsplus_module_3.map(([param, type]) => `[x: ${param}]: ${type}`)(indexSignatures));
|
|
94
105
|
const suffix = "}";
|
|
95
106
|
return prefix + " " + properties + (index.length === 0 ? "" : ", ") + index + " " + suffix;
|
|
96
|
-
})(tsplus_module_3._traverse(ast.indexSignatures)(tsplus_module_4.Applicative)(is => tsplus_module_5.zip(
|
|
107
|
+
})(tsplus_module_3._traverse(ast.indexSignatures)(tsplus_module_4.Applicative)(is => tsplus_module_5.zip(goMemo(is.type))(goMemo(is.parameter)))))(tsplus_module_3._traverse(ast.propertySignatures)(tsplus_module_4.Applicative)(ps => goMemo(ps.type)));
|
|
97
108
|
case 18 /* ASTTag.Union */:
|
|
98
|
-
return tsplus_module_5.map(ts => tsplus_module_3.join(" | ")(ts))(tsplus_module_3._traverse(ast.types)(tsplus_module_4.Applicative)(
|
|
109
|
+
return tsplus_module_5.map(ts => tsplus_module_3.join(" | ")(ts))(tsplus_module_3._traverse(ast.types)(tsplus_module_4.Applicative)(goMemo));
|
|
99
110
|
case 19 /* ASTTag.Lazy */:
|
|
100
111
|
{
|
|
101
|
-
const f = () =>
|
|
112
|
+
const f = () => goMemo(ast.getAST());
|
|
102
113
|
const get = memoize(f);
|
|
103
|
-
return tsplus_module_2.defer(() => get(
|
|
114
|
+
return tsplus_module_2.defer(() => get());
|
|
104
115
|
}
|
|
105
116
|
case 14 /* ASTTag.Enum */:
|
|
106
117
|
{
|
|
@@ -108,10 +119,10 @@ const go = /*#__PURE__*/memoize(function go(ast) {
|
|
|
108
119
|
}
|
|
109
120
|
case 20 /* ASTTag.Refinement */:
|
|
110
121
|
{
|
|
111
|
-
return tsplus_module_7.match(() => tsplus_module_5.map(from => `Refined<${from}>`)(
|
|
122
|
+
return tsplus_module_7.match(() => tsplus_module_5.map(from => `Refined<${from}>`)(goMemo(ast.from)), id => tsplus_module_2.now(id))(ast.annotations.get(tsplus_module_6.Identifier));
|
|
112
123
|
}
|
|
113
124
|
case 21 /* ASTTag.Transform */:
|
|
114
|
-
return
|
|
125
|
+
return goMemo(ast.to);
|
|
115
126
|
case 22 /* ASTTag.Validation */:
|
|
116
127
|
{
|
|
117
128
|
return tsplus_module_5.map(from => {
|
|
@@ -120,10 +131,10 @@ const go = /*#__PURE__*/memoize(function go(ast) {
|
|
|
120
131
|
return from;
|
|
121
132
|
}
|
|
122
133
|
return `${from} & ${validationNames}`;
|
|
123
|
-
})(
|
|
134
|
+
})(goMemo(ast.from));
|
|
124
135
|
}
|
|
125
136
|
}
|
|
126
|
-
}
|
|
137
|
+
}
|
|
127
138
|
function formatTemplateLiteralSpan(span) {
|
|
128
139
|
switch (span.type._tag) {
|
|
129
140
|
case 8 /* ASTTag.StringKeyword */:
|
package/_mjs/Show.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Show.mjs","names":["memoize","
|
|
1
|
+
{"version":3,"file":"Show.mjs","names":["globalValue","memoize","showMemoMap","Symbol","for","WeakMap","goMemo","ast","memo","get","s","go","set","show","self","ev","tsplus_module_1","run","_tag","tsplus_module_7","match","tsplus_module_2","now","id","tsplus_module_5","map","ts","length","tsplus_module_3","join","_traverse","typeParameters","tsplus_module_4","Applicative","annotations","tsplus_module_6","Identifier","literal","toString","symbol","formatTemplateLiteral","flatMap","elements","restElements","always","isReadonly","unsafeGet","prefix","middle","suffix","empty","rest","element","type","propertySignatures","indexSignatures","required","optional","forEachWithIndex","i","ps","name","isOptional","push","properties","concat","sort","k1","k2","toLocaleString","localeCompare","propertyKey","String","index","param","is","zip","parameter","types","f","getAST","defer","enums","from","to","validationNames","v","validation","formatTemplateLiteralSpan","span","head","spans"],"sources":["../_src/Show.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/_src/AST.ts
CHANGED
|
@@ -623,6 +623,11 @@ export function createTuple(
|
|
|
623
623
|
return new Tuple(elements, rest, isReadonly, annotations);
|
|
624
624
|
}
|
|
625
625
|
|
|
626
|
+
/**
|
|
627
|
+
* @tsplus static fncts.schema.ASTOps unknownArray
|
|
628
|
+
*/
|
|
629
|
+
export const unknownArray = AST.createTuple(Vector.empty(), Just(Vector(AST.unknownKeyword)), true);
|
|
630
|
+
|
|
626
631
|
/*
|
|
627
632
|
* PropertySignature
|
|
628
633
|
*/
|
|
@@ -732,6 +737,17 @@ export function createTypeLiteral(
|
|
|
732
737
|
return new TypeLiteral(propertySignatures, indexSignatures, annotations);
|
|
733
738
|
}
|
|
734
739
|
|
|
740
|
+
/**
|
|
741
|
+
* @tsplus static fncts.schema.ASTOps unknownRecord
|
|
742
|
+
*/
|
|
743
|
+
export const unknownRecord = AST.createTypeLiteral(
|
|
744
|
+
Vector.empty(),
|
|
745
|
+
Vector(
|
|
746
|
+
AST.createIndexSignature(AST.stringKeyword, AST.unknownKeyword, true),
|
|
747
|
+
AST.createIndexSignature(AST.symbolKeyword, AST.unknownKeyword, true),
|
|
748
|
+
),
|
|
749
|
+
);
|
|
750
|
+
|
|
735
751
|
/*
|
|
736
752
|
* Union
|
|
737
753
|
*/
|
|
@@ -814,18 +830,20 @@ export class Refinement extends AST {
|
|
|
814
830
|
readonly _tag = ASTTag.Refinement;
|
|
815
831
|
constructor(
|
|
816
832
|
readonly from: AST,
|
|
817
|
-
readonly
|
|
818
|
-
readonly isReversed: boolean,
|
|
833
|
+
readonly predicate: (input: any) => boolean,
|
|
819
834
|
readonly annotations: ASTAnnotationMap = ASTAnnotationMap.empty,
|
|
820
835
|
) {
|
|
821
836
|
super();
|
|
822
837
|
}
|
|
823
838
|
|
|
839
|
+
decode(input: any, options?: ParseOptions): ParseResult<any> {
|
|
840
|
+
return this.predicate(input) ? ParseResult.succeed(input) : ParseResult.fail(ParseError.TypeError(this, input));
|
|
841
|
+
}
|
|
842
|
+
|
|
824
843
|
clone(newProperties: Partial<this>): AST {
|
|
825
844
|
return new Refinement(
|
|
826
845
|
newProperties.from ?? this.from,
|
|
827
|
-
newProperties.
|
|
828
|
-
newProperties.isReversed ?? this.isReversed,
|
|
846
|
+
newProperties.predicate ?? this.predicate,
|
|
829
847
|
newProperties.annotations ?? this.annotations,
|
|
830
848
|
);
|
|
831
849
|
}
|
|
@@ -836,11 +854,10 @@ export class Refinement extends AST {
|
|
|
836
854
|
*/
|
|
837
855
|
export function createRefinement(
|
|
838
856
|
from: AST,
|
|
839
|
-
|
|
840
|
-
isReversed: boolean,
|
|
857
|
+
predicate: (input: any) => boolean,
|
|
841
858
|
annotations?: ASTAnnotationMap,
|
|
842
859
|
): Refinement {
|
|
843
|
-
return new Refinement(from,
|
|
860
|
+
return new Refinement(from, predicate, annotations);
|
|
844
861
|
}
|
|
845
862
|
|
|
846
863
|
export function isRefinement(self: AST): self is Refinement {
|
|
@@ -864,7 +881,6 @@ export class Transform extends AST {
|
|
|
864
881
|
readonly to: AST,
|
|
865
882
|
readonly decode: (input: any, options?: ParseOptions) => ParseResult<any>,
|
|
866
883
|
readonly encode: (input: any, options?: ParseOptions) => ParseResult<any>,
|
|
867
|
-
readonly isReversed: boolean,
|
|
868
884
|
readonly annotations: ASTAnnotationMap = ASTAnnotationMap.empty,
|
|
869
885
|
) {
|
|
870
886
|
super();
|
|
@@ -876,7 +892,6 @@ export class Transform extends AST {
|
|
|
876
892
|
newProperties.to ?? this.to,
|
|
877
893
|
newProperties.decode ?? this.decode,
|
|
878
894
|
newProperties.encode ?? this.encode,
|
|
879
|
-
newProperties.isReversed ?? this.isReversed,
|
|
880
895
|
newProperties.annotations ?? this.annotations,
|
|
881
896
|
);
|
|
882
897
|
}
|
|
@@ -890,10 +905,9 @@ export function createTransform(
|
|
|
890
905
|
to: AST,
|
|
891
906
|
decode: (input: any, options?: ParseOptions) => ParseResult<any>,
|
|
892
907
|
encode: (input: any, options?: ParseOptions) => ParseResult<any>,
|
|
893
|
-
isReversed: boolean,
|
|
894
908
|
annotations?: ASTAnnotationMap,
|
|
895
909
|
): Transform {
|
|
896
|
-
return new Transform(from, getTo(to), decode, encode,
|
|
910
|
+
return new Transform(from, getTo(to), decode, encode, annotations);
|
|
897
911
|
}
|
|
898
912
|
|
|
899
913
|
/*
|
|
@@ -1317,48 +1331,13 @@ export function getTo(ast: AST): AST {
|
|
|
1317
1331
|
case ASTTag.Lazy:
|
|
1318
1332
|
return AST.createLazy(() => getTo(ast.getAST()), ast.annotations);
|
|
1319
1333
|
case ASTTag.Refinement:
|
|
1320
|
-
return AST.createRefinement(getTo(ast.from), ast.
|
|
1334
|
+
return AST.createRefinement(getTo(ast.from), ast.predicate, ast.annotations);
|
|
1321
1335
|
case ASTTag.Transform:
|
|
1322
1336
|
return getTo(ast.to);
|
|
1323
1337
|
}
|
|
1324
1338
|
return ast;
|
|
1325
1339
|
}
|
|
1326
1340
|
|
|
1327
|
-
/**
|
|
1328
|
-
* @tsplus getter fncts.schema.AST reverse
|
|
1329
|
-
*/
|
|
1330
|
-
export function reverse(ast: AST): AST {
|
|
1331
|
-
AST.concrete(ast);
|
|
1332
|
-
switch (ast._tag) {
|
|
1333
|
-
case ASTTag.Declaration:
|
|
1334
|
-
return AST.createDeclaration(ast.typeParameters.map(reverse), ast.type, ast.decode, ast.annotations);
|
|
1335
|
-
case ASTTag.Tuple:
|
|
1336
|
-
return AST.createTuple(
|
|
1337
|
-
ast.elements.map((element) => AST.createElement(reverse(element.type), element.isOptional)),
|
|
1338
|
-
ast.rest.map((restElement) => restElement.map(reverse)),
|
|
1339
|
-
ast.isReadonly,
|
|
1340
|
-
ast.annotations,
|
|
1341
|
-
);
|
|
1342
|
-
case ASTTag.TypeLiteral:
|
|
1343
|
-
return AST.createTypeLiteral(
|
|
1344
|
-
ast.propertySignatures.map((ps) =>
|
|
1345
|
-
AST.createPropertySignature(ps.name, reverse(ps.type), ps.isOptional, ps.isReadonly, ps.annotations),
|
|
1346
|
-
),
|
|
1347
|
-
ast.indexSignatures.map((is) => AST.createIndexSignature(is.parameter, reverse(is.type), is.isReadonly)),
|
|
1348
|
-
ast.annotations,
|
|
1349
|
-
);
|
|
1350
|
-
case ASTTag.Union:
|
|
1351
|
-
return AST.createUnion(ast.types.map(reverse), ast.annotations);
|
|
1352
|
-
case ASTTag.Lazy:
|
|
1353
|
-
return AST.createLazy(() => reverse(ast.getAST()), ast.annotations);
|
|
1354
|
-
case ASTTag.Refinement:
|
|
1355
|
-
return AST.createRefinement(ast.from, ast.decode, !ast.isReversed, ast.annotations);
|
|
1356
|
-
case ASTTag.Transform:
|
|
1357
|
-
return AST.createTransform(reverse(ast.from), ast.to, ast.decode, ast.encode, !ast.isReversed, ast.annotations);
|
|
1358
|
-
}
|
|
1359
|
-
return ast;
|
|
1360
|
-
}
|
|
1361
|
-
|
|
1362
1341
|
/**
|
|
1363
1342
|
* @tsplus static fncts.schema.AST getCompiler
|
|
1364
1343
|
*/
|
|
@@ -1369,3 +1348,73 @@ export function getCompiler<A>(match: AST.Match<A>): AST.Compiler<A> {
|
|
|
1369
1348
|
});
|
|
1370
1349
|
return compile;
|
|
1371
1350
|
}
|
|
1351
|
+
|
|
1352
|
+
export function getLiterals(ast: AST, isDecoding: boolean): ReadonlyArray<[PropertyKey, Literal]> {
|
|
1353
|
+
AST.concrete(ast);
|
|
1354
|
+
switch (ast._tag) {
|
|
1355
|
+
case ASTTag.Declaration:
|
|
1356
|
+
return getLiterals(ast.type, isDecoding);
|
|
1357
|
+
case ASTTag.TypeLiteral: {
|
|
1358
|
+
const out: Array<[PropertyKey, Literal]> = [];
|
|
1359
|
+
for (let i = 0; i < ast.propertySignatures.length; i++) {
|
|
1360
|
+
const propertySignature = ast.propertySignatures[i]!;
|
|
1361
|
+
if (propertySignature.type.isLiteral() && !propertySignature.isOptional) {
|
|
1362
|
+
out.push([propertySignature.name, propertySignature.type]);
|
|
1363
|
+
}
|
|
1364
|
+
}
|
|
1365
|
+
return out;
|
|
1366
|
+
}
|
|
1367
|
+
case ASTTag.Refinement:
|
|
1368
|
+
return getLiterals(ast.from, isDecoding);
|
|
1369
|
+
case ASTTag.Transform:
|
|
1370
|
+
return getLiterals(isDecoding ? ast.from : ast.to, isDecoding);
|
|
1371
|
+
}
|
|
1372
|
+
return [];
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
export function getSearchTree(
|
|
1376
|
+
members: Vector<AST>,
|
|
1377
|
+
isDecoding: boolean,
|
|
1378
|
+
): {
|
|
1379
|
+
keys: {
|
|
1380
|
+
readonly [key: PropertyKey]: {
|
|
1381
|
+
buckets: { [literal: string]: ReadonlyArray<AST> };
|
|
1382
|
+
ast: AST;
|
|
1383
|
+
};
|
|
1384
|
+
};
|
|
1385
|
+
otherwise: ReadonlyArray<AST>;
|
|
1386
|
+
} {
|
|
1387
|
+
const keys: {
|
|
1388
|
+
[key: PropertyKey]: {
|
|
1389
|
+
buckets: { [literal: string]: Array<AST> };
|
|
1390
|
+
ast: AST;
|
|
1391
|
+
};
|
|
1392
|
+
} = {};
|
|
1393
|
+
const otherwise: Array<AST> = [];
|
|
1394
|
+
for (let i = 0; i < members.length; i++) {
|
|
1395
|
+
const member = members[i]!;
|
|
1396
|
+
const tags = getLiterals(member, isDecoding);
|
|
1397
|
+
if (tags.length > 0) {
|
|
1398
|
+
for (let j = 0; j < tags.length; j++) {
|
|
1399
|
+
const [key, literal] = tags[j]!;
|
|
1400
|
+
const hash = String(literal.literal);
|
|
1401
|
+
keys[key]! ||= { buckets: {}, ast: AST.neverKeyword };
|
|
1402
|
+
const buckets = keys[key]!.buckets;
|
|
1403
|
+
if (Object.prototype.hasOwnProperty.call(buckets, hash)) {
|
|
1404
|
+
if (j < tags.length - 1) {
|
|
1405
|
+
continue;
|
|
1406
|
+
}
|
|
1407
|
+
buckets[hash]!.push(member);
|
|
1408
|
+
keys[key]!.ast = AST.createUnion(Vector(keys[key]!.ast, literal));
|
|
1409
|
+
} else {
|
|
1410
|
+
buckets[hash]! = [member];
|
|
1411
|
+
keys[key]!.ast = AST.createUnion(Vector(keys[key]!.ast, literal));
|
|
1412
|
+
break;
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
} else {
|
|
1416
|
+
otherwise.push(member);
|
|
1417
|
+
}
|
|
1418
|
+
}
|
|
1419
|
+
return { keys, otherwise };
|
|
1420
|
+
}
|