@duplojs/data-parser-tools 0.2.9 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +2 -0
- package/dist/toDataParser/buildContext.cjs +63 -0
- package/dist/toDataParser/buildContext.d.ts +27 -0
- package/dist/toDataParser/buildContext.mjs +61 -0
- package/dist/toDataParser/checkerTransformer/create.cjs +11 -0
- package/dist/toDataParser/checkerTransformer/create.d.ts +20 -0
- package/dist/toDataParser/checkerTransformer/create.mjs +9 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/index.cjs +9 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/index.d.ts +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/index.mjs +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/max.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/max.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/min.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/min.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/index.cjs +9 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/index.d.ts +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/index.mjs +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/max.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/max.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/min.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/min.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/index.cjs +60 -0
- package/dist/toDataParser/checkerTransformer/defaults/index.d.ts +4 -0
- package/dist/toDataParser/checkerTransformer/defaults/index.mjs +47 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/index.cjs +11 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/index.d.ts +3 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/index.mjs +3 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/int.cjs +12 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/int.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/int.mjs +10 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/max.cjs +19 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/max.mjs +17 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/min.cjs +19 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/min.mjs +17 -0
- package/dist/toDataParser/checkerTransformer/defaults/refine.cjs +32 -0
- package/dist/toDataParser/checkerTransformer/defaults/refine.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/refine.mjs +30 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/email.cjs +12 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/email.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/email.mjs +10 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/index.cjs +17 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/index.d.ts +6 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/index.mjs +6 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/max.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/max.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/min.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/min.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/regex.cjs +16 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/regex.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/regex.mjs +14 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/url.cjs +22 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/url.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/url.mjs +20 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/uuid.cjs +12 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/uuid.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/uuid.mjs +10 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/index.cjs +9 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/index.d.ts +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/index.mjs +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/max.cjs +19 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/max.mjs +17 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/min.cjs +19 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/min.mjs +17 -0
- package/dist/toDataParser/checkerTransformer/index.cjs +12 -0
- package/dist/toDataParser/checkerTransformer/index.d.ts +3 -0
- package/dist/toDataParser/checkerTransformer/index.mjs +3 -0
- package/dist/toDataParser/checkerTransformer/transformer.cjs +47 -0
- package/dist/toDataParser/checkerTransformer/transformer.d.ts +10 -0
- package/dist/toDataParser/checkerTransformer/transformer.mjs +44 -0
- package/dist/toDataParser/dataParserTransformer/create.cjs +11 -0
- package/dist/toDataParser/dataParserTransformer/create.d.ts +34 -0
- package/dist/toDataParser/dataParserTransformer/create.mjs +9 -0
- package/dist/toDataParser/dataParserTransformer/createIdentifier.cjs +9 -0
- package/dist/toDataParser/dataParserTransformer/createIdentifier.d.ts +1 -0
- package/dist/toDataParser/dataParserTransformer/createIdentifier.mjs +7 -0
- package/dist/toDataParser/dataParserTransformer/defaults/array.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/array.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/array.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/bigint.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/bigint.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/bigint.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/boolean.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/boolean.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/boolean.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/date.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/date.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/date.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/empty.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/empty.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/empty.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/file.cjs +44 -0
- package/dist/toDataParser/dataParserTransformer/defaults/file.d.ts +1 -0
- package/dist/toDataParser/dataParserTransformer/defaults/file.mjs +42 -0
- package/dist/toDataParser/dataParserTransformer/defaults/index.cjs +76 -0
- package/dist/toDataParser/dataParserTransformer/defaults/index.d.ts +24 -0
- package/dist/toDataParser/dataParserTransformer/defaults/index.mjs +51 -0
- package/dist/toDataParser/dataParserTransformer/defaults/lazy.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/lazy.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/lazy.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/literal.cjs +28 -0
- package/dist/toDataParser/dataParserTransformer/defaults/literal.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/literal.mjs +26 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nil.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nil.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nil.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nullable.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nullable.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nullable.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/number.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/number.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/number.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/object.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/object.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/object.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/optional.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/optional.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/optional.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/pipe.cjs +27 -0
- package/dist/toDataParser/dataParserTransformer/defaults/pipe.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/pipe.mjs +25 -0
- package/dist/toDataParser/dataParserTransformer/defaults/record.cjs +27 -0
- package/dist/toDataParser/dataParserTransformer/defaults/record.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/record.mjs +25 -0
- package/dist/toDataParser/dataParserTransformer/defaults/recover.cjs +8 -0
- package/dist/toDataParser/dataParserTransformer/defaults/recover.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/recover.mjs +6 -0
- package/dist/toDataParser/dataParserTransformer/defaults/string.cjs +15 -0
- package/dist/toDataParser/dataParserTransformer/defaults/string.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/string.mjs +13 -0
- package/dist/toDataParser/dataParserTransformer/defaults/templateLiteral.cjs +41 -0
- package/dist/toDataParser/dataParserTransformer/defaults/templateLiteral.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/templateLiteral.mjs +39 -0
- package/dist/toDataParser/dataParserTransformer/defaults/time.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/time.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/time.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/transform.cjs +40 -0
- package/dist/toDataParser/dataParserTransformer/defaults/transform.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/transform.mjs +38 -0
- package/dist/toDataParser/dataParserTransformer/defaults/tuple.cjs +36 -0
- package/dist/toDataParser/dataParserTransformer/defaults/tuple.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/tuple.mjs +34 -0
- package/dist/toDataParser/dataParserTransformer/defaults/union.cjs +28 -0
- package/dist/toDataParser/dataParserTransformer/defaults/union.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/union.mjs +26 -0
- package/dist/toDataParser/dataParserTransformer/defaults/unknown.cjs +15 -0
- package/dist/toDataParser/dataParserTransformer/defaults/unknown.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/unknown.mjs +13 -0
- package/dist/toDataParser/dataParserTransformer/getDefinitionDataParser.cjs +36 -0
- package/dist/toDataParser/dataParserTransformer/getDefinitionDataParser.d.ts +14 -0
- package/dist/toDataParser/dataParserTransformer/getDefinitionDataParser.mjs +34 -0
- package/dist/toDataParser/dataParserTransformer/hook.cjs +2 -0
- package/dist/toDataParser/dataParserTransformer/hook.d.ts +15 -0
- package/dist/toDataParser/dataParserTransformer/hook.mjs +1 -0
- package/dist/toDataParser/dataParserTransformer/index.cjs +16 -0
- package/dist/toDataParser/dataParserTransformer/index.d.ts +6 -0
- package/dist/toDataParser/dataParserTransformer/index.mjs +6 -0
- package/dist/toDataParser/dataParserTransformer/transformer.cjs +129 -0
- package/dist/toDataParser/dataParserTransformer/transformer.d.ts +23 -0
- package/dist/toDataParser/dataParserTransformer/transformer.mjs +127 -0
- package/dist/toDataParser/index.cjs +103 -0
- package/dist/toDataParser/index.d.ts +7 -0
- package/dist/toDataParser/index.mjs +49 -0
- package/dist/toDataParser/kind.cjs +9 -0
- package/dist/toDataParser/kind.d.ts +6 -0
- package/dist/toDataParser/kind.mjs +7 -0
- package/dist/toDataParser/override.cjs +29 -0
- package/dist/toDataParser/override.d.ts +20 -0
- package/dist/toDataParser/override.mjs +27 -0
- package/dist/toDataParser/printer.cjs +23 -0
- package/dist/toDataParser/printer.d.ts +2 -0
- package/dist/toDataParser/printer.mjs +21 -0
- package/dist/toDataParser/render.cjs +50 -0
- package/dist/toDataParser/render.d.ts +19 -0
- package/dist/toDataParser/render.mjs +46 -0
- package/dist/toJsonSchema/override.cjs +4 -4
- package/dist/toJsonSchema/override.d.ts +1 -1
- package/dist/toJsonSchema/override.mjs +5 -5
- package/dist/toJsonSchema/transformer/defaults/string.cjs +2 -2
- package/dist/toJsonSchema/transformer/defaults/string.mjs +2 -2
- package/dist/toTypescript/buildContext.cjs +37 -0
- package/dist/toTypescript/buildContext.d.ts +15 -0
- package/dist/toTypescript/buildContext.mjs +35 -0
- package/dist/toTypescript/index.cjs +10 -0
- package/dist/toTypescript/index.d.ts +2 -0
- package/dist/toTypescript/index.mjs +5 -0
- package/dist/toTypescript/override.cjs +4 -4
- package/dist/toTypescript/override.d.ts +1 -1
- package/dist/toTypescript/override.mjs +5 -5
- package/dist/toTypescript/printer.cjs +17 -0
- package/dist/toTypescript/printer.d.ts +2 -0
- package/dist/toTypescript/printer.mjs +15 -0
- package/dist/toTypescript/render.cjs +8 -26
- package/dist/toTypescript/render.d.ts +5 -12
- package/dist/toTypescript/render.mjs +9 -27
- package/dist/toTypescript/transformer/addImport.cjs +21 -0
- package/dist/toTypescript/transformer/addImport.d.ts +2 -0
- package/dist/toTypescript/transformer/addImport.mjs +19 -0
- package/dist/toTypescript/transformer/create.d.ts +7 -3
- package/dist/toTypescript/transformer/createIdentifier.cjs +9 -0
- package/dist/toTypescript/transformer/createIdentifier.d.ts +1 -0
- package/dist/toTypescript/transformer/createIdentifier.mjs +7 -0
- package/dist/toTypescript/transformer/createImportDeclaration.cjs +17 -0
- package/dist/toTypescript/transformer/createImportDeclaration.d.ts +3 -0
- package/dist/toTypescript/transformer/createImportDeclaration.mjs +15 -0
- package/dist/toTypescript/transformer/hook.d.ts +2 -2
- package/dist/toTypescript/transformer/index.cjs +6 -0
- package/dist/toTypescript/transformer/index.d.ts +3 -0
- package/dist/toTypescript/transformer/index.mjs +3 -0
- package/dist/toTypescript/transformer/transformer.cjs +8 -9
- package/dist/toTypescript/transformer/transformer.d.ts +2 -2
- package/dist/toTypescript/transformer/transformer.mjs +8 -9
- package/package.json +8 -3
- package/dist/toTypescript/transformer/importTypesTransformer.cjs +0 -10
- package/dist/toTypescript/transformer/importTypesTransformer.d.ts +0 -2
- package/dist/toTypescript/transformer/importTypesTransformer.mjs +0 -8
|
@@ -4,6 +4,8 @@ require('./transformer/index.cjs');
|
|
|
4
4
|
require('./override.cjs');
|
|
5
5
|
var render = require('./render.cjs');
|
|
6
6
|
var kind = require('./kind.cjs');
|
|
7
|
+
var buildContext = require('./buildContext.cjs');
|
|
8
|
+
var printer = require('./printer.cjs');
|
|
7
9
|
var index = require('./transformer/defaults/index.cjs');
|
|
8
10
|
var create = require('./transformer/create.cjs');
|
|
9
11
|
var transformer = require('./transformer/transformer.cjs');
|
|
@@ -31,12 +33,17 @@ var date = require('./transformer/defaults/date.cjs');
|
|
|
31
33
|
var time = require('./transformer/defaults/time.cjs');
|
|
32
34
|
var file = require('./transformer/defaults/file.cjs');
|
|
33
35
|
var includesUndefinedTypeNode = require('./transformer/includesUndefinedTypeNode.cjs');
|
|
36
|
+
var createImportDeclaration = require('./transformer/createImportDeclaration.cjs');
|
|
37
|
+
var addImport = require('./transformer/addImport.cjs');
|
|
38
|
+
var createIdentifier = require('./transformer/createIdentifier.cjs');
|
|
34
39
|
|
|
35
40
|
|
|
36
41
|
|
|
37
42
|
exports.DataParserToTypescriptRenderError = render.DataParserToTypescriptRenderError;
|
|
38
43
|
exports.render = render.render;
|
|
39
44
|
exports.createToTypescriptKind = kind.createToTypescriptKind;
|
|
45
|
+
exports.buildContext = buildContext.buildContext;
|
|
46
|
+
exports.printer = printer.printer;
|
|
40
47
|
exports.defaultTransformers = index.defaultTransformers;
|
|
41
48
|
exports.createTransformer = create.createTransformer;
|
|
42
49
|
exports.transformer = transformer.transformer;
|
|
@@ -64,3 +71,6 @@ exports.dateTransformer = date.dateTransformer;
|
|
|
64
71
|
exports.timeTransformer = time.timeTransformer;
|
|
65
72
|
exports.fileTransformer = file.fileTransformer;
|
|
66
73
|
exports.includesUndefinedTypeNode = includesUndefinedTypeNode.includesUndefinedTypeNode;
|
|
74
|
+
exports.createImportDeclaration = createImportDeclaration.createImportDeclaration;
|
|
75
|
+
exports.createAddImport = addImport.createAddImport;
|
|
76
|
+
exports.createIdentifier = createIdentifier.createIdentifier;
|
|
@@ -2,6 +2,8 @@ import './transformer/index.mjs';
|
|
|
2
2
|
import './override.mjs';
|
|
3
3
|
export { DataParserToTypescriptRenderError, render } from './render.mjs';
|
|
4
4
|
export { createToTypescriptKind } from './kind.mjs';
|
|
5
|
+
export { buildContext } from './buildContext.mjs';
|
|
6
|
+
export { printer } from './printer.mjs';
|
|
5
7
|
export { defaultTransformers } from './transformer/defaults/index.mjs';
|
|
6
8
|
export { createTransformer } from './transformer/create.mjs';
|
|
7
9
|
export { transformer } from './transformer/transformer.mjs';
|
|
@@ -29,3 +31,6 @@ export { dateTransformer } from './transformer/defaults/date.mjs';
|
|
|
29
31
|
export { timeTransformer } from './transformer/defaults/time.mjs';
|
|
30
32
|
export { fileTransformer } from './transformer/defaults/file.mjs';
|
|
31
33
|
export { includesUndefinedTypeNode } from './transformer/includesUndefinedTypeNode.mjs';
|
|
34
|
+
export { createImportDeclaration } from './transformer/createImportDeclaration.mjs';
|
|
35
|
+
export { createAddImport } from './transformer/addImport.mjs';
|
|
36
|
+
export { createIdentifier } from './transformer/createIdentifier.mjs';
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var dataParser = require('@duplojs/utils/dataParser');
|
|
4
4
|
|
|
5
|
-
dataParser.
|
|
5
|
+
dataParser.dataParserBaseInit.overrideHandler.setMethod("setIdentifier", (schema, identifier) => {
|
|
6
6
|
schema.definition.identifier = identifier;
|
|
7
7
|
return schema;
|
|
8
8
|
});
|
|
9
|
-
dataParser.
|
|
9
|
+
dataParser.dataParserBaseInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) => {
|
|
10
10
|
const newSchema = schema.clone();
|
|
11
11
|
newSchema.setIdentifier(identifier);
|
|
12
12
|
return newSchema;
|
|
13
13
|
});
|
|
14
|
-
dataParser.
|
|
14
|
+
dataParser.dataParserBaseInit.overrideHandler.setMethod("setOverrideTypescriptTransformer", (schema, overrideTransformer) => {
|
|
15
15
|
if (overrideTransformer) {
|
|
16
16
|
schema.definition.overrideTypescriptTransformer = typeof overrideTransformer === "function"
|
|
17
17
|
? overrideTransformer
|
|
@@ -22,7 +22,7 @@ dataParser.dataParserInit.overrideHandler.setMethod("setOverrideTypescriptTransf
|
|
|
22
22
|
}
|
|
23
23
|
return schema;
|
|
24
24
|
});
|
|
25
|
-
dataParser.
|
|
25
|
+
dataParser.dataParserBaseInit.overrideHandler.setMethod("addOverrideTypescriptTransformer", (schema, overrideTypeNode) => {
|
|
26
26
|
const newSchema = schema.clone();
|
|
27
27
|
newSchema.setOverrideTypescriptTransformer(overrideTypeNode);
|
|
28
28
|
return newSchema;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type TypeNode } from "typescript";
|
|
2
2
|
import { type TransformerBuildFunction } from "./transformer";
|
|
3
3
|
declare module "@duplojs/utils/dataParser" {
|
|
4
|
-
interface
|
|
4
|
+
interface DataParserBase {
|
|
5
5
|
/**
|
|
6
6
|
* @deprecated this method mutated the dataParser by adding an identifier
|
|
7
7
|
*/
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { dataParserBaseInit } from '@duplojs/utils/dataParser';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
dataParserBaseInit.overrideHandler.setMethod("setIdentifier", (schema, identifier) => {
|
|
4
4
|
schema.definition.identifier = identifier;
|
|
5
5
|
return schema;
|
|
6
6
|
});
|
|
7
|
-
|
|
7
|
+
dataParserBaseInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) => {
|
|
8
8
|
const newSchema = schema.clone();
|
|
9
9
|
newSchema.setIdentifier(identifier);
|
|
10
10
|
return newSchema;
|
|
11
11
|
});
|
|
12
|
-
|
|
12
|
+
dataParserBaseInit.overrideHandler.setMethod("setOverrideTypescriptTransformer", (schema, overrideTransformer) => {
|
|
13
13
|
if (overrideTransformer) {
|
|
14
14
|
schema.definition.overrideTypescriptTransformer = typeof overrideTransformer === "function"
|
|
15
15
|
? overrideTransformer
|
|
@@ -20,7 +20,7 @@ dataParserInit.overrideHandler.setMethod("setOverrideTypescriptTransformer", (sc
|
|
|
20
20
|
}
|
|
21
21
|
return schema;
|
|
22
22
|
});
|
|
23
|
-
|
|
23
|
+
dataParserBaseInit.overrideHandler.setMethod("addOverrideTypescriptTransformer", (schema, overrideTypeNode) => {
|
|
24
24
|
const newSchema = schema.clone();
|
|
25
25
|
newSchema.setOverrideTypescriptTransformer(overrideTypeNode);
|
|
26
26
|
return newSchema;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var typescript = require('typescript');
|
|
4
|
+
var utils = require('@duplojs/utils');
|
|
5
|
+
require('./transformer/index.cjs');
|
|
6
|
+
var createImportDeclaration = require('./transformer/createImportDeclaration.cjs');
|
|
7
|
+
|
|
8
|
+
function printer(params) {
|
|
9
|
+
const sourceFile = typescript.createSourceFile("print.ts", "", typescript.ScriptTarget.Latest, false, typescript.ScriptKind.TS);
|
|
10
|
+
const printer = typescript.createPrinter();
|
|
11
|
+
return utils.pipe([
|
|
12
|
+
...createImportDeclaration.createImportDeclaration(params.importContext),
|
|
13
|
+
...params.context.values(),
|
|
14
|
+
], utils.A.map((value) => printer.printNode(typescript.EmitHint.Unspecified, value, sourceFile)), utils.A.join("\n\n"), utils.S.trim);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.printer = printer;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createSourceFile, ScriptTarget, ScriptKind, createPrinter, EmitHint } from 'typescript';
|
|
2
|
+
import { pipe, A, S } from '@duplojs/utils';
|
|
3
|
+
import './transformer/index.mjs';
|
|
4
|
+
import { createImportDeclaration } from './transformer/createImportDeclaration.mjs';
|
|
5
|
+
|
|
6
|
+
function printer(params) {
|
|
7
|
+
const sourceFile = createSourceFile("print.ts", "", ScriptTarget.Latest, false, ScriptKind.TS);
|
|
8
|
+
const printer = createPrinter();
|
|
9
|
+
return pipe([
|
|
10
|
+
...createImportDeclaration(params.importContext),
|
|
11
|
+
...params.context.values(),
|
|
12
|
+
], A.map((value) => printer.printNode(EmitHint.Unspecified, value, sourceFile)), A.join("\n\n"), S.trim);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { printer };
|
|
@@ -1,49 +1,31 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var utils = require('@duplojs/utils');
|
|
4
|
-
require('./transformer/index.cjs');
|
|
5
|
-
var typescript = require('typescript');
|
|
6
4
|
var kind = require('./kind.cjs');
|
|
7
|
-
require('
|
|
8
|
-
var
|
|
9
|
-
var transformer = require('./transformer/transformer.cjs');
|
|
10
|
-
var getRecursiveDataParser = require('../utils/getRecursiveDataParser.cjs');
|
|
5
|
+
var buildContext = require('./buildContext.cjs');
|
|
6
|
+
var printer = require('./printer.cjs');
|
|
11
7
|
|
|
12
|
-
class DataParserToTypescriptRenderError extends utils.
|
|
8
|
+
class DataParserToTypescriptRenderError extends utils.kindClass(kind.createToTypescriptKind("data-parser-to-typescript-render-error"), Error) {
|
|
13
9
|
schema;
|
|
14
10
|
error;
|
|
15
11
|
constructor(schema, error) {
|
|
16
|
-
super({},
|
|
12
|
+
super({}, "Error during the render of dataParser in typescript type.");
|
|
17
13
|
this.schema = schema;
|
|
18
14
|
this.error = error;
|
|
19
15
|
}
|
|
20
16
|
}
|
|
21
17
|
function render(schema, params) {
|
|
22
18
|
const context = new Map(params.context);
|
|
23
|
-
const
|
|
24
|
-
const result =
|
|
19
|
+
const importContext = new Map(params.importContext);
|
|
20
|
+
const result = buildContext.buildContext(schema, {
|
|
25
21
|
...params,
|
|
26
22
|
context,
|
|
27
|
-
|
|
28
|
-
hooks: params.hooks ?? [],
|
|
29
|
-
recursiveDataParsers: getRecursiveDataParser.getRecursiveDataParser(schema),
|
|
30
|
-
importType,
|
|
23
|
+
importContext,
|
|
31
24
|
});
|
|
32
25
|
if (utils.E.isLeft(result)) {
|
|
33
26
|
throw new DataParserToTypescriptRenderError(schema, result);
|
|
34
27
|
}
|
|
35
|
-
|
|
36
|
-
context.set(utils.DP.empty(), typescript.factory.createTypeAliasDeclaration([typescript.factory.createToken(typescript.SyntaxKind.ExportKeyword)], typescript.factory.createIdentifier(params.identifier), undefined, typescript.factory.createTypeReferenceNode(schema.definition.identifier)));
|
|
37
|
-
}
|
|
38
|
-
else if (schema.definition.identifier !== params.identifier) {
|
|
39
|
-
context.set(utils.DP.empty(), typescript.factory.createTypeAliasDeclaration([typescript.factory.createToken(typescript.SyntaxKind.ExportKeyword)], typescript.factory.createIdentifier(params.identifier), undefined, utils.unwrap(result)));
|
|
40
|
-
}
|
|
41
|
-
const sourceFile = typescript.createSourceFile("print.ts", "", typescript.ScriptTarget.Latest, false, typescript.ScriptKind.TS);
|
|
42
|
-
const printer = typescript.createPrinter();
|
|
43
|
-
return utils.pipe([
|
|
44
|
-
...importTypesTransformer.importTypesTransformer(importType),
|
|
45
|
-
...context.values(),
|
|
46
|
-
], utils.A.map((value) => printer.printNode(typescript.EmitHint.Unspecified, value, sourceFile)), utils.A.join("\n\n"), utils.S.trim);
|
|
28
|
+
return printer.printer(utils.unwrap(result));
|
|
47
29
|
}
|
|
48
30
|
|
|
49
31
|
exports.DataParserToTypescriptRenderError = DataParserToTypescriptRenderError;
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import { DP } from "@duplojs/utils";
|
|
2
|
-
import { type DataParserErrorEither, type DataParserNotSupportedEither
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
readonly transformers: readonly ReturnType<typeof createTransformer>[];
|
|
6
|
-
readonly context?: MapContext;
|
|
7
|
-
readonly mode?: TransformerMode;
|
|
8
|
-
readonly hooks?: readonly TransformerHook[];
|
|
9
|
-
readonly importType?: MapImportType;
|
|
1
|
+
import { type DP } from "@duplojs/utils";
|
|
2
|
+
import { type DataParserErrorEither, type DataParserNotSupportedEither } from "./transformer";
|
|
3
|
+
import { type BuildContextParams } from "./buildContext";
|
|
4
|
+
export interface RenderParams extends BuildContextParams {
|
|
10
5
|
}
|
|
11
|
-
declare const DataParserToTypescriptRenderError_base:
|
|
12
|
-
"@DuplojsDataParserToolsToTypescript/data-parser-to-typescript-render-error"?: unknown;
|
|
13
|
-
}, parentParams: readonly [message?: string | undefined, options?: ErrorOptions | undefined]) => import("@duplojs/utils").Kind<import("@duplojs/utils").KindDefinition<"@DuplojsDataParserToolsToTypescript/data-parser-to-typescript-render-error", unknown>, unknown> & import("@duplojs/utils").Kind<import("@duplojs/utils").KindDefinition<"data-parser-to-typescript-render-error", unknown>, unknown> & Error;
|
|
6
|
+
declare const DataParserToTypescriptRenderError_base: import("@duplojs/utils").KindClass<import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsDataParserToolsToTypescript/data-parser-to-typescript-render-error", unknown>>, ErrorConstructor>;
|
|
14
7
|
export declare class DataParserToTypescriptRenderError extends DataParserToTypescriptRenderError_base {
|
|
15
8
|
schema: DP.DataParser;
|
|
16
9
|
error: DataParserNotSupportedEither | DataParserErrorEither;
|
|
@@ -1,47 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import './transformer/index.mjs';
|
|
3
|
-
import { factory, SyntaxKind, createSourceFile, ScriptTarget, ScriptKind, createPrinter, EmitHint } from 'typescript';
|
|
1
|
+
import { kindClass, E, unwrap } from '@duplojs/utils';
|
|
4
2
|
import { createToTypescriptKind } from './kind.mjs';
|
|
5
|
-
import '
|
|
6
|
-
import {
|
|
7
|
-
import { transformer } from './transformer/transformer.mjs';
|
|
8
|
-
import { getRecursiveDataParser } from '../utils/getRecursiveDataParser.mjs';
|
|
3
|
+
import { buildContext } from './buildContext.mjs';
|
|
4
|
+
import { printer } from './printer.mjs';
|
|
9
5
|
|
|
10
|
-
class DataParserToTypescriptRenderError extends
|
|
6
|
+
class DataParserToTypescriptRenderError extends kindClass(createToTypescriptKind("data-parser-to-typescript-render-error"), Error) {
|
|
11
7
|
schema;
|
|
12
8
|
error;
|
|
13
9
|
constructor(schema, error) {
|
|
14
|
-
super({},
|
|
10
|
+
super({}, "Error during the render of dataParser in typescript type.");
|
|
15
11
|
this.schema = schema;
|
|
16
12
|
this.error = error;
|
|
17
13
|
}
|
|
18
14
|
}
|
|
19
15
|
function render(schema, params) {
|
|
20
16
|
const context = new Map(params.context);
|
|
21
|
-
const
|
|
22
|
-
const result =
|
|
17
|
+
const importContext = new Map(params.importContext);
|
|
18
|
+
const result = buildContext(schema, {
|
|
23
19
|
...params,
|
|
24
20
|
context,
|
|
25
|
-
|
|
26
|
-
hooks: params.hooks ?? [],
|
|
27
|
-
recursiveDataParsers: getRecursiveDataParser(schema),
|
|
28
|
-
importType,
|
|
21
|
+
importContext,
|
|
29
22
|
});
|
|
30
23
|
if (E.isLeft(result)) {
|
|
31
24
|
throw new DataParserToTypescriptRenderError(schema, result);
|
|
32
25
|
}
|
|
33
|
-
|
|
34
|
-
context.set(DP.empty(), factory.createTypeAliasDeclaration([factory.createToken(SyntaxKind.ExportKeyword)], factory.createIdentifier(params.identifier), undefined, factory.createTypeReferenceNode(schema.definition.identifier)));
|
|
35
|
-
}
|
|
36
|
-
else if (schema.definition.identifier !== params.identifier) {
|
|
37
|
-
context.set(DP.empty(), factory.createTypeAliasDeclaration([factory.createToken(SyntaxKind.ExportKeyword)], factory.createIdentifier(params.identifier), undefined, unwrap(result)));
|
|
38
|
-
}
|
|
39
|
-
const sourceFile = createSourceFile("print.ts", "", ScriptTarget.Latest, false, ScriptKind.TS);
|
|
40
|
-
const printer = createPrinter();
|
|
41
|
-
return pipe([
|
|
42
|
-
...importTypesTransformer(importType),
|
|
43
|
-
...context.values(),
|
|
44
|
-
], A.map((value) => printer.printNode(EmitHint.Unspecified, value, sourceFile)), A.join("\n\n"), S.trim);
|
|
26
|
+
return printer(unwrap(result));
|
|
45
27
|
}
|
|
46
28
|
|
|
47
29
|
export { DataParserToTypescriptRenderError, render };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
|
|
5
|
+
function createAddImport(importContext) {
|
|
6
|
+
return (path, typeName, type) => {
|
|
7
|
+
const importKind = type === undefined
|
|
8
|
+
? "direct"
|
|
9
|
+
: type;
|
|
10
|
+
const imports = importContext.get(path) ?? {};
|
|
11
|
+
const identifiers = imports[importKind] ?? [];
|
|
12
|
+
if (!utils.A.includes(identifiers, typeName)) {
|
|
13
|
+
importContext.set(path, {
|
|
14
|
+
...imports,
|
|
15
|
+
[importKind]: utils.A.push(identifiers, typeName),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
exports.createAddImport = createAddImport;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { A } from '@duplojs/utils';
|
|
2
|
+
|
|
3
|
+
function createAddImport(importContext) {
|
|
4
|
+
return (path, typeName, type) => {
|
|
5
|
+
const importKind = type === undefined
|
|
6
|
+
? "direct"
|
|
7
|
+
: type;
|
|
8
|
+
const imports = importContext.get(path) ?? {};
|
|
9
|
+
const identifiers = imports[importKind] ?? [];
|
|
10
|
+
if (!A.includes(identifiers, typeName)) {
|
|
11
|
+
importContext.set(path, {
|
|
12
|
+
...imports,
|
|
13
|
+
[importKind]: A.push(identifiers, typeName),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { createAddImport };
|
|
@@ -4,17 +4,21 @@ export type TransformerSuccessEither = E.Right<"buildSuccess", TypeNode>;
|
|
|
4
4
|
export type DataParserNotSupportedEither = E.Left<"dataParserNotSupport", DP.DataParser>;
|
|
5
5
|
export type DataParserErrorEither = E.Left<"buildDataParserError", DP.DataParser>;
|
|
6
6
|
export type MapContext = Map<DP.DataParsers, TypeAliasDeclaration>;
|
|
7
|
-
export type
|
|
7
|
+
export type MapImportContext = Map<string, {
|
|
8
|
+
namespace?: string[];
|
|
9
|
+
default?: string[];
|
|
10
|
+
direct?: string[];
|
|
11
|
+
}>;
|
|
8
12
|
export type MaybeTransformerEither = TransformerSuccessEither | DataParserNotSupportedEither | DataParserErrorEither;
|
|
9
13
|
export type TransformerMode = "in" | "out";
|
|
10
14
|
export interface TransformerParams {
|
|
11
15
|
readonly mode: TransformerMode;
|
|
12
16
|
readonly context: MapContext;
|
|
13
|
-
readonly
|
|
17
|
+
readonly importContext: MapImportContext;
|
|
14
18
|
transformer(schema: DP.DataParser): MaybeTransformerEither;
|
|
15
19
|
success(result: TypeNode): TransformerSuccessEither;
|
|
16
20
|
buildError(): DataParserErrorEither;
|
|
17
|
-
addImport(path: string, typeName: string): void;
|
|
21
|
+
addImport(path: string, typeName: string, type?: "default" | "namespace" | "direct"): void;
|
|
18
22
|
}
|
|
19
23
|
export type TransformerBuildFunction<GenericDataParser extends DP.DataParsers = DP.DataParsers> = (schema: GenericDataParser, params: TransformerParams) => MaybeTransformerEither;
|
|
20
24
|
export declare function createTransformer<GenericDataParser extends DP.DataParsers>(support: (schema: DP.DataParsers) => schema is GenericDataParser, builder: TransformerBuildFunction<GenericDataParser>): (schema: DP.DataParsers, params: TransformerParams) => MaybeTransformerEither;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function createIdentifier(identifier: string): Capitalize<string>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var typescript = require('typescript');
|
|
5
|
+
|
|
6
|
+
function createImportDeclaration(importContext) {
|
|
7
|
+
return utils.A.reduce(utils.A.from(importContext), utils.A.reduceFrom([]), ({ element: [path, imports], lastValue, next }) => {
|
|
8
|
+
const declarations = utils.A.concat(lastValue, utils.A.map(imports.namespace ?? [], (identifier) => typescript.factory.createImportDeclaration(undefined, typescript.factory.createImportClause(undefined, undefined, typescript.factory.createNamespaceImport(typescript.factory.createIdentifier(identifier))), typescript.factory.createStringLiteral(path), undefined)), utils.A.map(imports.default ?? [], (identifier) => typescript.factory.createImportDeclaration(undefined, typescript.factory.createImportClause(undefined, typescript.factory.createIdentifier(identifier), undefined), typescript.factory.createStringLiteral(path), undefined)), imports.direct?.length
|
|
9
|
+
? [
|
|
10
|
+
typescript.factory.createImportDeclaration(undefined, typescript.factory.createImportClause(undefined, undefined, typescript.factory.createNamedImports(utils.A.map(imports.direct, (identifier) => typescript.factory.createImportSpecifier(false, undefined, typescript.factory.createIdentifier(identifier))))), typescript.factory.createStringLiteral(path), undefined),
|
|
11
|
+
]
|
|
12
|
+
: []);
|
|
13
|
+
return next(declarations);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.createImportDeclaration = createImportDeclaration;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { A } from '@duplojs/utils';
|
|
2
|
+
import { factory } from 'typescript';
|
|
3
|
+
|
|
4
|
+
function createImportDeclaration(importContext) {
|
|
5
|
+
return A.reduce(A.from(importContext), A.reduceFrom([]), ({ element: [path, imports], lastValue, next }) => {
|
|
6
|
+
const declarations = A.concat(lastValue, A.map(imports.namespace ?? [], (identifier) => factory.createImportDeclaration(undefined, factory.createImportClause(undefined, undefined, factory.createNamespaceImport(factory.createIdentifier(identifier))), factory.createStringLiteral(path), undefined)), A.map(imports.default ?? [], (identifier) => factory.createImportDeclaration(undefined, factory.createImportClause(undefined, factory.createIdentifier(identifier), undefined), factory.createStringLiteral(path), undefined)), imports.direct?.length
|
|
7
|
+
? [
|
|
8
|
+
factory.createImportDeclaration(undefined, factory.createImportClause(undefined, undefined, factory.createNamedImports(A.map(imports.direct, (identifier) => factory.createImportSpecifier(false, undefined, factory.createIdentifier(identifier))))), factory.createStringLiteral(path), undefined),
|
|
9
|
+
]
|
|
10
|
+
: []);
|
|
11
|
+
return next(declarations);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { createImportDeclaration };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DP } from "@duplojs/utils";
|
|
2
|
-
import type { MapContext,
|
|
2
|
+
import type { MapContext, MapImportContext } from "./create";
|
|
3
3
|
export type TransformerHookAction = "stop" | "next";
|
|
4
4
|
export interface TransformerHookOutput {
|
|
5
5
|
schema: DP.DataParsers;
|
|
@@ -8,7 +8,7 @@ export interface TransformerHookOutput {
|
|
|
8
8
|
export interface TransformerHookParams {
|
|
9
9
|
schema: DP.DataParsers;
|
|
10
10
|
context: MapContext;
|
|
11
|
-
|
|
11
|
+
importContext: MapImportContext;
|
|
12
12
|
output(action: TransformerHookAction, schema: DP.DataParsers): TransformerHookOutput;
|
|
13
13
|
}
|
|
14
14
|
export type TransformerHook = (params: TransformerHookParams) => TransformerHookOutput;
|
|
@@ -5,6 +5,9 @@ var transformer = require('./transformer.cjs');
|
|
|
5
5
|
require('./hook.cjs');
|
|
6
6
|
var index = require('./defaults/index.cjs');
|
|
7
7
|
var includesUndefinedTypeNode = require('./includesUndefinedTypeNode.cjs');
|
|
8
|
+
var createImportDeclaration = require('./createImportDeclaration.cjs');
|
|
9
|
+
var addImport = require('./addImport.cjs');
|
|
10
|
+
var createIdentifier = require('./createIdentifier.cjs');
|
|
8
11
|
|
|
9
12
|
|
|
10
13
|
|
|
@@ -12,3 +15,6 @@ exports.createTransformer = create.createTransformer;
|
|
|
12
15
|
exports.transformer = transformer.transformer;
|
|
13
16
|
exports.defaultTransformers = index.defaultTransformers;
|
|
14
17
|
exports.includesUndefinedTypeNode = includesUndefinedTypeNode.includesUndefinedTypeNode;
|
|
18
|
+
exports.createImportDeclaration = createImportDeclaration.createImportDeclaration;
|
|
19
|
+
exports.createAddImport = addImport.createAddImport;
|
|
20
|
+
exports.createIdentifier = createIdentifier.createIdentifier;
|
|
@@ -3,4 +3,7 @@ export * from "./transformer";
|
|
|
3
3
|
export * from "./hook";
|
|
4
4
|
export * from "./defaults";
|
|
5
5
|
export * from "./includesUndefinedTypeNode";
|
|
6
|
+
export * from "./createImportDeclaration";
|
|
7
|
+
export * from "./addImport";
|
|
8
|
+
export * from "./createIdentifier";
|
|
6
9
|
export { defaultTransformers } from "./defaults";
|
|
@@ -3,3 +3,6 @@ export { transformer } from './transformer.mjs';
|
|
|
3
3
|
import './hook.mjs';
|
|
4
4
|
export { defaultTransformers } from './defaults/index.mjs';
|
|
5
5
|
export { includesUndefinedTypeNode } from './includesUndefinedTypeNode.mjs';
|
|
6
|
+
export { createImportDeclaration } from './createImportDeclaration.mjs';
|
|
7
|
+
export { createAddImport } from './addImport.mjs';
|
|
8
|
+
export { createIdentifier } from './createIdentifier.mjs';
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
var utils = require('@duplojs/utils');
|
|
4
4
|
var typescript = require('typescript');
|
|
5
|
+
var addImport = require('./addImport.cjs');
|
|
6
|
+
var createIdentifier = require('./createIdentifier.cjs');
|
|
5
7
|
|
|
6
8
|
function transformer(schema, params) {
|
|
7
9
|
const currentSchema = utils.A.reduce(params.hooks, utils.A.reduceFrom(schema), ({ element: hook, lastValue, next, exit }) => {
|
|
8
10
|
const result = hook({
|
|
9
11
|
schema: lastValue,
|
|
10
12
|
context: params.context,
|
|
11
|
-
|
|
13
|
+
importContext: params.importContext,
|
|
12
14
|
output: (action, schema) => ({
|
|
13
15
|
schema,
|
|
14
16
|
action,
|
|
@@ -30,7 +32,9 @@ function transformer(schema, params) {
|
|
|
30
32
|
&& !currentSchema.definition.identifier) {
|
|
31
33
|
return undefined;
|
|
32
34
|
}
|
|
33
|
-
const identifier = currentSchema.definition.identifier
|
|
35
|
+
const identifier = currentSchema.definition.identifier !== undefined
|
|
36
|
+
? createIdentifier.createIdentifier(currentSchema.definition.identifier)
|
|
37
|
+
: `RecursiveType${params.context.size}`;
|
|
34
38
|
params.context.set(currentSchema, typescript.factory.createTypeAliasDeclaration([typescript.factory.createToken(typescript.SyntaxKind.ExportKeyword)], typescript.factory.createIdentifier(identifier), undefined, typescript.factory.createTypeReferenceNode(identifier)));
|
|
35
39
|
return identifier;
|
|
36
40
|
});
|
|
@@ -46,13 +50,8 @@ function transformer(schema, params) {
|
|
|
46
50
|
buildError() {
|
|
47
51
|
return utils.E.left("buildDataParserError");
|
|
48
52
|
},
|
|
49
|
-
|
|
50
|
-
addImport(
|
|
51
|
-
const types = params.importType.get(path) ?? [];
|
|
52
|
-
if (!utils.A.includes(types, typeName)) {
|
|
53
|
-
params.importType.set(path, utils.A.push(types, typeName));
|
|
54
|
-
}
|
|
55
|
-
},
|
|
53
|
+
importContext: params.importContext,
|
|
54
|
+
addImport: addImport.createAddImport(params.importContext),
|
|
56
55
|
};
|
|
57
56
|
const result = currentSchema.definition.overrideTypescriptTransformer
|
|
58
57
|
? currentSchema.definition.overrideTypescriptTransformer(currentSchema.addOverrideTypescriptTransformer(null), functionParams)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type DDataParser, type DP } from "@duplojs/utils";
|
|
2
|
-
import type { MapContext, DataParserNotSupportedEither, createTransformer, TransformerMode, DataParserErrorEither,
|
|
2
|
+
import type { MapContext, DataParserNotSupportedEither, createTransformer, TransformerMode, DataParserErrorEither, MapImportContext } from "./create";
|
|
3
3
|
import type { TransformerHook } from "./hook";
|
|
4
4
|
export interface TransformerFunctionParams {
|
|
5
5
|
readonly transformers: readonly ReturnType<typeof createTransformer>[];
|
|
@@ -7,6 +7,6 @@ export interface TransformerFunctionParams {
|
|
|
7
7
|
readonly mode: TransformerMode;
|
|
8
8
|
readonly hooks: readonly TransformerHook[];
|
|
9
9
|
readonly recursiveDataParsers: DDataParser.DataParser[];
|
|
10
|
-
readonly
|
|
10
|
+
readonly importContext: MapImportContext;
|
|
11
11
|
}
|
|
12
12
|
export declare function transformer(schema: DP.DataParser, params: TransformerFunctionParams): import("./create").TransformerSuccessEither | DataParserNotSupportedEither | DataParserErrorEither;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { A, E, justExec, unwrap } from '@duplojs/utils';
|
|
2
2
|
import { factory, SyntaxKind } from 'typescript';
|
|
3
|
+
import { createAddImport } from './addImport.mjs';
|
|
4
|
+
import { createIdentifier } from './createIdentifier.mjs';
|
|
3
5
|
|
|
4
6
|
function transformer(schema, params) {
|
|
5
7
|
const currentSchema = A.reduce(params.hooks, A.reduceFrom(schema), ({ element: hook, lastValue, next, exit }) => {
|
|
6
8
|
const result = hook({
|
|
7
9
|
schema: lastValue,
|
|
8
10
|
context: params.context,
|
|
9
|
-
|
|
11
|
+
importContext: params.importContext,
|
|
10
12
|
output: (action, schema) => ({
|
|
11
13
|
schema,
|
|
12
14
|
action,
|
|
@@ -28,7 +30,9 @@ function transformer(schema, params) {
|
|
|
28
30
|
&& !currentSchema.definition.identifier) {
|
|
29
31
|
return undefined;
|
|
30
32
|
}
|
|
31
|
-
const identifier = currentSchema.definition.identifier
|
|
33
|
+
const identifier = currentSchema.definition.identifier !== undefined
|
|
34
|
+
? createIdentifier(currentSchema.definition.identifier)
|
|
35
|
+
: `RecursiveType${params.context.size}`;
|
|
32
36
|
params.context.set(currentSchema, factory.createTypeAliasDeclaration([factory.createToken(SyntaxKind.ExportKeyword)], factory.createIdentifier(identifier), undefined, factory.createTypeReferenceNode(identifier)));
|
|
33
37
|
return identifier;
|
|
34
38
|
});
|
|
@@ -44,13 +48,8 @@ function transformer(schema, params) {
|
|
|
44
48
|
buildError() {
|
|
45
49
|
return E.left("buildDataParserError");
|
|
46
50
|
},
|
|
47
|
-
|
|
48
|
-
addImport(
|
|
49
|
-
const types = params.importType.get(path) ?? [];
|
|
50
|
-
if (!A.includes(types, typeName)) {
|
|
51
|
-
params.importType.set(path, A.push(types, typeName));
|
|
52
|
-
}
|
|
53
|
-
},
|
|
51
|
+
importContext: params.importContext,
|
|
52
|
+
addImport: createAddImport(params.importContext),
|
|
54
53
|
};
|
|
55
54
|
const result = currentSchema.definition.overrideTypescriptTransformer
|
|
56
55
|
? currentSchema.definition.overrideTypescriptTransformer(currentSchema.addOverrideTypescriptTransformer(null), functionParams)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duplojs/data-parser-tools",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "duplojs",
|
|
6
6
|
"contributors": [
|
|
@@ -45,6 +45,11 @@
|
|
|
45
45
|
"import": "./dist/toJsonSchema/index.mjs",
|
|
46
46
|
"require": "./dist/toJsonSchema/index.cjs",
|
|
47
47
|
"types": "./dist/toJsonSchema/index.d.ts"
|
|
48
|
+
},
|
|
49
|
+
"./toDataParser": {
|
|
50
|
+
"import": "./dist/toDataParser/index.mjs",
|
|
51
|
+
"require": "./dist/toDataParser/index.cjs",
|
|
52
|
+
"types": "./dist/toDataParser/index.d.ts"
|
|
48
53
|
}
|
|
49
54
|
},
|
|
50
55
|
"files": [
|
|
@@ -71,8 +76,8 @@
|
|
|
71
76
|
"vitest": "3.2.4"
|
|
72
77
|
},
|
|
73
78
|
"peerDependencies": {
|
|
74
|
-
"@duplojs/utils": ">=1.
|
|
75
|
-
"@duplojs/server-utils": ">=0.
|
|
79
|
+
"@duplojs/utils": ">=1.8.4 <2.0.0",
|
|
80
|
+
"@duplojs/server-utils": ">=0.3.0 < 1.0.0"
|
|
76
81
|
},
|
|
77
82
|
"dependencies": {
|
|
78
83
|
"typescript": "5.9.2"
|