justus 0.5.1 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dts-generator.cjs +264 -42
- package/dist/dts-generator.cjs.map +2 -2
- package/dist/dts-generator.d.ts +32 -3
- package/dist/dts-generator.mjs +263 -42
- package/dist/dts-generator.mjs.map +2 -2
- package/dist/extra/uuid.cjs.map +1 -1
- package/dist/extra/uuid.d.ts +1 -1
- package/dist/extra/uuid.mjs.map +1 -1
- package/dist/types.cjs +3 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.ts +17 -6
- package/dist/types.mjs +3 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utilities.cjs +2 -0
- package/dist/utilities.cjs.map +1 -1
- package/dist/utilities.d.ts +1 -5
- package/dist/utilities.mjs +2 -0
- package/dist/utilities.mjs.map +1 -1
- package/package.json +5 -8
- package/src/dts-generator.ts +411 -55
- package/src/extra/uuid.ts +1 -1
- package/src/types.ts +18 -6
- package/src/utilities.ts +4 -5
package/dist/dts-generator.cjs
CHANGED
|
@@ -30,13 +30,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// dts-generator.ts
|
|
31
31
|
var dts_generator_exports = {};
|
|
32
32
|
__export(dts_generator_exports, {
|
|
33
|
+
generateDeclarations: () => generateDeclarations,
|
|
33
34
|
generateTypes: () => generateTypes,
|
|
34
35
|
registerTypeGenerator: () => registerTypeGenerator
|
|
35
36
|
});
|
|
36
37
|
module.exports = __toCommonJS(dts_generator_exports);
|
|
37
38
|
var import_typescript = __toESM(require("typescript"));
|
|
38
39
|
var import_errors = require("./errors.cjs");
|
|
40
|
+
var import_ean13 = require("./extra/ean13.cjs");
|
|
39
41
|
var import_url = require("./extra/url.cjs");
|
|
42
|
+
var import_uuid = require("./extra/uuid.cjs");
|
|
40
43
|
var import_utilities = require("./utilities.cjs");
|
|
41
44
|
var import_any = require("./validators/any.cjs");
|
|
42
45
|
var import_array = require("./validators/array.cjs");
|
|
@@ -50,45 +53,228 @@ var import_optional = require("./validators/optional.cjs");
|
|
|
50
53
|
var import_string = require("./validators/string.cjs");
|
|
51
54
|
var import_tuple = require("./validators/tuple.cjs");
|
|
52
55
|
var import_union = require("./validators/union.cjs");
|
|
56
|
+
function typeEqual(a, b) {
|
|
57
|
+
function eq(a2, b2) {
|
|
58
|
+
if (typeof a2 == "object" && a2 != null && (typeof b2 == "object" && b2 != null)) {
|
|
59
|
+
for (const key in a2) {
|
|
60
|
+
if (!eq(a2[key], b2[key]))
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
for (const key in b2) {
|
|
64
|
+
if (!eq(a2[key], b2[key]))
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
return true;
|
|
68
|
+
} else {
|
|
69
|
+
return a2 === b2;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return eq(a, b);
|
|
73
|
+
}
|
|
53
74
|
var generators = /* @__PURE__ */ new Map();
|
|
54
75
|
function registerTypeGenerator(validator, generator) {
|
|
55
76
|
generators.set(validator, generator);
|
|
56
77
|
}
|
|
57
|
-
function generateTypes(validations) {
|
|
78
|
+
function generateTypes(validations, isInput = false) {
|
|
58
79
|
const validators = /* @__PURE__ */ new Map();
|
|
59
80
|
const references = /* @__PURE__ */ new Map();
|
|
60
|
-
|
|
81
|
+
for (const [name, validation] of Object.entries(validations)) {
|
|
61
82
|
const validator = (0, import_utilities.getValidator)(validation);
|
|
83
|
+
validators.set(name, validator);
|
|
62
84
|
if (!references.has(validator))
|
|
63
85
|
references.set(validator, name);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
for (const [name,
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
referenceable.delete(validator);
|
|
71
|
-
}
|
|
72
|
-
const type = generateTypeNode(validator, referenceable);
|
|
73
|
-
const modifiers = [import_typescript.default.factory.createModifier(import_typescript.default.SyntaxKind.ExportKeyword)];
|
|
74
|
-
const decl = import_typescript.default.factory.createTypeAliasDeclaration(modifiers, name, [], type);
|
|
75
|
-
types.push(decl);
|
|
86
|
+
}
|
|
87
|
+
const types = generateTypeNodes(validators, references, isInput);
|
|
88
|
+
const aliases = [];
|
|
89
|
+
for (const [name, type] of types.entries()) {
|
|
90
|
+
const alias = import_typescript.default.factory.createTypeAliasDeclaration(exportModifiers, name, [], type);
|
|
91
|
+
aliases.push(alias);
|
|
76
92
|
}
|
|
77
93
|
return import_typescript.default.createPrinter().printList(
|
|
78
94
|
import_typescript.default.ListFormat.SourceFileStatements,
|
|
79
|
-
import_typescript.default.factory.createNodeArray(
|
|
95
|
+
import_typescript.default.factory.createNodeArray(aliases),
|
|
80
96
|
import_typescript.default.createSourceFile("types.d.ts", "", import_typescript.default.ScriptTarget.Latest)
|
|
81
97
|
);
|
|
82
98
|
}
|
|
83
|
-
function
|
|
99
|
+
function generateDeclarations(validations) {
|
|
100
|
+
const names = [];
|
|
101
|
+
const outputValidators = /* @__PURE__ */ new Map();
|
|
102
|
+
const outputReferences = /* @__PURE__ */ new Map();
|
|
103
|
+
const inputValidators = /* @__PURE__ */ new Map();
|
|
104
|
+
const inputReferences = /* @__PURE__ */ new Map();
|
|
105
|
+
for (const [name, validation] of Object.entries(validations)) {
|
|
106
|
+
const prefix = /validator$/i.test(name) ? name.slice(0, -9) : /validation$/i.test(name) ? name.slice(0, -10) : name;
|
|
107
|
+
const output = `${prefix.slice(0, 1).toUpperCase()}${prefix.slice(1)}`;
|
|
108
|
+
const input = `${prefix.slice(0, 1).toUpperCase()}${prefix.slice(1)}Input`;
|
|
109
|
+
const validator = (0, import_utilities.getValidator)(validation);
|
|
110
|
+
names.push({ name, output, input });
|
|
111
|
+
outputValidators.set(output, validator);
|
|
112
|
+
inputValidators.set(input, validator);
|
|
113
|
+
if (!outputReferences.has(validator))
|
|
114
|
+
outputReferences.set(validator, output);
|
|
115
|
+
if (!inputReferences.has(validator))
|
|
116
|
+
inputReferences.set(validator, input);
|
|
117
|
+
}
|
|
118
|
+
const outputTypes = generateTypeNodes(outputValidators, outputReferences, false);
|
|
119
|
+
const inputTypes = generateTypeNodes(inputValidators, inputReferences, true);
|
|
120
|
+
const statements = [];
|
|
121
|
+
for (const { name, input, output } of names) {
|
|
122
|
+
const outputType = outputTypes.get(output);
|
|
123
|
+
const inputType = inputTypes.get(input);
|
|
124
|
+
const validation = validations[name];
|
|
125
|
+
const validator = outputValidators.get(output);
|
|
126
|
+
(0, import_errors.assertSchema)(!!outputType, `No output type "${output}" generated for validation "${name}"`);
|
|
127
|
+
(0, import_errors.assertSchema)(!!inputType, `No input type "${input}" generated for validation "${name}"`);
|
|
128
|
+
(0, import_errors.assertSchema)(!!validator, `No validator for "${name}"`);
|
|
129
|
+
const sameType = typeEqual(inputType, outputType);
|
|
130
|
+
const inputAlias = sameType ? import_typescript.default.factory.createTypeReferenceNode(output) : inputType;
|
|
131
|
+
const outputDeclaration = import_typescript.default.factory.createTypeAliasDeclaration(exportModifiers, output, [], outputType);
|
|
132
|
+
const inputDeclaration = import_typescript.default.factory.createTypeAliasDeclaration(exportModifiers, input, [], inputAlias);
|
|
133
|
+
const variableDeclarationType = generateVariableDeclarationType(validation, validator, outputReferences);
|
|
134
|
+
const variableDeclaration = import_typescript.default.factory.createVariableStatement(
|
|
135
|
+
exportModifiers,
|
|
136
|
+
// "export"
|
|
137
|
+
import_typescript.default.factory.createVariableDeclarationList([
|
|
138
|
+
import_typescript.default.factory.createVariableDeclaration(
|
|
139
|
+
name,
|
|
140
|
+
// ..................................... "myTypeValidator"
|
|
141
|
+
void 0,
|
|
142
|
+
// no exclamation token
|
|
143
|
+
variableDeclarationType
|
|
144
|
+
)
|
|
145
|
+
], import_typescript.default.NodeFlags.Const)
|
|
146
|
+
// ......................... "const"
|
|
147
|
+
);
|
|
148
|
+
import_typescript.default.addSyntheticLeadingComment(
|
|
149
|
+
outputDeclaration,
|
|
150
|
+
import_typescript.default.SyntaxKind.MultiLineCommentTrivia,
|
|
151
|
+
` ${`----- ${name} `.padEnd(74, "-")} `,
|
|
152
|
+
true
|
|
153
|
+
// newline
|
|
154
|
+
);
|
|
155
|
+
import_typescript.default.addSyntheticLeadingComment(
|
|
156
|
+
outputDeclaration,
|
|
157
|
+
import_typescript.default.SyntaxKind.MultiLineCommentTrivia,
|
|
158
|
+
`* Validated type for {@link ${name}} `,
|
|
159
|
+
true
|
|
160
|
+
// newline
|
|
161
|
+
);
|
|
162
|
+
import_typescript.default.addSyntheticLeadingComment(
|
|
163
|
+
inputDeclaration,
|
|
164
|
+
import_typescript.default.SyntaxKind.MultiLineCommentTrivia,
|
|
165
|
+
`* Input type for {@link ${name}} `,
|
|
166
|
+
true
|
|
167
|
+
// newline
|
|
168
|
+
);
|
|
169
|
+
import_typescript.default.addSyntheticLeadingComment(
|
|
170
|
+
variableDeclaration,
|
|
171
|
+
import_typescript.default.SyntaxKind.MultiLineCommentTrivia,
|
|
172
|
+
`* The \`${name}\` validator `,
|
|
173
|
+
true
|
|
174
|
+
// newline
|
|
175
|
+
);
|
|
176
|
+
statements.push(
|
|
177
|
+
outputDeclaration,
|
|
178
|
+
inputDeclaration,
|
|
179
|
+
variableDeclaration
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
return import_typescript.default.createPrinter().printList(
|
|
183
|
+
import_typescript.default.ListFormat.SourceFileStatements,
|
|
184
|
+
import_typescript.default.factory.createNodeArray(statements),
|
|
185
|
+
import_typescript.default.createSourceFile("types.d.ts", "", import_typescript.default.ScriptTarget.Latest)
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
function isValidator(validation) {
|
|
189
|
+
(0, import_errors.assertSchema)(validation !== void 0, 'Found "undefined" validation in tree');
|
|
190
|
+
if (validation === null)
|
|
191
|
+
return false;
|
|
192
|
+
if (typeof validation !== "function" && typeof validation !== "object") {
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
if (Array.isArray(validation))
|
|
196
|
+
return false;
|
|
197
|
+
if ("validate" in validation && typeof validation.validate === "function") {
|
|
198
|
+
return !isValidator(validation.validate);
|
|
199
|
+
} else {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
function generateJustusTypeImport(typeName, typeArguments = []) {
|
|
204
|
+
return import_typescript.default.factory.createImportTypeNode(
|
|
205
|
+
// .................... "import"
|
|
206
|
+
import_typescript.default.factory.createLiteralTypeNode(
|
|
207
|
+
import_typescript.default.factory.createStringLiteral("justus")
|
|
208
|
+
// .......... "justus"
|
|
209
|
+
),
|
|
210
|
+
void 0,
|
|
211
|
+
// import assertions
|
|
212
|
+
import_typescript.default.factory.createIdentifier(typeName),
|
|
213
|
+
// ................. "JustusType"
|
|
214
|
+
typeArguments
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
function generateVariableDeclarationType(validation, validator, references) {
|
|
218
|
+
if (isValidator(validation)) {
|
|
219
|
+
const validatedType = generateTypeNode(validator, references, false);
|
|
220
|
+
return generateJustusTypeImport("Validator", [validatedType]);
|
|
221
|
+
}
|
|
222
|
+
if (validator instanceof import_constant.ConstantValidator) {
|
|
223
|
+
return generateTypeNode(validator, references, false);
|
|
224
|
+
}
|
|
225
|
+
if (validator instanceof import_object.ObjectValidator) {
|
|
226
|
+
const properties = [];
|
|
227
|
+
for (const [key, valueValidator] of validator.validators.entries()) {
|
|
228
|
+
const value = validator.schema[key];
|
|
229
|
+
const type = generateVariableDeclarationType(value, valueValidator, references);
|
|
230
|
+
properties.push(import_typescript.default.factory.createPropertySignature(
|
|
231
|
+
readonlyModifiers,
|
|
232
|
+
key,
|
|
233
|
+
void 0,
|
|
234
|
+
// no question mark
|
|
235
|
+
type
|
|
236
|
+
));
|
|
237
|
+
}
|
|
238
|
+
if (validator.additionalProperties) {
|
|
239
|
+
const additional = validator.additionalProperties;
|
|
240
|
+
const type = generateVariableDeclarationType(additional, additional, references);
|
|
241
|
+
properties.push(import_typescript.default.factory.createPropertySignature(
|
|
242
|
+
readonlyModifiers,
|
|
243
|
+
import_typescript.default.factory.createComputedPropertyName(
|
|
244
|
+
import_typescript.default.factory.createPropertyAccessExpression(
|
|
245
|
+
import_typescript.default.factory.createIdentifier("Symbol"),
|
|
246
|
+
"justusAdditionalValidator"
|
|
247
|
+
)
|
|
248
|
+
),
|
|
249
|
+
void 0,
|
|
250
|
+
// no question mark
|
|
251
|
+
type
|
|
252
|
+
));
|
|
253
|
+
}
|
|
254
|
+
return import_typescript.default.factory.createTypeLiteralNode(properties);
|
|
255
|
+
}
|
|
256
|
+
(0, import_errors.assertSchema)(false, `Unable to generate variable declaration for ${validator.constructor.name}`);
|
|
257
|
+
}
|
|
258
|
+
function generateTypeNodes(validators, references, isInput) {
|
|
259
|
+
const types = /* @__PURE__ */ new Map();
|
|
260
|
+
for (const [name, validator] of validators.entries()) {
|
|
261
|
+
const referenceable = new Map(references);
|
|
262
|
+
if (referenceable.get(validator) === name)
|
|
263
|
+
referenceable.delete(validator);
|
|
264
|
+
types.set(name, generateTypeNode(validator, referenceable, isInput));
|
|
265
|
+
}
|
|
266
|
+
return types;
|
|
267
|
+
}
|
|
268
|
+
function generateTypeNode(validator, references, isInput) {
|
|
84
269
|
const reference = references.get(validator);
|
|
85
270
|
if (reference)
|
|
86
271
|
return import_typescript.default.factory.createTypeReferenceNode(reference);
|
|
87
272
|
const generator = generators.get(validator) || generators.get(validator.constructor);
|
|
88
273
|
(0, import_errors.assertSchema)(!!generator, `Type generator for "${validator.constructor.name}" not found`);
|
|
89
|
-
const type = generator(validator, references);
|
|
90
|
-
if (!validator.optional)
|
|
274
|
+
const type = generator(validator, references, isInput);
|
|
275
|
+
if (!(validator.optional || isInput && validator.defaultValue !== void 0)) {
|
|
91
276
|
return type;
|
|
277
|
+
}
|
|
92
278
|
if (type === neverType)
|
|
93
279
|
return undefinedType;
|
|
94
280
|
if (import_typescript.default.isUnionTypeNode(type)) {
|
|
@@ -99,6 +285,7 @@ function generateTypeNode(validator, references) {
|
|
|
99
285
|
var anyType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.AnyKeyword);
|
|
100
286
|
var anyArrayType = import_typescript.default.factory.createArrayTypeNode(anyType);
|
|
101
287
|
var booleanType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.BooleanKeyword);
|
|
288
|
+
var dateType = import_typescript.default.factory.createTypeReferenceNode("Date");
|
|
102
289
|
var numberType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.NumberKeyword);
|
|
103
290
|
var neverType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.NeverKeyword);
|
|
104
291
|
var stringType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.StringKeyword);
|
|
@@ -116,42 +303,54 @@ var recordType = import_typescript.default.factory.createMappedTypeNode(
|
|
|
116
303
|
void 0
|
|
117
304
|
);
|
|
118
305
|
var optionalKeyword = import_typescript.default.factory.createToken(import_typescript.default.SyntaxKind.QuestionToken);
|
|
306
|
+
var exportModifiers = [import_typescript.default.factory.createModifier(import_typescript.default.SyntaxKind.ExportKeyword)];
|
|
307
|
+
var readonlyModifiers = [import_typescript.default.factory.createModifier(import_typescript.default.SyntaxKind.ReadonlyKeyword)];
|
|
119
308
|
registerTypeGenerator(import_any.AnyValidator, () => anyType);
|
|
120
309
|
registerTypeGenerator(import_array.AnyArrayValidator, () => anyArrayType);
|
|
121
310
|
registerTypeGenerator(import_number.AnyNumberValidator, () => numberType);
|
|
122
311
|
registerTypeGenerator(import_object.AnyObjectValidator, () => recordType);
|
|
123
312
|
registerTypeGenerator(import_string.AnyStringValidator, () => stringType);
|
|
124
|
-
registerTypeGenerator(import_boolean.BooleanValidator, () => booleanType);
|
|
125
313
|
registerTypeGenerator(import_never.NeverValidator, () => neverType);
|
|
126
|
-
registerTypeGenerator(
|
|
127
|
-
|
|
128
|
-
registerTypeGenerator(import_array.ArrayValidator, (validator, references) => {
|
|
129
|
-
const itemType = generateTypeNode(validator.items, references);
|
|
314
|
+
registerTypeGenerator(import_array.ArrayValidator, (validator, references, isInput) => {
|
|
315
|
+
const itemType = generateTypeNode(validator.items, references, isInput);
|
|
130
316
|
return import_typescript.default.factory.createArrayTypeNode(itemType);
|
|
131
317
|
});
|
|
318
|
+
registerTypeGenerator(import_boolean.BooleanValidator, (validator, _references, isInput) => {
|
|
319
|
+
return isInput && validator.fromString ? import_typescript.default.factory.createUnionTypeNode([
|
|
320
|
+
booleanType,
|
|
321
|
+
import_typescript.default.factory.createLiteralTypeNode(import_typescript.default.factory.createStringLiteral("true")),
|
|
322
|
+
import_typescript.default.factory.createLiteralTypeNode(import_typescript.default.factory.createStringLiteral("false"))
|
|
323
|
+
]) : booleanType;
|
|
324
|
+
});
|
|
132
325
|
registerTypeGenerator(import_constant.ConstantValidator, (validator) => {
|
|
133
326
|
const literal = typeof validator.constant === "number" ? import_typescript.default.factory.createNumericLiteral(validator.constant) : typeof validator.constant === "string" ? import_typescript.default.factory.createStringLiteral(validator.constant) : validator.constant === false ? import_typescript.default.factory.createFalse() : validator.constant === true ? import_typescript.default.factory.createTrue() : validator.constant === null ? import_typescript.default.factory.createNull() : void 0;
|
|
134
327
|
(0, import_errors.assertSchema)(!!literal, `Invalid constant "${validator.constant}"`);
|
|
135
328
|
return import_typescript.default.factory.createLiteralTypeNode(literal);
|
|
136
329
|
});
|
|
137
|
-
registerTypeGenerator(
|
|
330
|
+
registerTypeGenerator(import_date.DateValidator, (validator, _references, isInput) => {
|
|
331
|
+
return isInput ? validator.format === "iso" ? stringType : validator.format === "timestamp" ? numberType : import_typescript.default.factory.createUnionTypeNode([dateType, numberType, stringType]) : dateType;
|
|
332
|
+
});
|
|
333
|
+
registerTypeGenerator(import_number.NumberValidator, (validator, _references, isInput) => {
|
|
334
|
+
if (isInput) {
|
|
335
|
+
return validator.fromString ? import_typescript.default.factory.createUnionTypeNode([numberType, stringType]) : numberType;
|
|
336
|
+
}
|
|
138
337
|
if (!validator.brand)
|
|
139
338
|
return numberType;
|
|
140
339
|
const signature = import_typescript.default.factory.createPropertySignature(void 0, `__brand_${validator.brand}`, void 0, neverType);
|
|
141
340
|
const literal = import_typescript.default.factory.createTypeLiteralNode([signature]);
|
|
142
341
|
return import_typescript.default.factory.createIntersectionTypeNode([numberType, literal]);
|
|
143
342
|
});
|
|
144
|
-
registerTypeGenerator(import_optional.OptionalValidator, (validator, references) => {
|
|
145
|
-
return generateTypeNode(validator.validator, references);
|
|
343
|
+
registerTypeGenerator(import_optional.OptionalValidator, (validator, references, isInput) => {
|
|
344
|
+
return generateTypeNode(validator.validator, references, isInput);
|
|
146
345
|
});
|
|
147
|
-
registerTypeGenerator(import_string.StringValidator, (validator) => {
|
|
148
|
-
if (!validator.brand)
|
|
346
|
+
registerTypeGenerator(import_string.StringValidator, (validator, _references, isInput) => {
|
|
347
|
+
if (!validator.brand || isInput)
|
|
149
348
|
return stringType;
|
|
150
349
|
const signature = import_typescript.default.factory.createPropertySignature(void 0, `__brand_${validator.brand}`, void 0, neverType);
|
|
151
350
|
const literal = import_typescript.default.factory.createTypeLiteralNode([signature]);
|
|
152
351
|
return import_typescript.default.factory.createIntersectionTypeNode([stringType, literal]);
|
|
153
352
|
});
|
|
154
|
-
registerTypeGenerator(import_tuple.TupleValidator, (validator, references) => {
|
|
353
|
+
registerTypeGenerator(import_tuple.TupleValidator, (validator, references, isInput) => {
|
|
155
354
|
const members = validator.members;
|
|
156
355
|
const { count, first, next } = members.reduce(({ count: count2, first: first2, next: next2 }, { single }, i) => {
|
|
157
356
|
if (!single) {
|
|
@@ -164,35 +363,35 @@ registerTypeGenerator(import_tuple.TupleValidator, (validator, references) => {
|
|
|
164
363
|
}, { count: 0, first: members.length, next: -1 });
|
|
165
364
|
if (count < 2) {
|
|
166
365
|
const types2 = members.map(({ single, validator: validator2 }) => {
|
|
167
|
-
const memberType = generateTypeNode(validator2, references);
|
|
366
|
+
const memberType = generateTypeNode(validator2, references, isInput);
|
|
168
367
|
if (single)
|
|
169
|
-
return generateTypeNode(validator2, references);
|
|
368
|
+
return generateTypeNode(validator2, references, isInput);
|
|
170
369
|
const arrayType = import_typescript.default.factory.createArrayTypeNode(memberType);
|
|
171
370
|
return import_typescript.default.factory.createRestTypeNode(arrayType);
|
|
172
371
|
});
|
|
173
372
|
return import_typescript.default.factory.createTupleTypeNode(types2);
|
|
174
373
|
}
|
|
175
|
-
const before = members.slice(0, first).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
|
|
176
|
-
const types = members.slice(first, next).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
|
|
177
|
-
const after = members.slice(next).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
|
|
374
|
+
const before = members.slice(0, first).map(({ validator: validator2 }) => generateTypeNode(validator2, references, isInput));
|
|
375
|
+
const types = members.slice(first, next).map(({ validator: validator2 }) => generateTypeNode(validator2, references, isInput));
|
|
376
|
+
const after = members.slice(next).map(({ validator: validator2 }) => generateTypeNode(validator2, references, isInput));
|
|
178
377
|
const union = import_typescript.default.factory.createUnionTypeNode(types);
|
|
179
378
|
const array = import_typescript.default.factory.createArrayTypeNode(union);
|
|
180
379
|
const rest = import_typescript.default.factory.createRestTypeNode(array);
|
|
181
380
|
return import_typescript.default.factory.createTupleTypeNode([...before, rest, ...after]);
|
|
182
381
|
});
|
|
183
|
-
registerTypeGenerator(import_union.AllOfValidator, (validator, references) => {
|
|
184
|
-
const members = validator.validators.map((validator2) => generateTypeNode(validator2, references));
|
|
382
|
+
registerTypeGenerator(import_union.AllOfValidator, (validator, references, isInput) => {
|
|
383
|
+
const members = validator.validators.map((validator2) => generateTypeNode(validator2, references, isInput));
|
|
185
384
|
return import_typescript.default.factory.createIntersectionTypeNode(members);
|
|
186
385
|
});
|
|
187
|
-
registerTypeGenerator(import_union.OneOfValidator, (validator, references) => {
|
|
188
|
-
const members = validator.validators.map((validator2) => generateTypeNode(validator2, references));
|
|
386
|
+
registerTypeGenerator(import_union.OneOfValidator, (validator, references, isInput) => {
|
|
387
|
+
const members = validator.validators.map((validator2) => generateTypeNode(validator2, references, isInput));
|
|
189
388
|
return import_typescript.default.factory.createUnionTypeNode(members);
|
|
190
389
|
});
|
|
191
|
-
registerTypeGenerator(import_object.ObjectValidator, (validator, references) => {
|
|
390
|
+
registerTypeGenerator(import_object.ObjectValidator, (validator, references, isInput) => {
|
|
192
391
|
const properties = [];
|
|
193
392
|
for (const [key, valueValidator] of validator.validators.entries()) {
|
|
194
|
-
const type = generateTypeNode(valueValidator, references);
|
|
195
|
-
const optional = valueValidator.optional;
|
|
393
|
+
const type = generateTypeNode(valueValidator, references, isInput);
|
|
394
|
+
const optional = isInput && valueValidator.defaultValue !== void 0 || valueValidator.optional;
|
|
196
395
|
const signature = import_typescript.default.factory.createPropertySignature(
|
|
197
396
|
void 0,
|
|
198
397
|
key,
|
|
@@ -202,7 +401,7 @@ registerTypeGenerator(import_object.ObjectValidator, (validator, references) =>
|
|
|
202
401
|
properties.push(signature);
|
|
203
402
|
}
|
|
204
403
|
if (validator.additionalProperties) {
|
|
205
|
-
const propertyType = generateTypeNode(validator.additionalProperties, references);
|
|
404
|
+
const propertyType = generateTypeNode(validator.additionalProperties, references, isInput);
|
|
206
405
|
const extra = import_typescript.default.factory.createMappedTypeNode(
|
|
207
406
|
void 0,
|
|
208
407
|
// readonly
|
|
@@ -223,8 +422,31 @@ registerTypeGenerator(import_object.ObjectValidator, (validator, references) =>
|
|
|
223
422
|
return import_typescript.default.factory.createTypeLiteralNode(properties);
|
|
224
423
|
}
|
|
225
424
|
});
|
|
425
|
+
registerTypeGenerator(import_ean13.EAN13Validator, (_validator, _references, isInput) => {
|
|
426
|
+
if (isInput)
|
|
427
|
+
return import_typescript.default.factory.createUnionTypeNode([numberType, stringType]);
|
|
428
|
+
const signature = import_typescript.default.factory.createPropertySignature(void 0, "__ean_13", void 0, neverType);
|
|
429
|
+
const literal = import_typescript.default.factory.createTypeLiteralNode([signature]);
|
|
430
|
+
return import_typescript.default.factory.createIntersectionTypeNode([stringType, literal]);
|
|
431
|
+
});
|
|
432
|
+
registerTypeGenerator(import_uuid.UUIDValidator, (_validator, _references, isInput) => {
|
|
433
|
+
if (isInput)
|
|
434
|
+
return stringType;
|
|
435
|
+
const signature = import_typescript.default.factory.createPropertySignature(void 0, "__uuid", void 0, neverType);
|
|
436
|
+
const literal = import_typescript.default.factory.createTypeLiteralNode([signature]);
|
|
437
|
+
return import_typescript.default.factory.createIntersectionTypeNode([stringType, literal]);
|
|
438
|
+
});
|
|
439
|
+
registerTypeGenerator(import_url.URLValidator, (_validator, _references, isInput) => {
|
|
440
|
+
const urlType = import_typescript.default.factory.createTypeReferenceNode("URL");
|
|
441
|
+
if (isInput) {
|
|
442
|
+
return import_typescript.default.factory.createUnionTypeNode([urlType, stringType]);
|
|
443
|
+
} else {
|
|
444
|
+
return urlType;
|
|
445
|
+
}
|
|
446
|
+
});
|
|
226
447
|
// Annotate the CommonJS export names for ESM import in node:
|
|
227
448
|
0 && (module.exports = {
|
|
449
|
+
generateDeclarations,
|
|
228
450
|
generateTypes,
|
|
229
451
|
registerTypeGenerator
|
|
230
452
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/dts-generator.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["ts", "count", "first", "next", "types", "validator"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["a", "b", "ts", "count", "first", "next", "types", "validator"]
|
|
6
6
|
}
|
package/dist/dts-generator.d.ts
CHANGED
|
@@ -1,13 +1,42 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
2
|
import type { Validation, Validator } from './types';
|
|
3
3
|
/** A function taking a `Validator` and producing its `TypeNode`. */
|
|
4
|
-
type TypeGenerator<V extends Validator = Validator> = (validator: V, references: ReadonlyMap<Validator, string
|
|
4
|
+
type TypeGenerator<V extends Validator = Validator> = (validator: V, references: ReadonlyMap<Validator, string>, isInput: boolean) => ts.TypeNode;
|
|
5
5
|
/** The generic constructor of a `Validator` instance. */
|
|
6
6
|
type ValidatorConstructor<V extends Validator = Validator> = {
|
|
7
7
|
new (...args: any[]): V;
|
|
8
8
|
};
|
|
9
9
|
/** Register a `TypeGenerator` function for a `Validator`. */
|
|
10
10
|
export declare function registerTypeGenerator<V extends Validator>(validator: V | ValidatorConstructor<V>, generator: TypeGenerator<V>): void;
|
|
11
|
-
/**
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Generate typings (validated or input type) for the given `Validation`s.
|
|
13
|
+
*
|
|
14
|
+
* When `isInput` is `false` (the default) then the _validated_ type will be
|
|
15
|
+
* generated (that is, optional fields with default values will be considered
|
|
16
|
+
* as defined).
|
|
17
|
+
*
|
|
18
|
+
* When `isInput` is `true` then the _input_ type will be generated (that is,
|
|
19
|
+
* optional fields will be considered as optional).
|
|
20
|
+
*/
|
|
21
|
+
export declare function generateTypes(validations: Record<string, Validation>, isInput?: boolean): string;
|
|
22
|
+
/**
|
|
23
|
+
* Generate a full declaration map for the specified validations.
|
|
24
|
+
*
|
|
25
|
+
* The full declaration map will include validated and input types and the
|
|
26
|
+
* declaration of the validator itself. For example:
|
|
27
|
+
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* const testValidator = object({ test: optional(string, 'myValue' ) })
|
|
30
|
+
* generateDeclarations({ testValidator })
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* Will result in the following declaration to be emitted:
|
|
34
|
+
*
|
|
35
|
+
* ```ts
|
|
36
|
+
* export type Test: { test: string }
|
|
37
|
+
* export type TestInput: { test?: string }
|
|
38
|
+
* export const testValidator: Validator<Test, TestInput>
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function generateDeclarations(validations: Record<string, Validation>): string;
|
|
13
42
|
export {};
|