@duplojs/data-parser-tools 0.2.4 → 0.2.6
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/README.md +167 -2
- package/dist/toJsonSchema/override.cjs +14 -0
- package/dist/toJsonSchema/override.d.ts +8 -1
- package/dist/toJsonSchema/override.mjs +14 -0
- package/dist/toJsonSchema/render.cjs +11 -12
- package/dist/toJsonSchema/render.d.ts +8 -8
- package/dist/toJsonSchema/render.mjs +11 -12
- package/dist/toJsonSchema/transformer/create.d.ts +9 -7
- package/dist/toJsonSchema/transformer/defaults/date.cjs +1 -2
- package/dist/toJsonSchema/transformer/defaults/date.mjs +1 -2
- package/dist/toJsonSchema/transformer/defaults/file.cjs +17 -0
- package/dist/toJsonSchema/transformer/defaults/file.d.ts +5 -0
- package/dist/toJsonSchema/transformer/defaults/file.mjs +15 -0
- package/dist/toJsonSchema/transformer/defaults/index.cjs +2 -0
- package/dist/toJsonSchema/transformer/defaults/index.d.ts +1 -1
- package/dist/toJsonSchema/transformer/defaults/index.mjs +2 -0
- package/dist/toJsonSchema/transformer/defaults/literal.cjs +4 -4
- package/dist/toJsonSchema/transformer/defaults/literal.mjs +4 -4
- package/dist/toJsonSchema/transformer/defaults/time.cjs +1 -1
- package/dist/toJsonSchema/transformer/defaults/time.mjs +1 -1
- package/dist/toJsonSchema/transformer/transformer.cjs +6 -3
- package/dist/toJsonSchema/transformer/transformer.d.ts +4 -4
- package/dist/toJsonSchema/transformer/transformer.mjs +7 -4
- package/dist/toTypescript/override.cjs +14 -0
- package/dist/toTypescript/override.d.ts +9 -1
- package/dist/toTypescript/override.mjs +14 -0
- package/dist/toTypescript/render.cjs +7 -1
- package/dist/toTypescript/render.d.ts +6 -6
- package/dist/toTypescript/render.mjs +7 -1
- package/dist/toTypescript/transformer/create.d.ts +10 -5
- package/dist/toTypescript/transformer/defaults/array.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/bigint.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/boolean.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/date.cjs +17 -7
- package/dist/toTypescript/transformer/defaults/date.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/date.mjs +19 -9
- package/dist/toTypescript/transformer/defaults/empty.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/file.cjs +13 -0
- package/dist/toTypescript/transformer/defaults/file.d.ts +1 -0
- package/dist/toTypescript/transformer/defaults/file.mjs +11 -0
- package/dist/toTypescript/transformer/defaults/index.cjs +2 -0
- package/dist/toTypescript/transformer/defaults/index.d.ts +1 -1
- package/dist/toTypescript/transformer/defaults/index.mjs +2 -0
- package/dist/toTypescript/transformer/defaults/lazy.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/literal.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/nil.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/nullable.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/number.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/object.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/optional.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/pipe.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/record.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/recover.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/string.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/templateLiteral.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/time.cjs +17 -7
- package/dist/toTypescript/transformer/defaults/time.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/time.mjs +18 -8
- package/dist/toTypescript/transformer/defaults/transform.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/tuple.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/union.d.ts +1 -2
- package/dist/toTypescript/transformer/defaults/unknown.d.ts +1 -2
- package/dist/toTypescript/transformer/hook.d.ts +3 -2
- package/dist/toTypescript/transformer/importTypesTransformer.cjs +10 -0
- package/dist/toTypescript/transformer/importTypesTransformer.d.ts +2 -0
- package/dist/toTypescript/transformer/importTypesTransformer.mjs +8 -0
- package/dist/toTypescript/transformer/transformer.cjs +11 -0
- package/dist/toTypescript/transformer/transformer.d.ts +4 -3
- package/dist/toTypescript/transformer/transformer.mjs +12 -1
- package/package.json +3 -2
|
@@ -3,16 +3,19 @@
|
|
|
3
3
|
var utils = require('@duplojs/utils');
|
|
4
4
|
|
|
5
5
|
function buildRef(name, version) {
|
|
6
|
-
if (version === "
|
|
7
|
-
|| version === "
|
|
6
|
+
if (version === "openApi3"
|
|
7
|
+
|| version === "openApi31") {
|
|
8
8
|
return `#/components/schemas/${name}`;
|
|
9
9
|
}
|
|
10
|
-
if (version === "
|
|
10
|
+
if (version === "jsonSchema202012") {
|
|
11
11
|
return `#/$defs/${name}`;
|
|
12
12
|
}
|
|
13
13
|
return `#/definitions/${name}`;
|
|
14
14
|
}
|
|
15
15
|
function transformer(schema, params) {
|
|
16
|
+
if (schema.definition.overrideJsonSchema?.[params.mode]) {
|
|
17
|
+
return utils.E.right("buildSuccess", schema.definition.overrideJsonSchema[params.mode]);
|
|
18
|
+
}
|
|
16
19
|
const currentSchema = utils.A.reduce(params.hooks, utils.A.reduceFrom(schema), ({ element: hook, lastValue, next, exit }) => {
|
|
17
20
|
const result = hook({
|
|
18
21
|
schema: lastValue,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { E, type DP } from "@duplojs/utils";
|
|
2
|
-
import { type MapContext, type DataParserNotSupportedEither, type createTransformer, type TransformerMode, type
|
|
2
|
+
import { type MapContext, type DataParserNotSupportedEither, type createTransformer, type TransformerMode, type DataParserErrorEither, type SupportedVersions } from "./create";
|
|
3
3
|
import { type TransformerHook } from "./hook";
|
|
4
4
|
export interface TransformerFunctionParams {
|
|
5
5
|
readonly transformers: readonly ReturnType<typeof createTransformer>[];
|
|
6
6
|
readonly context: MapContext;
|
|
7
7
|
readonly mode: TransformerMode;
|
|
8
|
-
readonly version:
|
|
8
|
+
readonly version: SupportedVersions;
|
|
9
9
|
readonly hooks: readonly TransformerHook[];
|
|
10
10
|
readonly recursiveDataParsers: DP.DataParser[];
|
|
11
11
|
}
|
|
12
|
-
export declare function buildRef(name: string, version:
|
|
13
|
-
export declare function transformer(schema: DP.DataParser, params: TransformerFunctionParams): import("./create").TransformerSuccessEither | DataParserNotSupportedEither | DataParserErrorEither | E.
|
|
12
|
+
export declare function buildRef(name: string, version: SupportedVersions): string;
|
|
13
|
+
export declare function transformer(schema: DP.DataParser, params: TransformerFunctionParams): import("./create").TransformerSuccessEither | DataParserNotSupportedEither | DataParserErrorEither | E.Right<"buildSuccess", {
|
|
14
14
|
readonly schema: {
|
|
15
15
|
readonly $ref: string;
|
|
16
16
|
};
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E, A, whenElse, justReturn, unwrap } from '@duplojs/utils';
|
|
2
2
|
|
|
3
3
|
function buildRef(name, version) {
|
|
4
|
-
if (version === "
|
|
5
|
-
|| version === "
|
|
4
|
+
if (version === "openApi3"
|
|
5
|
+
|| version === "openApi31") {
|
|
6
6
|
return `#/components/schemas/${name}`;
|
|
7
7
|
}
|
|
8
|
-
if (version === "
|
|
8
|
+
if (version === "jsonSchema202012") {
|
|
9
9
|
return `#/$defs/${name}`;
|
|
10
10
|
}
|
|
11
11
|
return `#/definitions/${name}`;
|
|
12
12
|
}
|
|
13
13
|
function transformer(schema, params) {
|
|
14
|
+
if (schema.definition.overrideJsonSchema?.[params.mode]) {
|
|
15
|
+
return E.right("buildSuccess", schema.definition.overrideJsonSchema[params.mode]);
|
|
16
|
+
}
|
|
14
17
|
const currentSchema = A.reduce(params.hooks, A.reduceFrom(schema), ({ element: hook, lastValue, next, exit }) => {
|
|
15
18
|
const result = hook({
|
|
16
19
|
schema: lastValue,
|
|
@@ -11,3 +11,17 @@ dataParser.dataParserInit.overrideHandler.setMethod("addIdentifier", (schema, id
|
|
|
11
11
|
newSchema.setIdentifier(identifier);
|
|
12
12
|
return newSchema;
|
|
13
13
|
});
|
|
14
|
+
dataParser.dataParserInit.overrideHandler.setMethod("setOverrideTypeNode", (schema, overrideTypeNode) => {
|
|
15
|
+
schema.definition.overrideTypeNode = "kind" in overrideTypeNode
|
|
16
|
+
? {
|
|
17
|
+
in: overrideTypeNode,
|
|
18
|
+
out: overrideTypeNode,
|
|
19
|
+
}
|
|
20
|
+
: overrideTypeNode;
|
|
21
|
+
return schema;
|
|
22
|
+
});
|
|
23
|
+
dataParser.dataParserInit.overrideHandler.setMethod("addOverrideTypeNode", (schema, overrideTypeNode) => {
|
|
24
|
+
const newSchema = schema.clone();
|
|
25
|
+
newSchema.setOverrideTypeNode(overrideTypeNode);
|
|
26
|
+
return newSchema;
|
|
27
|
+
});
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { type TypeNode } from "typescript";
|
|
2
|
+
import { type TransformerMode } from "./transformer";
|
|
3
|
+
export type OverrideTypeNodeDataParser = Partial<Record<TransformerMode, TypeNode>>;
|
|
1
4
|
declare module "@duplojs/utils/dataParser" {
|
|
2
5
|
interface DataParser {
|
|
3
6
|
/**
|
|
@@ -5,9 +8,14 @@ declare module "@duplojs/utils/dataParser" {
|
|
|
5
8
|
*/
|
|
6
9
|
setIdentifier(input: string): this;
|
|
7
10
|
addIdentifier(input: string): this;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated this method mutated the dataParser by adding an override type node
|
|
13
|
+
*/
|
|
14
|
+
setOverrideTypeNode(typeNode: TypeNode | OverrideTypeNodeDataParser): this;
|
|
15
|
+
addOverrideTypeNode(typeNode: TypeNode | OverrideTypeNodeDataParser): this;
|
|
8
16
|
}
|
|
9
17
|
interface DataParserDefinition {
|
|
10
18
|
identifier?: string;
|
|
19
|
+
overrideTypeNode?: OverrideTypeNodeDataParser;
|
|
11
20
|
}
|
|
12
21
|
}
|
|
13
|
-
export {};
|
|
@@ -9,3 +9,17 @@ dataParserInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) =
|
|
|
9
9
|
newSchema.setIdentifier(identifier);
|
|
10
10
|
return newSchema;
|
|
11
11
|
});
|
|
12
|
+
dataParserInit.overrideHandler.setMethod("setOverrideTypeNode", (schema, overrideTypeNode) => {
|
|
13
|
+
schema.definition.overrideTypeNode = "kind" in overrideTypeNode
|
|
14
|
+
? {
|
|
15
|
+
in: overrideTypeNode,
|
|
16
|
+
out: overrideTypeNode,
|
|
17
|
+
}
|
|
18
|
+
: overrideTypeNode;
|
|
19
|
+
return schema;
|
|
20
|
+
});
|
|
21
|
+
dataParserInit.overrideHandler.setMethod("addOverrideTypeNode", (schema, overrideTypeNode) => {
|
|
22
|
+
const newSchema = schema.clone();
|
|
23
|
+
newSchema.setOverrideTypeNode(overrideTypeNode);
|
|
24
|
+
return newSchema;
|
|
25
|
+
});
|
|
@@ -5,6 +5,7 @@ require('./transformer/index.cjs');
|
|
|
5
5
|
var typescript = require('typescript');
|
|
6
6
|
var kind = require('./kind.cjs');
|
|
7
7
|
var getRecursiveDataParser = require('../utils/getRecursiveDataParser.cjs');
|
|
8
|
+
var importTypesTransformer = require('./transformer/importTypesTransformer.cjs');
|
|
8
9
|
var transformer = require('./transformer/transformer.cjs');
|
|
9
10
|
|
|
10
11
|
class DataParserToTypescriptRenderError extends utils.kindHeritage("data-parser-to-typescript-render-error", kind.createToTypescriptKind("data-parser-to-typescript-render-error"), Error) {
|
|
@@ -18,12 +19,14 @@ class DataParserToTypescriptRenderError extends utils.kindHeritage("data-parser-
|
|
|
18
19
|
}
|
|
19
20
|
function render(schema, params) {
|
|
20
21
|
const context = new Map(params.context);
|
|
22
|
+
const importType = new Map(params.importType);
|
|
21
23
|
const result = transformer.transformer(schema, {
|
|
22
24
|
...params,
|
|
23
25
|
context,
|
|
24
26
|
mode: params.mode ?? "out",
|
|
25
27
|
hooks: params.hooks ?? [],
|
|
26
28
|
recursiveDataParsers: getRecursiveDataParser.getRecursiveDataParser(schema),
|
|
29
|
+
importType,
|
|
27
30
|
});
|
|
28
31
|
if (utils.E.isLeft(result)) {
|
|
29
32
|
throw new DataParserToTypescriptRenderError(schema, result);
|
|
@@ -36,7 +39,10 @@ function render(schema, params) {
|
|
|
36
39
|
}
|
|
37
40
|
const sourceFile = typescript.createSourceFile("print.ts", "", typescript.ScriptTarget.Latest, false, typescript.ScriptKind.TS);
|
|
38
41
|
const printer = typescript.createPrinter();
|
|
39
|
-
return utils.pipe(
|
|
42
|
+
return utils.pipe([
|
|
43
|
+
...importTypesTransformer.importTypesTransformer(importType),
|
|
44
|
+
...context.values(),
|
|
45
|
+
], utils.G.map((value) => printer.printNode(typescript.EmitHint.Unspecified, value, sourceFile)), utils.A.from, utils.A.join("\n\n"), utils.S.trim);
|
|
40
46
|
}
|
|
41
47
|
|
|
42
48
|
exports.DataParserToTypescriptRenderError = DataParserToTypescriptRenderError;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type DataParserErrorEither, type DataParserNotSupportedEither, type MapContext, type TransformerMode, type TransformerHook, type createTransformer } from "./transformer";
|
|
1
|
+
import { type DataParserErrorEither, type DataParserNotSupportedEither, type MapContext, type TransformerMode, type TransformerHook, type createTransformer, type SupportedDataParsers, type MapImportType } from "./transformer";
|
|
3
2
|
export interface RenderParams {
|
|
4
3
|
readonly identifier: string;
|
|
5
4
|
readonly transformers: readonly ReturnType<typeof createTransformer>[];
|
|
6
5
|
readonly context?: MapContext;
|
|
7
6
|
readonly mode?: TransformerMode;
|
|
8
7
|
readonly hooks?: readonly TransformerHook[];
|
|
8
|
+
readonly importType?: MapImportType;
|
|
9
9
|
}
|
|
10
10
|
declare const DataParserToTypescriptRenderError_base: new (params: {
|
|
11
11
|
"@DuplojsDataParserToolsToTypescript/data-parser-to-typescript-render-error"?: unknown;
|
|
12
|
-
}, parentParams: [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;
|
|
12
|
+
}, 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;
|
|
13
13
|
export declare class DataParserToTypescriptRenderError extends DataParserToTypescriptRenderError_base {
|
|
14
|
-
schema:
|
|
14
|
+
schema: SupportedDataParsers;
|
|
15
15
|
error: DataParserNotSupportedEither | DataParserErrorEither;
|
|
16
|
-
constructor(schema:
|
|
16
|
+
constructor(schema: SupportedDataParsers, error: DataParserNotSupportedEither | DataParserErrorEither);
|
|
17
17
|
}
|
|
18
|
-
export declare function render(schema:
|
|
18
|
+
export declare function render(schema: SupportedDataParsers, params: RenderParams): string;
|
|
19
19
|
export {};
|
|
@@ -3,6 +3,7 @@ import './transformer/index.mjs';
|
|
|
3
3
|
import { factory, SyntaxKind, createSourceFile, ScriptTarget, ScriptKind, createPrinter, EmitHint } from 'typescript';
|
|
4
4
|
import { createToTypescriptKind } from './kind.mjs';
|
|
5
5
|
import { getRecursiveDataParser } from '../utils/getRecursiveDataParser.mjs';
|
|
6
|
+
import { importTypesTransformer } from './transformer/importTypesTransformer.mjs';
|
|
6
7
|
import { transformer } from './transformer/transformer.mjs';
|
|
7
8
|
|
|
8
9
|
class DataParserToTypescriptRenderError extends kindHeritage("data-parser-to-typescript-render-error", createToTypescriptKind("data-parser-to-typescript-render-error"), Error) {
|
|
@@ -16,12 +17,14 @@ class DataParserToTypescriptRenderError extends kindHeritage("data-parser-to-typ
|
|
|
16
17
|
}
|
|
17
18
|
function render(schema, params) {
|
|
18
19
|
const context = new Map(params.context);
|
|
20
|
+
const importType = new Map(params.importType);
|
|
19
21
|
const result = transformer(schema, {
|
|
20
22
|
...params,
|
|
21
23
|
context,
|
|
22
24
|
mode: params.mode ?? "out",
|
|
23
25
|
hooks: params.hooks ?? [],
|
|
24
26
|
recursiveDataParsers: getRecursiveDataParser(schema),
|
|
27
|
+
importType,
|
|
25
28
|
});
|
|
26
29
|
if (E.isLeft(result)) {
|
|
27
30
|
throw new DataParserToTypescriptRenderError(schema, result);
|
|
@@ -34,7 +37,10 @@ function render(schema, params) {
|
|
|
34
37
|
}
|
|
35
38
|
const sourceFile = createSourceFile("print.ts", "", ScriptTarget.Latest, false, ScriptKind.TS);
|
|
36
39
|
const printer = createPrinter();
|
|
37
|
-
return pipe(
|
|
40
|
+
return pipe([
|
|
41
|
+
...importTypesTransformer(importType),
|
|
42
|
+
...context.values(),
|
|
43
|
+
], G.map((value) => printer.printNode(EmitHint.Unspecified, value, sourceFile)), A.from, A.join("\n\n"), S.trim);
|
|
38
44
|
}
|
|
39
45
|
|
|
40
46
|
export { DataParserToTypescriptRenderError, render };
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { type TypeAliasDeclaration, type TypeNode } from "typescript";
|
|
2
2
|
import { type DP, E } from "@duplojs/utils";
|
|
3
|
-
|
|
4
|
-
export type
|
|
5
|
-
export type
|
|
6
|
-
export type
|
|
3
|
+
import { type SDP } from "@duplojs/server-utils";
|
|
4
|
+
export type TransformerSuccessEither = E.Right<"buildSuccess", TypeNode>;
|
|
5
|
+
export type DataParserNotSupportedEither = E.Left<"dataParserNotSupport", DP.DataParser>;
|
|
6
|
+
export type DataParserErrorEither = E.Left<"buildDataParserError", DP.DataParser>;
|
|
7
|
+
export type SupportedDataParsers = DP.DataParsers | SDP.DataParserFile;
|
|
8
|
+
export type MapContext = Map<SupportedDataParsers, TypeAliasDeclaration>;
|
|
9
|
+
export type MapImportType = Map<string, string[]>;
|
|
7
10
|
export type MaybeTransformerEither = TransformerSuccessEither | DataParserNotSupportedEither | DataParserErrorEither;
|
|
8
11
|
export type TransformerMode = "in" | "out";
|
|
9
12
|
export interface TransformerParams {
|
|
10
13
|
readonly mode: TransformerMode;
|
|
11
14
|
readonly context: MapContext;
|
|
15
|
+
readonly importType: MapImportType;
|
|
12
16
|
transformer(schema: DP.DataParser): MaybeTransformerEither;
|
|
13
17
|
success(result: TypeNode): TransformerSuccessEither;
|
|
14
18
|
buildError(): DataParserErrorEither;
|
|
19
|
+
addImport(path: string, typeName: string): void;
|
|
15
20
|
}
|
|
16
|
-
export declare function createTransformer<GenericDataParser extends
|
|
21
|
+
export declare function createTransformer<GenericDataParser extends SupportedDataParsers>(support: (schema: SupportedDataParsers) => schema is GenericDataParser, builder: (schema: GenericDataParser, params: TransformerParams) => MaybeTransformerEither): (schema: SupportedDataParsers, params: TransformerParams) => MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const arrayTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const arrayTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const bigIntTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const bigIntTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const booleanTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const booleanTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -4,12 +4,22 @@ var utils = require('@duplojs/utils');
|
|
|
4
4
|
var typescript = require('typescript');
|
|
5
5
|
var create = require('../create.cjs');
|
|
6
6
|
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
const theDate = typescript.factory.createTypeReferenceNode(typescript.factory.createIdentifier("TheDate"));
|
|
8
|
+
const serializedTheDate = typescript.factory.createTypeReferenceNode(typescript.factory.createIdentifier("SerializedTheDate"));
|
|
9
|
+
const nativeDate = typescript.factory.createTypeReferenceNode(typescript.factory.createIdentifier("Date"), undefined);
|
|
10
|
+
const dateTransformer = create.createTransformer(utils.DP.dateKind.has, (__schema, { mode, success, addImport, }) => {
|
|
11
|
+
addImport("@duplojs/utils/date", "TheDate");
|
|
12
|
+
return utils.P.match(mode)
|
|
13
|
+
.with("out", () => success(theDate))
|
|
14
|
+
.with("in", () => {
|
|
15
|
+
addImport("@duplojs/utils/date", "SerializedTheDate");
|
|
16
|
+
return success(typescript.factory.createUnionTypeNode([
|
|
17
|
+
theDate,
|
|
18
|
+
nativeDate,
|
|
19
|
+
serializedTheDate,
|
|
20
|
+
]));
|
|
21
|
+
})
|
|
22
|
+
.exhaustive();
|
|
23
|
+
});
|
|
14
24
|
|
|
15
25
|
exports.dateTransformer = dateTransformer;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const dateTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const dateTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,13 +1,23 @@
|
|
|
1
|
-
import { DP } from '@duplojs/utils';
|
|
2
|
-
import { factory
|
|
1
|
+
import { DP, P } from '@duplojs/utils';
|
|
2
|
+
import { factory } from 'typescript';
|
|
3
3
|
import { createTransformer } from '../create.mjs';
|
|
4
4
|
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
const theDate = factory.createTypeReferenceNode(factory.createIdentifier("TheDate"));
|
|
6
|
+
const serializedTheDate = factory.createTypeReferenceNode(factory.createIdentifier("SerializedTheDate"));
|
|
7
|
+
const nativeDate = factory.createTypeReferenceNode(factory.createIdentifier("Date"), undefined);
|
|
8
|
+
const dateTransformer = createTransformer(DP.dateKind.has, (__schema, { mode, success, addImport, }) => {
|
|
9
|
+
addImport("@duplojs/utils/date", "TheDate");
|
|
10
|
+
return P.match(mode)
|
|
11
|
+
.with("out", () => success(theDate))
|
|
12
|
+
.with("in", () => {
|
|
13
|
+
addImport("@duplojs/utils/date", "SerializedTheDate");
|
|
14
|
+
return success(factory.createUnionTypeNode([
|
|
15
|
+
theDate,
|
|
16
|
+
nativeDate,
|
|
17
|
+
serializedTheDate,
|
|
18
|
+
]));
|
|
19
|
+
})
|
|
20
|
+
.exhaustive();
|
|
21
|
+
});
|
|
12
22
|
|
|
13
23
|
export { dateTransformer };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const emptyTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const emptyTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var serverUtils = require('@duplojs/server-utils');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
var create = require('../create.cjs');
|
|
7
|
+
|
|
8
|
+
const fileTransformer = create.createTransformer(serverUtils.SDP.fileKind.has, (schema, { success, addImport, }) => {
|
|
9
|
+
addImport("@duplojs/server-utils/file", "FileInterface");
|
|
10
|
+
return utils.pipe("FileInterface", typescript.factory.createIdentifier, typescript.factory.createTypeReferenceNode, success);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
exports.fileTransformer = fileTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const fileTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { pipe } from '@duplojs/utils';
|
|
2
|
+
import { SDP } from '@duplojs/server-utils';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
import { createTransformer } from '../create.mjs';
|
|
5
|
+
|
|
6
|
+
const fileTransformer = createTransformer(SDP.fileKind.has, (schema, { success, addImport, }) => {
|
|
7
|
+
addImport("@duplojs/server-utils/file", "FileInterface");
|
|
8
|
+
return pipe("FileInterface", factory.createIdentifier, factory.createTypeReferenceNode, success);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export { fileTransformer };
|
|
@@ -22,6 +22,7 @@ var union = require('./union.cjs');
|
|
|
22
22
|
var unknown = require('./unknown.cjs');
|
|
23
23
|
var date = require('./date.cjs');
|
|
24
24
|
var time = require('./time.cjs');
|
|
25
|
+
var file = require('./file.cjs');
|
|
25
26
|
|
|
26
27
|
const defaultTransformers = [
|
|
27
28
|
array.arrayTransformer,
|
|
@@ -46,6 +47,7 @@ const defaultTransformers = [
|
|
|
46
47
|
unknown.unknownTransformer,
|
|
47
48
|
date.dateTransformer,
|
|
48
49
|
time.timeTransformer,
|
|
50
|
+
file.fileTransformer,
|
|
49
51
|
];
|
|
50
52
|
|
|
51
53
|
exports.arrayTransformer = array.arrayTransformer;
|
|
@@ -20,4 +20,4 @@ export * from "./union";
|
|
|
20
20
|
export * from "./unknown";
|
|
21
21
|
export * from "./date";
|
|
22
22
|
export * from "./time";
|
|
23
|
-
export declare const defaultTransformers: readonly [(schema: import("
|
|
23
|
+
export declare const defaultTransformers: readonly [(schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither];
|
|
@@ -20,6 +20,7 @@ import { unionTransformer } from './union.mjs';
|
|
|
20
20
|
import { unknownTransformer } from './unknown.mjs';
|
|
21
21
|
import { dateTransformer } from './date.mjs';
|
|
22
22
|
import { timeTransformer } from './time.mjs';
|
|
23
|
+
import { fileTransformer } from './file.mjs';
|
|
23
24
|
|
|
24
25
|
const defaultTransformers = [
|
|
25
26
|
arrayTransformer,
|
|
@@ -44,6 +45,7 @@ const defaultTransformers = [
|
|
|
44
45
|
unknownTransformer,
|
|
45
46
|
dateTransformer,
|
|
46
47
|
timeTransformer,
|
|
48
|
+
fileTransformer,
|
|
47
49
|
];
|
|
48
50
|
|
|
49
51
|
export { arrayTransformer, bigIntTransformer, booleanTransformer, dateTransformer, defaultTransformers, emptyTransformer, lazyTransformer, literalTransformer, nilTransformer, nullableTransformer, numberTransformer, objectTransformer, optionalTransformer, pipeTransformer, recordTransformer, recoverTransformer, stringTransformer, templateLiteralTransformer, timeTransformer, transformTransformer, tupleTransformer, unionTransformer, unknownTransformer };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const lazyTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const lazyTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const literalTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const literalTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const nilTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const nilTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const nullableTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const nullableTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const numberTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const numberTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const objectTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const objectTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const optionalTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const optionalTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const pipeTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const pipeTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const recordTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const recordTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const recoverTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const recoverTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const stringTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const stringTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const templateLiteralTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const templateLiteralTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -4,12 +4,22 @@ var utils = require('@duplojs/utils');
|
|
|
4
4
|
var typescript = require('typescript');
|
|
5
5
|
var create = require('../create.cjs');
|
|
6
6
|
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
const theTime = typescript.factory.createTypeReferenceNode(typescript.factory.createIdentifier("TheTime"));
|
|
8
|
+
const serializedTheTime = typescript.factory.createTypeReferenceNode(typescript.factory.createIdentifier("SerializedTheTime"));
|
|
9
|
+
const number = typescript.factory.createKeywordTypeNode(typescript.SyntaxKind.NumberKeyword);
|
|
10
|
+
const timeTransformer = create.createTransformer(utils.DP.timeKind.has, (__schema, { mode, success, addImport, }) => {
|
|
11
|
+
addImport("@duplojs/utils/date", "TheTime");
|
|
12
|
+
return utils.P.match(mode)
|
|
13
|
+
.with("out", () => success(theTime))
|
|
14
|
+
.with("in", () => {
|
|
15
|
+
addImport("@duplojs/utils/date", "SerializedTheTime");
|
|
16
|
+
return success(typescript.factory.createUnionTypeNode([
|
|
17
|
+
serializedTheTime,
|
|
18
|
+
number,
|
|
19
|
+
theTime,
|
|
20
|
+
]));
|
|
21
|
+
})
|
|
22
|
+
.exhaustive();
|
|
23
|
+
});
|
|
14
24
|
|
|
15
25
|
exports.timeTransformer = timeTransformer;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const timeTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const timeTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,13 +1,23 @@
|
|
|
1
|
-
import { DP } from '@duplojs/utils';
|
|
1
|
+
import { DP, P } from '@duplojs/utils';
|
|
2
2
|
import { factory, SyntaxKind } from 'typescript';
|
|
3
3
|
import { createTransformer } from '../create.mjs';
|
|
4
4
|
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
const theTime = factory.createTypeReferenceNode(factory.createIdentifier("TheTime"));
|
|
6
|
+
const serializedTheTime = factory.createTypeReferenceNode(factory.createIdentifier("SerializedTheTime"));
|
|
7
|
+
const number = factory.createKeywordTypeNode(SyntaxKind.NumberKeyword);
|
|
8
|
+
const timeTransformer = createTransformer(DP.timeKind.has, (__schema, { mode, success, addImport, }) => {
|
|
9
|
+
addImport("@duplojs/utils/date", "TheTime");
|
|
10
|
+
return P.match(mode)
|
|
11
|
+
.with("out", () => success(theTime))
|
|
12
|
+
.with("in", () => {
|
|
13
|
+
addImport("@duplojs/utils/date", "SerializedTheTime");
|
|
14
|
+
return success(factory.createUnionTypeNode([
|
|
15
|
+
serializedTheTime,
|
|
16
|
+
number,
|
|
17
|
+
theTime,
|
|
18
|
+
]));
|
|
19
|
+
})
|
|
20
|
+
.exhaustive();
|
|
21
|
+
});
|
|
12
22
|
|
|
13
23
|
export { timeTransformer };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const transformTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const transformTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const tupleTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const tupleTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const unionTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
1
|
+
export declare const unionTransformer: (schema: import("..").SupportedDataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|