@fncts/schema 0.0.12 → 0.0.13
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/Schema/derivations.d.ts +6 -2
- package/Show.d.ts +8 -0
- package/_cjs/Gen.cjs +1 -2
- package/_cjs/Gen.cjs.map +1 -1
- package/_cjs/Schema/derivations.cjs +9 -3
- package/_cjs/Schema/derivations.cjs.map +1 -1
- package/_cjs/Show.cjs +146 -0
- package/_cjs/Show.cjs.map +1 -0
- package/_mjs/Gen.mjs +1 -2
- package/_mjs/Gen.mjs.map +1 -1
- package/_mjs/Schema/derivations.mjs +8 -3
- package/_mjs/Schema/derivations.mjs.map +1 -1
- package/_mjs/Show.mjs +138 -0
- package/_mjs/Show.mjs.map +1 -0
- package/_src/Gen.ts +0 -1
- package/_src/Schema/derivations.ts +15 -3
- package/_src/Show.ts +169 -0
- package/_src/global.ts +4 -0
- package/global.d.ts +4 -0
- package/package.json +1 -1
package/Schema/derivations.d.ts
CHANGED
|
@@ -57,11 +57,15 @@ export declare function deriveTuple<A extends ReadonlyArray<unknown>>(...[compon
|
|
|
57
57
|
*/
|
|
58
58
|
export declare function deriveLazy<A>(f: (_: Schema<A>) => Schema<A>): Schema<A>;
|
|
59
59
|
/**
|
|
60
|
-
* @tsplus derive fncts.schema.Schema[fncts.Array]<_> 10
|
|
61
60
|
* @tsplus derive fncts.schema.Schema[fncts.ReadonlyArray]<_> 10
|
|
62
61
|
* @tsplus location "@fncts/schema/Schema/derivations"
|
|
63
62
|
*/
|
|
64
|
-
export declare function
|
|
63
|
+
export declare function deriveReadonlyArray<A extends ReadonlyArray<any>>(...[element]: [A] extends [ReadonlyArray<infer _A>] ? Check<Check.IsEqual<A, ReadonlyArray<_A>>> extends Check.True ? [element: Schema<_A>] : never : never): Schema<A>;
|
|
64
|
+
/**
|
|
65
|
+
* @tsplus derive fncts.schema.Schema[fncts.Array]<_> 10
|
|
66
|
+
* @tsplus location "@fncts/schema/Schema/derivations"
|
|
67
|
+
*/
|
|
68
|
+
export declare function deriveArray<A extends Array<any>>(...[element]: [A] extends [Array<infer _A>] ? Check<Check.IsEqual<A, Array<_A>>> extends Check.True ? [element: Schema<_A>] : never : never): Schema<A>;
|
|
65
69
|
/**
|
|
66
70
|
* @tsplus derive fncts.schema.Schema<_> 15
|
|
67
71
|
* @tsplus location "@fncts/schema/Schema/derivations"
|
package/Show.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Schema } from "@fncts/schema/Schema/definition";
|
|
2
|
+
import { AST } from "@fncts/schema/AST";
|
|
3
|
+
import { Eval } from "@fncts/base/control/Eval/definition";
|
|
4
|
+
/**
|
|
5
|
+
* @tsplus getter fncts.schema.Schema show
|
|
6
|
+
* @tsplus location "@fncts/schema/Show"
|
|
7
|
+
*/
|
|
8
|
+
export declare function show<A>(self: Schema<A>): string;
|
package/_cjs/Gen.cjs
CHANGED
|
@@ -117,7 +117,6 @@ const go = /*#__PURE__*/(0, _utils.memoize)(function go(ast) {
|
|
|
117
117
|
{
|
|
118
118
|
const propertySignatureTypes = tsplus_module_4.map(ps => go(ps.type))(ast.propertySignatures);
|
|
119
119
|
const indexSignatures = tsplus_module_4.map(is => [go(is.parameter), go(is.type)])(ast.indexSignatures);
|
|
120
|
-
const gens = {};
|
|
121
120
|
const requiredGens = {};
|
|
122
121
|
const optionalGens = {};
|
|
123
122
|
for (let i = 0; i < propertySignatureTypes.length; i++) {
|
|
@@ -161,7 +160,7 @@ const go = /*#__PURE__*/(0, _utils.memoize)(function go(ast) {
|
|
|
161
160
|
case 14 /* ASTTag.Enum */:
|
|
162
161
|
{
|
|
163
162
|
if (ast.enums.length === 0) {
|
|
164
|
-
return tsplus_module_3.fromIO(tsplus_module_6.haltNow(new _InvalidInterpretationError.InvalidInterpretationError("cannot build a Gen for an empty enum"), fileName_1 + ":
|
|
163
|
+
return tsplus_module_3.fromIO(tsplus_module_6.haltNow(new _InvalidInterpretationError.InvalidInterpretationError("cannot build a Gen for an empty enum"), fileName_1 + ":146:37"));
|
|
165
164
|
}
|
|
166
165
|
return tsplus_module_3.oneOf(...tsplus_module_4.map(([_, value]) => tsplus_module_3.constant(value))(ast.enums));
|
|
167
166
|
}
|
package/_cjs/Gen.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gen.cjs","names":["_InvalidInterpretationError","require","_utils","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","genFrom","self","go","tsplus_module_1","getFrom","ast","genTo","getHook","annotations","tsplus_module_2","GenHook","record","key","value","tsplus_module_3","map","tuples","out","k","v","arrayWith","maxLength","tuple","memoize","_tag","tsplus_module_5","match","type","hook","tsplus_module_4","typeParameters","constant","literal","symbol","undefined","fromIO","tsplus_module_6","haltNow","InvalidInterpretationError","fileName_1","anything","fullUnicodeString","float","boolean","bigInt","s","Symbol","for","components","head","span","spans","push","join","elements","rest","tsplus_module_7","restElement","output","length","tsplus_module_8","isNothing","firstOptionalIndex","findIndex","isOptional","flatMap","as","slice","intWith","min","max","isJust","unsafeHead","tail","j","unsafeGet","propertySignatureTypes","ps","propertySignatures","indexSignatures","is","parameter","
|
|
1
|
+
{"version":3,"file":"Gen.cjs","names":["_InvalidInterpretationError","require","_utils","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","genFrom","self","go","tsplus_module_1","getFrom","ast","genTo","getHook","annotations","tsplus_module_2","GenHook","record","key","value","tsplus_module_3","map","tuples","out","k","v","arrayWith","maxLength","tuple","memoize","_tag","tsplus_module_5","match","type","hook","tsplus_module_4","typeParameters","constant","literal","symbol","undefined","fromIO","tsplus_module_6","haltNow","InvalidInterpretationError","fileName_1","anything","fullUnicodeString","float","boolean","bigInt","s","Symbol","for","components","head","span","spans","push","join","elements","rest","tsplus_module_7","restElement","output","length","tsplus_module_8","isNothing","firstOptionalIndex","findIndex","isOptional","flatMap","as","slice","intWith","min","max","isJust","unsafeHead","tail","j","unsafeGet","propertySignatureTypes","ps","propertySignatures","indexSignatures","is","parameter","requiredGens","optionalGens","name","zipWith","partial","b","struct","o","d","types","oneOf","f","getAST","defer","handler","enums","_","from","filter","tsplus_module_9","isRight","decode","to","every","validate","validation"],"sources":["../_src/Gen.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.deriveArray = deriveArray;
|
|
7
7
|
exports.deriveLazy = deriveLazy;
|
|
8
8
|
exports.deriveLiteral = deriveLiteral;
|
|
9
|
+
exports.deriveReadonlyArray = deriveReadonlyArray;
|
|
9
10
|
exports.deriveRecord = deriveRecord;
|
|
10
11
|
exports.deriveStruct = deriveStruct;
|
|
11
12
|
exports.deriveTuple = deriveTuple;
|
|
@@ -57,7 +58,7 @@ function deriveStruct(...[requiredFields, optionalFields, maybeFields]) {
|
|
|
57
58
|
tsplus_module_3.createUnion(tsplus_module_1.vector(tsplus_module_3.undefinedKeyword, tsplus_module_3.createLiteral(null), maybeFields[key].ast)), true, true))(maybeFieldsKeys))(propertySignatures), tsplus_module_1.empty()));
|
|
58
59
|
const to = tsplus_module_4.make(tsplus_module_3.createTypeLiteral(tsplus_module_1.concat(tsplus_module_1.map(key =>
|
|
59
60
|
// @ts-expect-error
|
|
60
|
-
tsplus_module_3.createPropertySignature(key, tsplus_module_5.maybe(maybeFields[key]).ast,
|
|
61
|
+
tsplus_module_3.createPropertySignature(key, tsplus_module_5.maybe(maybeFields[key]).ast, false, true))(maybeFieldsKeys))(propertySignatures), tsplus_module_1.empty()));
|
|
61
62
|
return tsplus_module_4.transform(to, input => {
|
|
62
63
|
const output = {
|
|
63
64
|
...input
|
|
@@ -101,12 +102,17 @@ function deriveLazy(f) {
|
|
|
101
102
|
return tsplus_module_4.make(ast);
|
|
102
103
|
}
|
|
103
104
|
/**
|
|
104
|
-
* @tsplus derive fncts.schema.Schema[fncts.Array]<_> 10
|
|
105
105
|
* @tsplus derive fncts.schema.Schema[fncts.ReadonlyArray]<_> 10
|
|
106
106
|
*/
|
|
107
|
-
function
|
|
107
|
+
function deriveReadonlyArray(...[element]) {
|
|
108
108
|
return tsplus_module_4.array(element);
|
|
109
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* @tsplus derive fncts.schema.Schema[fncts.Array]<_> 10
|
|
112
|
+
*/
|
|
113
|
+
function deriveArray(...[element]) {
|
|
114
|
+
return tsplus_module_4.mutableArray(element);
|
|
115
|
+
}
|
|
110
116
|
/**
|
|
111
117
|
* @tsplus derive fncts.schema.Schema<_> 15
|
|
112
118
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivations.cjs","names":["_utils","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","deriveValidation","base","brands","tsplus_module_4","make","tsplus_module_3","createValidation","ast","tsplus_module_1","from","values","annotations","annotate","tsplus_module_2","Brand","deriveLiteral","value","literal","deriveStruct","requiredFields","optionalFields","maybeFields","maybeFieldsKeys","ownKeys","propertySignatures","map","key","createPropertySignature","concat","struct","createTypeLiteral","empty","isEmpty","createUnion","vector","undefinedKeyword","createLiteral","to","tsplus_module_5","maybe","transform","input","output","tsplus_module_6","fromNullable","tsplus_module_7","isNothing","tsplus_module_8","toUndefined","deriveTuple","components","tuple","deriveLazy","f","cached","createLazy","
|
|
1
|
+
{"version":3,"file":"derivations.cjs","names":["_utils","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","deriveValidation","base","brands","tsplus_module_4","make","tsplus_module_3","createValidation","ast","tsplus_module_1","from","values","annotations","annotate","tsplus_module_2","Brand","deriveLiteral","value","literal","deriveStruct","requiredFields","optionalFields","maybeFields","maybeFieldsKeys","ownKeys","propertySignatures","map","key","createPropertySignature","concat","struct","createTypeLiteral","empty","isEmpty","createUnion","vector","undefinedKeyword","createLiteral","to","tsplus_module_5","maybe","transform","input","output","tsplus_module_6","fromNullable","tsplus_module_7","isNothing","tsplus_module_8","toUndefined","deriveTuple","components","tuple","deriveLazy","f","cached","createLazy","deriveReadonlyArray","element","array","deriveArray","mutableArray","deriveRecord","keySchema","valueSchema","record"],"sources":["../../_src/Schema/derivations.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/_cjs/Show.cjs
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.show = show;
|
|
7
|
+
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/control/Eval/run"));
|
|
8
|
+
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/control/Eval/constructors"));
|
|
9
|
+
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Vector/api"));
|
|
10
|
+
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/control/Eval/instance"));
|
|
11
|
+
var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/control/Eval/api"));
|
|
12
|
+
var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/schema/ASTAnnotation"));
|
|
13
|
+
var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
|
|
14
|
+
var _utils = /*#__PURE__*/require("@fncts/schema/utils");
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
+
/**
|
|
18
|
+
* @tsplus getter fncts.schema.Schema show
|
|
19
|
+
*/
|
|
20
|
+
function show(self) {
|
|
21
|
+
const ev = go(self.ast);
|
|
22
|
+
return tsplus_module_1.run(ev);
|
|
23
|
+
}
|
|
24
|
+
const go = /*#__PURE__*/(0, _utils.memoize)(function go(ast) {
|
|
25
|
+
void 0;
|
|
26
|
+
switch (ast._tag) {
|
|
27
|
+
case 0 /* ASTTag.Declaration */:
|
|
28
|
+
{
|
|
29
|
+
return tsplus_module_7.match(() => tsplus_module_2.now("Unknown Type"), id => {
|
|
30
|
+
return tsplus_module_5.map(ts => {
|
|
31
|
+
if (ts.length <= 0) {
|
|
32
|
+
return id;
|
|
33
|
+
} else {
|
|
34
|
+
return `${id}<${tsplus_module_3.join(", ")(ts)}>`;
|
|
35
|
+
}
|
|
36
|
+
})(tsplus_module_3._traverse(ast.typeParameters)(tsplus_module_4.Applicative)(go));
|
|
37
|
+
})(ast.annotations.get(tsplus_module_6.Identifier));
|
|
38
|
+
}
|
|
39
|
+
case 1 /* ASTTag.Literal */:
|
|
40
|
+
{
|
|
41
|
+
if (ast.literal === null) {
|
|
42
|
+
return tsplus_module_2.now("null");
|
|
43
|
+
} else {
|
|
44
|
+
return tsplus_module_2.now(ast.literal.toString());
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
case 2 /* ASTTag.UniqueSymbol */:
|
|
48
|
+
return tsplus_module_2.now(ast.symbol.toString());
|
|
49
|
+
case 3 /* ASTTag.UndefinedKeyword */:
|
|
50
|
+
return tsplus_module_2.now("undefined");
|
|
51
|
+
case 4 /* ASTTag.VoidKeyword */:
|
|
52
|
+
return tsplus_module_2.now("void");
|
|
53
|
+
case 5 /* ASTTag.NeverKeyword */:
|
|
54
|
+
return tsplus_module_2.now("never");
|
|
55
|
+
case 6 /* ASTTag.UnknownKeyword */:
|
|
56
|
+
return tsplus_module_2.now("unknown");
|
|
57
|
+
case 7 /* ASTTag.AnyKeyword */:
|
|
58
|
+
return tsplus_module_2.now("any");
|
|
59
|
+
case 8 /* ASTTag.StringKeyword */:
|
|
60
|
+
return tsplus_module_2.now("string");
|
|
61
|
+
case 9 /* ASTTag.NumberKeyword */:
|
|
62
|
+
return tsplus_module_2.now("number");
|
|
63
|
+
case 10 /* ASTTag.BooleanKeyword */:
|
|
64
|
+
return tsplus_module_2.now("boolean");
|
|
65
|
+
case 11 /* ASTTag.BigIntKeyword */:
|
|
66
|
+
return tsplus_module_2.now("bigint");
|
|
67
|
+
case 12 /* ASTTag.SymbolKeyword */:
|
|
68
|
+
return tsplus_module_2.now("symbol");
|
|
69
|
+
case 13 /* ASTTag.ObjectKeyword */:
|
|
70
|
+
return tsplus_module_2.now("object");
|
|
71
|
+
case 15 /* ASTTag.TemplateLiteral */:
|
|
72
|
+
return tsplus_module_2.now("`" + formatTemplateLiteral(ast) + "`");
|
|
73
|
+
case 16 /* ASTTag.Tuple */:
|
|
74
|
+
return tsplus_module_5.flatMap(elements => tsplus_module_5.flatMap(restElements => tsplus_module_2.always(() => {
|
|
75
|
+
if (elements.length === 0 && restElements.length === 1) {
|
|
76
|
+
if (ast.isReadonly) {
|
|
77
|
+
return `ReadonlyArray<${tsplus_module_3.unsafeGet(0)(restElements)}>`;
|
|
78
|
+
} else {
|
|
79
|
+
return `Array<${tsplus_module_3.unsafeGet(0)(restElements)}>`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const prefix = (ast.isReadonly ? "readonly " : "") + "[" + tsplus_module_3.join(", ")(elements);
|
|
83
|
+
const middle = restElements.length > 0 ? ", " : "";
|
|
84
|
+
const suffix = tsplus_module_3.join(", ")(tsplus_module_3.map(s => `...${s}`)(restElements)) + "]";
|
|
85
|
+
return prefix + middle + suffix;
|
|
86
|
+
}))(tsplus_module_7.match(() => tsplus_module_2.now(tsplus_module_3.empty()), rest => tsplus_module_3._traverse(rest)(tsplus_module_4.Applicative)(go))(ast.rest)))(tsplus_module_3._traverse(tsplus_module_3.map(element => element.type)(ast.elements))(tsplus_module_4.Applicative)(go));
|
|
87
|
+
case 17 /* ASTTag.TypeLiteral */:
|
|
88
|
+
return tsplus_module_5.flatMap(propertySignatures => tsplus_module_5.map(indexSignatures => {
|
|
89
|
+
const required = [];
|
|
90
|
+
const optional = [];
|
|
91
|
+
tsplus_module_3.forEachWithIndex((i, ps) => {
|
|
92
|
+
const name = ps.name;
|
|
93
|
+
if (!ps.isOptional) {
|
|
94
|
+
required.push([name, tsplus_module_3.unsafeGet(i)(propertySignatures)]);
|
|
95
|
+
} else {
|
|
96
|
+
optional.push([name, tsplus_module_3.unsafeGet(i)(propertySignatures)]);
|
|
97
|
+
}
|
|
98
|
+
})(ast.propertySignatures);
|
|
99
|
+
const prefix = "{";
|
|
100
|
+
const properties = required.concat(optional).sort(([k1], [k2]) => k1.toLocaleString().localeCompare(k2.toLocaleString())).map(([propertyKey, type]) => `${String(propertyKey)}: ${type}`).join(", ");
|
|
101
|
+
const index = tsplus_module_3.join(", ")(tsplus_module_3.map(([param, type]) => `[x: ${param}]: ${type}`)(indexSignatures));
|
|
102
|
+
const suffix = "}";
|
|
103
|
+
return prefix + " " + properties + (index.length === 0 ? "" : ", ") + index + " " + suffix;
|
|
104
|
+
})(tsplus_module_3._traverse(ast.indexSignatures)(tsplus_module_4.Applicative)(is => tsplus_module_5.zip(go(is.type))(go(is.parameter)))))(tsplus_module_3._traverse(ast.propertySignatures)(tsplus_module_4.Applicative)(ps => go(ps.type)));
|
|
105
|
+
case 18 /* ASTTag.Union */:
|
|
106
|
+
return tsplus_module_5.map(ts => tsplus_module_3.join(" | ")(ts))(tsplus_module_3._traverse(ast.types)(tsplus_module_4.Applicative)(go));
|
|
107
|
+
case 19 /* ASTTag.Lazy */:
|
|
108
|
+
{
|
|
109
|
+
const f = () => go(ast.getAST());
|
|
110
|
+
const get = (0, _utils.memoize)(f);
|
|
111
|
+
return tsplus_module_2.defer(() => get(f));
|
|
112
|
+
}
|
|
113
|
+
case 14 /* ASTTag.Enum */:
|
|
114
|
+
{
|
|
115
|
+
return tsplus_module_2.now(tsplus_module_3.join(" | ")(tsplus_module_3.map(([name]) => name)(ast.enums)));
|
|
116
|
+
}
|
|
117
|
+
case 20 /* ASTTag.Refinement */:
|
|
118
|
+
{
|
|
119
|
+
return tsplus_module_7.match(() => tsplus_module_5.map(from => `Refined<${from}>`)(go(ast.from)), id => tsplus_module_2.now(id))(ast.annotations.get(tsplus_module_6.Identifier));
|
|
120
|
+
}
|
|
121
|
+
case 21 /* ASTTag.Transform */:
|
|
122
|
+
return go(ast.to);
|
|
123
|
+
case 22 /* ASTTag.Validation */:
|
|
124
|
+
{
|
|
125
|
+
return tsplus_module_5.map(from => {
|
|
126
|
+
const validationNames = tsplus_module_3.join(" & ")(tsplus_module_3.map(v => v.name)(ast.validation));
|
|
127
|
+
if (validationNames.length <= 0) {
|
|
128
|
+
return from;
|
|
129
|
+
}
|
|
130
|
+
return `${from} & ${validationNames}`;
|
|
131
|
+
})(go(ast.from));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
function formatTemplateLiteralSpan(span) {
|
|
136
|
+
switch (span.type._tag) {
|
|
137
|
+
case 8 /* ASTTag.StringKeyword */:
|
|
138
|
+
return "${string}";
|
|
139
|
+
case 9 /* ASTTag.NumberKeyword */:
|
|
140
|
+
return "${number}";
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function formatTemplateLiteral(ast) {
|
|
144
|
+
return ast.head + tsplus_module_3.join("")(tsplus_module_3.map(span => formatTemplateLiteralSpan(span) + span.literal)(ast.spans));
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=Show.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Show.cjs","names":["_utils","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","show","self","ev","go","ast","tsplus_module_1","run","memoize","_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","s","empty","rest","element","type","propertySignatures","indexSignatures","required","optional","forEachWithIndex","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/_mjs/Gen.mjs
CHANGED
|
@@ -108,7 +108,6 @@ const go = /*#__PURE__*/memoize(function go(ast) {
|
|
|
108
108
|
{
|
|
109
109
|
const propertySignatureTypes = tsplus_module_4.map(ps => go(ps.type))(ast.propertySignatures);
|
|
110
110
|
const indexSignatures = tsplus_module_4.map(is => [go(is.parameter), go(is.type)])(ast.indexSignatures);
|
|
111
|
-
const gens = {};
|
|
112
111
|
const requiredGens = {};
|
|
113
112
|
const optionalGens = {};
|
|
114
113
|
for (let i = 0; i < propertySignatureTypes.length; i++) {
|
|
@@ -152,7 +151,7 @@ const go = /*#__PURE__*/memoize(function go(ast) {
|
|
|
152
151
|
case 14 /* ASTTag.Enum */:
|
|
153
152
|
{
|
|
154
153
|
if (ast.enums.length === 0) {
|
|
155
|
-
return tsplus_module_3.fromIO(tsplus_module_6.haltNow(new InvalidInterpretationError("cannot build a Gen for an empty enum"), fileName_1 + ":
|
|
154
|
+
return tsplus_module_3.fromIO(tsplus_module_6.haltNow(new InvalidInterpretationError("cannot build a Gen for an empty enum"), fileName_1 + ":146:37"));
|
|
156
155
|
}
|
|
157
156
|
return tsplus_module_3.oneOf(...tsplus_module_4.map(([_, value]) => tsplus_module_3.constant(value))(ast.enums));
|
|
158
157
|
}
|
package/_mjs/Gen.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gen.mjs","names":["InvalidInterpretationError","memoize","genFrom","self","go","tsplus_module_1","getFrom","ast","genTo","getHook","annotations","get","tsplus_module_2","GenHook","record","key","value","tsplus_module_3","map","tuples","out","k","v","arrayWith","maxLength","tuple","_tag","tsplus_module_5","match","type","hook","tsplus_module_4","typeParameters","constant","literal","symbol","undefined","fromIO","tsplus_module_6","haltNow","fileName_1","anything","fullUnicodeString","float","boolean","bigInt","s","Symbol","for","components","head","span","spans","push","join","elements","e","rest","tsplus_module_7","restElement","output","length","tsplus_module_8","isNothing","firstOptionalIndex","findIndex","isOptional","flatMap","as","i","slice","intWith","min","max","isJust","unsafeHead","tail","j","a","unsafeGet","propertySignatureTypes","ps","propertySignatures","indexSignatures","is","parameter","
|
|
1
|
+
{"version":3,"file":"Gen.mjs","names":["InvalidInterpretationError","memoize","genFrom","self","go","tsplus_module_1","getFrom","ast","genTo","getHook","annotations","get","tsplus_module_2","GenHook","record","key","value","tsplus_module_3","map","tuples","out","k","v","arrayWith","maxLength","tuple","_tag","tsplus_module_5","match","type","hook","tsplus_module_4","typeParameters","constant","literal","symbol","undefined","fromIO","tsplus_module_6","haltNow","fileName_1","anything","fullUnicodeString","float","boolean","bigInt","s","Symbol","for","components","head","span","spans","push","join","elements","e","rest","tsplus_module_7","restElement","output","length","tsplus_module_8","isNothing","firstOptionalIndex","findIndex","isOptional","flatMap","as","i","slice","intWith","min","max","isJust","unsafeHead","tail","j","a","unsafeGet","propertySignatureTypes","ps","propertySignatures","indexSignatures","is","parameter","requiredGens","optionalGens","name","zipWith","partial","b","struct","o","d","types","oneOf","f","getAST","defer","handler","enums","_","from","filter","tsplus_module_9","isRight","decode","to","every","validate","validation"],"sources":["../_src/Gen.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export function deriveStruct(...[requiredFields, optionalFields, maybeFields]) {
|
|
|
43
43
|
tsplus_module_3.createUnion(tsplus_module_1.vector(tsplus_module_3.undefinedKeyword, tsplus_module_3.createLiteral(null), maybeFields[key].ast)), true, true))(maybeFieldsKeys))(propertySignatures), tsplus_module_1.empty()));
|
|
44
44
|
const to = tsplus_module_4.make(tsplus_module_3.createTypeLiteral(tsplus_module_1.concat(tsplus_module_1.map(key =>
|
|
45
45
|
// @ts-expect-error
|
|
46
|
-
tsplus_module_3.createPropertySignature(key, tsplus_module_5.maybe(maybeFields[key]).ast,
|
|
46
|
+
tsplus_module_3.createPropertySignature(key, tsplus_module_5.maybe(maybeFields[key]).ast, false, true))(maybeFieldsKeys))(propertySignatures), tsplus_module_1.empty()));
|
|
47
47
|
return tsplus_module_4.transform(to, input => {
|
|
48
48
|
const output = {
|
|
49
49
|
...input
|
|
@@ -87,12 +87,17 @@ export function deriveLazy(f) {
|
|
|
87
87
|
return tsplus_module_4.make(ast);
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
90
|
-
* @tsplus derive fncts.schema.Schema[fncts.Array]<_> 10
|
|
91
90
|
* @tsplus derive fncts.schema.Schema[fncts.ReadonlyArray]<_> 10
|
|
92
91
|
*/
|
|
93
|
-
export function
|
|
92
|
+
export function deriveReadonlyArray(...[element]) {
|
|
94
93
|
return tsplus_module_4.array(element);
|
|
95
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* @tsplus derive fncts.schema.Schema[fncts.Array]<_> 10
|
|
97
|
+
*/
|
|
98
|
+
export function deriveArray(...[element]) {
|
|
99
|
+
return tsplus_module_4.mutableArray(element);
|
|
100
|
+
}
|
|
96
101
|
/**
|
|
97
102
|
* @tsplus derive fncts.schema.Schema<_> 15
|
|
98
103
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivations.mjs","names":["ownKeys","deriveValidation","base","brands","tsplus_module_4","make","tsplus_module_3","createValidation","ast","tsplus_module_1","from","Object","values","annotations","annotate","tsplus_module_2","Brand","deriveLiteral","value","literal","deriveStruct","requiredFields","optionalFields","maybeFields","maybeFieldsKeys","propertySignatures","map","key","createPropertySignature","concat","struct","createTypeLiteral","empty","isEmpty","createUnion","vector","undefinedKeyword","createLiteral","to","tsplus_module_5","maybe","transform","input","output","tsplus_module_6","fromNullable","tsplus_module_7","isNothing","tsplus_module_8","toUndefined","deriveTuple","components","tuple","deriveLazy","f","cached","createLazy","
|
|
1
|
+
{"version":3,"file":"derivations.mjs","names":["ownKeys","deriveValidation","base","brands","tsplus_module_4","make","tsplus_module_3","createValidation","ast","tsplus_module_1","from","Object","values","annotations","annotate","tsplus_module_2","Brand","deriveLiteral","value","literal","deriveStruct","requiredFields","optionalFields","maybeFields","maybeFieldsKeys","propertySignatures","map","key","createPropertySignature","concat","struct","createTypeLiteral","empty","isEmpty","createUnion","vector","undefinedKeyword","createLiteral","to","tsplus_module_5","maybe","transform","input","output","tsplus_module_6","fromNullable","tsplus_module_7","isNothing","tsplus_module_8","toUndefined","deriveTuple","components","tuple","deriveLazy","f","cached","createLazy","deriveReadonlyArray","element","array","deriveArray","mutableArray","deriveRecord","keySchema","valueSchema","record"],"sources":["../../_src/Schema/derivations.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/_mjs/Show.mjs
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@fncts/base/control/Eval/run";
|
|
2
|
+
import * as tsplus_module_2 from "@fncts/base/control/Eval/constructors";
|
|
3
|
+
import * as tsplus_module_3 from "@fncts/base/collection/immutable/Vector/api";
|
|
4
|
+
import * as tsplus_module_4 from "@fncts/base/control/Eval/instance";
|
|
5
|
+
import * as tsplus_module_5 from "@fncts/base/control/Eval/api";
|
|
6
|
+
import * as tsplus_module_6 from "@fncts/schema/ASTAnnotation";
|
|
7
|
+
import * as tsplus_module_7 from "@fncts/base/data/Maybe/destructors";
|
|
8
|
+
import { memoize } from "@fncts/schema/utils";
|
|
9
|
+
/**
|
|
10
|
+
* @tsplus getter fncts.schema.Schema show
|
|
11
|
+
*/
|
|
12
|
+
export function show(self) {
|
|
13
|
+
const ev = go(self.ast);
|
|
14
|
+
return tsplus_module_1.run(ev);
|
|
15
|
+
}
|
|
16
|
+
const go = /*#__PURE__*/memoize(function go(ast) {
|
|
17
|
+
void 0;
|
|
18
|
+
switch (ast._tag) {
|
|
19
|
+
case 0 /* ASTTag.Declaration */:
|
|
20
|
+
{
|
|
21
|
+
return tsplus_module_7.match(() => tsplus_module_2.now("Unknown Type"), id => {
|
|
22
|
+
return tsplus_module_5.map(ts => {
|
|
23
|
+
if (ts.length <= 0) {
|
|
24
|
+
return id;
|
|
25
|
+
} else {
|
|
26
|
+
return `${id}<${tsplus_module_3.join(", ")(ts)}>`;
|
|
27
|
+
}
|
|
28
|
+
})(tsplus_module_3._traverse(ast.typeParameters)(tsplus_module_4.Applicative)(go));
|
|
29
|
+
})(ast.annotations.get(tsplus_module_6.Identifier));
|
|
30
|
+
}
|
|
31
|
+
case 1 /* ASTTag.Literal */:
|
|
32
|
+
{
|
|
33
|
+
if (ast.literal === null) {
|
|
34
|
+
return tsplus_module_2.now("null");
|
|
35
|
+
} else {
|
|
36
|
+
return tsplus_module_2.now(ast.literal.toString());
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
case 2 /* ASTTag.UniqueSymbol */:
|
|
40
|
+
return tsplus_module_2.now(ast.symbol.toString());
|
|
41
|
+
case 3 /* ASTTag.UndefinedKeyword */:
|
|
42
|
+
return tsplus_module_2.now("undefined");
|
|
43
|
+
case 4 /* ASTTag.VoidKeyword */:
|
|
44
|
+
return tsplus_module_2.now("void");
|
|
45
|
+
case 5 /* ASTTag.NeverKeyword */:
|
|
46
|
+
return tsplus_module_2.now("never");
|
|
47
|
+
case 6 /* ASTTag.UnknownKeyword */:
|
|
48
|
+
return tsplus_module_2.now("unknown");
|
|
49
|
+
case 7 /* ASTTag.AnyKeyword */:
|
|
50
|
+
return tsplus_module_2.now("any");
|
|
51
|
+
case 8 /* ASTTag.StringKeyword */:
|
|
52
|
+
return tsplus_module_2.now("string");
|
|
53
|
+
case 9 /* ASTTag.NumberKeyword */:
|
|
54
|
+
return tsplus_module_2.now("number");
|
|
55
|
+
case 10 /* ASTTag.BooleanKeyword */:
|
|
56
|
+
return tsplus_module_2.now("boolean");
|
|
57
|
+
case 11 /* ASTTag.BigIntKeyword */:
|
|
58
|
+
return tsplus_module_2.now("bigint");
|
|
59
|
+
case 12 /* ASTTag.SymbolKeyword */:
|
|
60
|
+
return tsplus_module_2.now("symbol");
|
|
61
|
+
case 13 /* ASTTag.ObjectKeyword */:
|
|
62
|
+
return tsplus_module_2.now("object");
|
|
63
|
+
case 15 /* ASTTag.TemplateLiteral */:
|
|
64
|
+
return tsplus_module_2.now("`" + formatTemplateLiteral(ast) + "`");
|
|
65
|
+
case 16 /* ASTTag.Tuple */:
|
|
66
|
+
return tsplus_module_5.flatMap(elements => tsplus_module_5.flatMap(restElements => tsplus_module_2.always(() => {
|
|
67
|
+
if (elements.length === 0 && restElements.length === 1) {
|
|
68
|
+
if (ast.isReadonly) {
|
|
69
|
+
return `ReadonlyArray<${tsplus_module_3.unsafeGet(0)(restElements)}>`;
|
|
70
|
+
} else {
|
|
71
|
+
return `Array<${tsplus_module_3.unsafeGet(0)(restElements)}>`;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const prefix = (ast.isReadonly ? "readonly " : "") + "[" + tsplus_module_3.join(", ")(elements);
|
|
75
|
+
const middle = restElements.length > 0 ? ", " : "";
|
|
76
|
+
const suffix = tsplus_module_3.join(", ")(tsplus_module_3.map(s => `...${s}`)(restElements)) + "]";
|
|
77
|
+
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)(go))(ast.rest)))(tsplus_module_3._traverse(tsplus_module_3.map(element => element.type)(ast.elements))(tsplus_module_4.Applicative)(go));
|
|
79
|
+
case 17 /* ASTTag.TypeLiteral */:
|
|
80
|
+
return tsplus_module_5.flatMap(propertySignatures => tsplus_module_5.map(indexSignatures => {
|
|
81
|
+
const required = [];
|
|
82
|
+
const optional = [];
|
|
83
|
+
tsplus_module_3.forEachWithIndex((i, ps) => {
|
|
84
|
+
const name = ps.name;
|
|
85
|
+
if (!ps.isOptional) {
|
|
86
|
+
required.push([name, tsplus_module_3.unsafeGet(i)(propertySignatures)]);
|
|
87
|
+
} else {
|
|
88
|
+
optional.push([name, tsplus_module_3.unsafeGet(i)(propertySignatures)]);
|
|
89
|
+
}
|
|
90
|
+
})(ast.propertySignatures);
|
|
91
|
+
const prefix = "{";
|
|
92
|
+
const properties = required.concat(optional).sort(([k1], [k2]) => k1.toLocaleString().localeCompare(k2.toLocaleString())).map(([propertyKey, type]) => `${String(propertyKey)}: ${type}`).join(", ");
|
|
93
|
+
const index = tsplus_module_3.join(", ")(tsplus_module_3.map(([param, type]) => `[x: ${param}]: ${type}`)(indexSignatures));
|
|
94
|
+
const suffix = "}";
|
|
95
|
+
return prefix + " " + properties + (index.length === 0 ? "" : ", ") + index + " " + suffix;
|
|
96
|
+
})(tsplus_module_3._traverse(ast.indexSignatures)(tsplus_module_4.Applicative)(is => tsplus_module_5.zip(go(is.type))(go(is.parameter)))))(tsplus_module_3._traverse(ast.propertySignatures)(tsplus_module_4.Applicative)(ps => go(ps.type)));
|
|
97
|
+
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)(go));
|
|
99
|
+
case 19 /* ASTTag.Lazy */:
|
|
100
|
+
{
|
|
101
|
+
const f = () => go(ast.getAST());
|
|
102
|
+
const get = memoize(f);
|
|
103
|
+
return tsplus_module_2.defer(() => get(f));
|
|
104
|
+
}
|
|
105
|
+
case 14 /* ASTTag.Enum */:
|
|
106
|
+
{
|
|
107
|
+
return tsplus_module_2.now(tsplus_module_3.join(" | ")(tsplus_module_3.map(([name]) => name)(ast.enums)));
|
|
108
|
+
}
|
|
109
|
+
case 20 /* ASTTag.Refinement */:
|
|
110
|
+
{
|
|
111
|
+
return tsplus_module_7.match(() => tsplus_module_5.map(from => `Refined<${from}>`)(go(ast.from)), id => tsplus_module_2.now(id))(ast.annotations.get(tsplus_module_6.Identifier));
|
|
112
|
+
}
|
|
113
|
+
case 21 /* ASTTag.Transform */:
|
|
114
|
+
return go(ast.to);
|
|
115
|
+
case 22 /* ASTTag.Validation */:
|
|
116
|
+
{
|
|
117
|
+
return tsplus_module_5.map(from => {
|
|
118
|
+
const validationNames = tsplus_module_3.join(" & ")(tsplus_module_3.map(v => v.name)(ast.validation));
|
|
119
|
+
if (validationNames.length <= 0) {
|
|
120
|
+
return from;
|
|
121
|
+
}
|
|
122
|
+
return `${from} & ${validationNames}`;
|
|
123
|
+
})(go(ast.from));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
function formatTemplateLiteralSpan(span) {
|
|
128
|
+
switch (span.type._tag) {
|
|
129
|
+
case 8 /* ASTTag.StringKeyword */:
|
|
130
|
+
return "${string}";
|
|
131
|
+
case 9 /* ASTTag.NumberKeyword */:
|
|
132
|
+
return "${number}";
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function formatTemplateLiteral(ast) {
|
|
136
|
+
return ast.head + tsplus_module_3.join("")(tsplus_module_3.map(span => formatTemplateLiteralSpan(span) + span.literal)(ast.spans));
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=Show.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Show.mjs","names":["memoize","show","self","ev","go","ast","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","get","tsplus_module_6","Identifier","literal","toString","symbol","formatTemplateLiteral","flatMap","elements","restElements","always","isReadonly","unsafeGet","prefix","middle","suffix","s","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/Gen.ts
CHANGED
|
@@ -106,7 +106,6 @@ const go = memoize(function go(ast: AST): Gen<Sized, any> {
|
|
|
106
106
|
case ASTTag.TypeLiteral: {
|
|
107
107
|
const propertySignatureTypes = ast.propertySignatures.map((ps) => go(ps.type));
|
|
108
108
|
const indexSignatures = ast.indexSignatures.map((is) => [go(is.parameter), go(is.type)] as const);
|
|
109
|
-
const gens: any = {};
|
|
110
109
|
const requiredGens: Record<PropertyKey, Gen<any, any>> = {};
|
|
111
110
|
const optionalGens: Record<PropertyKey, Gen<any, any>> = {};
|
|
112
111
|
for (let i = 0; i < propertySignatureTypes.length; i++) {
|
|
@@ -107,7 +107,7 @@ export function deriveStruct<A extends Record<string, any>>(
|
|
|
107
107
|
propertySignatures.concat(
|
|
108
108
|
maybeFieldsKeys.map((key) =>
|
|
109
109
|
// @ts-expect-error
|
|
110
|
-
AST.createPropertySignature(key, Schema.maybe(maybeFields![key]!).ast,
|
|
110
|
+
AST.createPropertySignature(key, Schema.maybe(maybeFields![key]!).ast, false, true),
|
|
111
111
|
),
|
|
112
112
|
),
|
|
113
113
|
Vector.empty(),
|
|
@@ -162,10 +162,9 @@ export function deriveLazy<A>(f: (_: Schema<A>) => Schema<A>): Schema<A> {
|
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
/**
|
|
165
|
-
* @tsplus derive fncts.schema.Schema[fncts.Array]<_> 10
|
|
166
165
|
* @tsplus derive fncts.schema.Schema[fncts.ReadonlyArray]<_> 10
|
|
167
166
|
*/
|
|
168
|
-
export function
|
|
167
|
+
export function deriveReadonlyArray<A extends ReadonlyArray<any>>(
|
|
169
168
|
...[element]: [A] extends [ReadonlyArray<infer _A>]
|
|
170
169
|
? Check<Check.IsEqual<A, ReadonlyArray<_A>>> extends Check.True
|
|
171
170
|
? [element: Schema<_A>]
|
|
@@ -175,6 +174,19 @@ export function deriveArray<A extends ReadonlyArray<any>>(
|
|
|
175
174
|
return Schema.array(element) as unknown as Schema<A>;
|
|
176
175
|
}
|
|
177
176
|
|
|
177
|
+
/**
|
|
178
|
+
* @tsplus derive fncts.schema.Schema[fncts.Array]<_> 10
|
|
179
|
+
*/
|
|
180
|
+
export function deriveArray<A extends Array<any>>(
|
|
181
|
+
...[element]: [A] extends [Array<infer _A>]
|
|
182
|
+
? Check<Check.IsEqual<A, Array<_A>>> extends Check.True
|
|
183
|
+
? [element: Schema<_A>]
|
|
184
|
+
: never
|
|
185
|
+
: never
|
|
186
|
+
): Schema<A> {
|
|
187
|
+
return Schema.mutableArray(element) as unknown as Schema<A>;
|
|
188
|
+
}
|
|
189
|
+
|
|
178
190
|
/**
|
|
179
191
|
* @tsplus derive fncts.schema.Schema<_> 15
|
|
180
192
|
*/
|
package/_src/Show.ts
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import type { TemplateLiteral, TemplateLiteralSpan } from "@fncts/schema/AST";
|
|
2
|
+
|
|
3
|
+
import { ASTTag } from "@fncts/schema/AST";
|
|
4
|
+
import { ASTAnnotation } from "@fncts/schema/ASTAnnotation";
|
|
5
|
+
import { memoize } from "@fncts/schema/utils";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @tsplus getter fncts.schema.Schema show
|
|
9
|
+
*/
|
|
10
|
+
export function show<A>(self: Schema<A>): string {
|
|
11
|
+
const ev = go(self.ast);
|
|
12
|
+
return ev.run;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const go = memoize(function go(ast: AST): Eval<string> {
|
|
16
|
+
AST.concrete(ast);
|
|
17
|
+
switch (ast._tag) {
|
|
18
|
+
case ASTTag.Declaration: {
|
|
19
|
+
return ast.annotations.get(ASTAnnotation.Identifier).match(
|
|
20
|
+
() => Eval.now("Unknown Type"),
|
|
21
|
+
(id) => {
|
|
22
|
+
return ast.typeParameters
|
|
23
|
+
.traverse(Eval.Applicative)(go)
|
|
24
|
+
.map((ts) => {
|
|
25
|
+
if (ts.length <= 0) {
|
|
26
|
+
return id;
|
|
27
|
+
} else {
|
|
28
|
+
return `${id}<${ts.join(", ")}>`;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
case ASTTag.Literal: {
|
|
35
|
+
if (ast.literal === null) {
|
|
36
|
+
return Eval.now("null");
|
|
37
|
+
} else {
|
|
38
|
+
return Eval.now(ast.literal.toString());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
case ASTTag.UniqueSymbol:
|
|
42
|
+
return Eval.now(ast.symbol.toString());
|
|
43
|
+
case ASTTag.UndefinedKeyword:
|
|
44
|
+
return Eval.now("undefined");
|
|
45
|
+
case ASTTag.VoidKeyword:
|
|
46
|
+
return Eval.now("void");
|
|
47
|
+
case ASTTag.NeverKeyword:
|
|
48
|
+
return Eval.now("never");
|
|
49
|
+
case ASTTag.UnknownKeyword:
|
|
50
|
+
return Eval.now("unknown");
|
|
51
|
+
case ASTTag.AnyKeyword:
|
|
52
|
+
return Eval.now("any");
|
|
53
|
+
case ASTTag.StringKeyword:
|
|
54
|
+
return Eval.now("string");
|
|
55
|
+
case ASTTag.NumberKeyword:
|
|
56
|
+
return Eval.now("number");
|
|
57
|
+
case ASTTag.BooleanKeyword:
|
|
58
|
+
return Eval.now("boolean");
|
|
59
|
+
case ASTTag.BigIntKeyword:
|
|
60
|
+
return Eval.now("bigint");
|
|
61
|
+
case ASTTag.SymbolKeyword:
|
|
62
|
+
return Eval.now("symbol");
|
|
63
|
+
case ASTTag.ObjectKeyword:
|
|
64
|
+
return Eval.now("object");
|
|
65
|
+
case ASTTag.TemplateLiteral:
|
|
66
|
+
return Eval.now("`" + formatTemplateLiteral(ast) + "`");
|
|
67
|
+
case ASTTag.Tuple:
|
|
68
|
+
return Do((Δ) => {
|
|
69
|
+
const elements = Δ(ast.elements.map((element) => element.type).traverse(Eval.Applicative)(go));
|
|
70
|
+
const restElements = Δ(
|
|
71
|
+
ast.rest.match(
|
|
72
|
+
() => Eval.now(Vector.empty<string>()),
|
|
73
|
+
(rest) => rest.traverse(Eval.Applicative)(go),
|
|
74
|
+
),
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
return Δ(
|
|
78
|
+
Eval(() => {
|
|
79
|
+
if (elements.length === 0 && restElements.length === 1) {
|
|
80
|
+
if (ast.isReadonly) {
|
|
81
|
+
return `ReadonlyArray<${restElements[0]}>`;
|
|
82
|
+
} else {
|
|
83
|
+
return `Array<${restElements[0]}>`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const prefix = (ast.isReadonly ? "readonly " : "") + "[" + elements.join(", ");
|
|
88
|
+
const middle = restElements.length > 0 ? ", " : "";
|
|
89
|
+
const suffix = restElements.map((s) => `...${s}`).join(", ") + "]";
|
|
90
|
+
return prefix + middle + suffix;
|
|
91
|
+
}),
|
|
92
|
+
);
|
|
93
|
+
});
|
|
94
|
+
case ASTTag.TypeLiteral:
|
|
95
|
+
return Do((Δ) => {
|
|
96
|
+
const propertySignatures = Δ(ast.propertySignatures.traverse(Eval.Applicative)((ps) => go(ps.type)));
|
|
97
|
+
const indexSignatures = Δ(
|
|
98
|
+
ast.indexSignatures.traverse(Eval.Applicative)((is) => go(is.parameter).zip(go(is.type))),
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
const required: Array<[PropertyKey, string]> = [];
|
|
102
|
+
const optional: Array<[PropertyKey, string]> = [];
|
|
103
|
+
|
|
104
|
+
ast.propertySignatures.forEachWithIndex((i, ps) => {
|
|
105
|
+
const name = ps.name;
|
|
106
|
+
if (!ps.isOptional) {
|
|
107
|
+
required.push([name, propertySignatures[i]!]);
|
|
108
|
+
} else {
|
|
109
|
+
optional.push([name, propertySignatures[i]!]);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
const prefix = "{";
|
|
114
|
+
const properties = required
|
|
115
|
+
.concat(optional)
|
|
116
|
+
.sort(([k1], [k2]) => k1.toLocaleString().localeCompare(k2.toLocaleString()))
|
|
117
|
+
.map(([propertyKey, type]) => `${String(propertyKey)}: ${type}`)
|
|
118
|
+
.join(", ");
|
|
119
|
+
const index = indexSignatures.map(([param, type]) => `[x: ${param}]: ${type}`).join(", ");
|
|
120
|
+
const suffix = "}";
|
|
121
|
+
|
|
122
|
+
return prefix + " " + properties + (index.length === 0 ? "" : ", ") + index + " " + suffix;
|
|
123
|
+
});
|
|
124
|
+
case ASTTag.Union:
|
|
125
|
+
return ast.types
|
|
126
|
+
.traverse(Eval.Applicative)(go)
|
|
127
|
+
.map((ts) => ts.join(" | "));
|
|
128
|
+
case ASTTag.Lazy: {
|
|
129
|
+
const f = () => go(ast.getAST());
|
|
130
|
+
const get = memoize<typeof f, Eval<string>>(f);
|
|
131
|
+
return Eval.defer(() => get(f));
|
|
132
|
+
}
|
|
133
|
+
case ASTTag.Enum: {
|
|
134
|
+
return Eval.now(ast.enums.map(([name]) => name).join(" | "));
|
|
135
|
+
}
|
|
136
|
+
case ASTTag.Refinement: {
|
|
137
|
+
return ast.annotations.get(ASTAnnotation.Identifier).match(
|
|
138
|
+
() => go(ast.from).map((from) => `Refined<${from}>`),
|
|
139
|
+
(id) => Eval.now(id),
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
case ASTTag.Transform:
|
|
143
|
+
return go(ast.to);
|
|
144
|
+
case ASTTag.Validation: {
|
|
145
|
+
return go(ast.from).map((from) => {
|
|
146
|
+
const validationNames = ast.validation.map((v) => v.name).join(" & ");
|
|
147
|
+
|
|
148
|
+
if (validationNames.length <= 0) {
|
|
149
|
+
return from;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return `${from} & ${validationNames}`;
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
function formatTemplateLiteralSpan(span: TemplateLiteralSpan): string {
|
|
159
|
+
switch (span.type._tag) {
|
|
160
|
+
case ASTTag.StringKeyword:
|
|
161
|
+
return "${string}";
|
|
162
|
+
case ASTTag.NumberKeyword:
|
|
163
|
+
return "${number}";
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function formatTemplateLiteral(ast: TemplateLiteral): string {
|
|
168
|
+
return ast.head + ast.spans.map((span) => formatTemplateLiteralSpan(span) + span.literal).join("");
|
|
169
|
+
}
|
package/_src/global.ts
CHANGED
package/global.d.ts
CHANGED