@duplojs/data-parser-tools 0.2.0 → 0.2.2
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/toJsonSchema/index.cjs +2 -0
- package/dist/toJsonSchema/index.mjs +1 -0
- package/dist/toJsonSchema/transformer/create.d.ts +2 -2
- package/dist/toJsonSchema/transformer/defaults/index.cjs +3 -0
- package/dist/toJsonSchema/transformer/defaults/index.d.ts +2 -1
- package/dist/toJsonSchema/transformer/defaults/index.mjs +3 -1
- package/dist/toJsonSchema/transformer/defaults/time.cjs +26 -0
- package/dist/toJsonSchema/transformer/defaults/time.d.ts +7 -0
- package/dist/toJsonSchema/transformer/defaults/time.mjs +24 -0
- package/dist/toTypescript/index.cjs +2 -0
- package/dist/toTypescript/index.mjs +1 -0
- package/dist/toTypescript/override.cjs +6 -3
- package/dist/toTypescript/override.mjs +6 -3
- package/dist/toTypescript/transformer/defaults/index.cjs +3 -0
- package/dist/toTypescript/transformer/defaults/index.d.ts +2 -1
- package/dist/toTypescript/transformer/defaults/index.mjs +3 -1
- package/dist/toTypescript/transformer/defaults/time.cjs +15 -0
- package/dist/toTypescript/transformer/defaults/time.d.ts +2 -0
- package/dist/toTypescript/transformer/defaults/time.mjs +13 -0
- package/dist/utils/getRecursiveDataParser.cjs +40 -17
- package/dist/utils/getRecursiveDataParser.mjs +41 -18
- package/package.json +2 -2
|
@@ -28,6 +28,7 @@ var transform = require('./transformer/defaults/transform.cjs');
|
|
|
28
28
|
var tuple = require('./transformer/defaults/tuple.cjs');
|
|
29
29
|
var union = require('./transformer/defaults/union.cjs');
|
|
30
30
|
var unknown = require('./transformer/defaults/unknown.cjs');
|
|
31
|
+
var time = require('./transformer/defaults/time.cjs');
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
|
|
@@ -59,3 +60,4 @@ exports.transformTransformer = transform.transformTransformer;
|
|
|
59
60
|
exports.tupleTransformer = tuple.tupleTransformer;
|
|
60
61
|
exports.unionTransformer = union.unionTransformer;
|
|
61
62
|
exports.unknownTransformer = unknown.unknownTransformer;
|
|
63
|
+
exports.timeTransformer = time.timeTransformer;
|
|
@@ -26,3 +26,4 @@ export { transformTransformer } from './transformer/defaults/transform.mjs';
|
|
|
26
26
|
export { tupleTransformer } from './transformer/defaults/tuple.mjs';
|
|
27
27
|
export { unionTransformer } from './transformer/defaults/union.mjs';
|
|
28
28
|
export { unknownTransformer } from './transformer/defaults/unknown.mjs';
|
|
29
|
+
export { timeTransformer } from './transformer/defaults/time.mjs';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { type DP, E } from "@duplojs/utils";
|
|
2
|
-
import type { JsonSchemaArray, JsonSchemaBigInt, JsonSchemaBoolean, JsonSchemaDate, JsonSchemaEmpty, JsonSchemaLiteral, JsonSchemaNil, JsonSchemaNullableAnyOf, JsonSchemaNumber, JsonSchemaObject, JsonSchemaRecord, JsonSchemaString, JsonSchemaTemplateLiteral, JsonSchemaTuple, JsonSchemaUnion, JsonSchemaUnknown } from "./defaults";
|
|
2
|
+
import type { JsonSchemaArray, JsonSchemaBigInt, JsonSchemaBoolean, JsonSchemaDate, JsonSchemaEmpty, JsonSchemaLiteral, JsonSchemaNil, JsonSchemaNullableAnyOf, JsonSchemaNumber, JsonSchemaObject, JsonSchemaRecord, JsonSchemaString, JsonSchemaTemplateLiteral, JsonSchemaTuple, JsonSchemaUnion, JsonSchemaUnknown, JsonSchemaTime } from "./defaults";
|
|
3
3
|
export interface JsonSchemaRef {
|
|
4
4
|
$ref: string;
|
|
5
5
|
}
|
|
6
6
|
export interface JsonSchemaAnyOf {
|
|
7
7
|
anyOf: JsonSchema[];
|
|
8
8
|
}
|
|
9
|
-
export type JsonSchema = JsonSchemaRef | JsonSchemaAnyOf | JsonSchemaArray | JsonSchemaBigInt | JsonSchemaBoolean | JsonSchemaDate | JsonSchemaEmpty | JsonSchemaLiteral | JsonSchemaNil | JsonSchemaNullableAnyOf | JsonSchemaNumber | JsonSchemaObject | JsonSchemaRecord | JsonSchemaString | JsonSchemaTemplateLiteral | JsonSchemaTuple | JsonSchemaUnion | JsonSchemaUnknown;
|
|
9
|
+
export type JsonSchema = JsonSchemaRef | JsonSchemaAnyOf | JsonSchemaArray | JsonSchemaBigInt | JsonSchemaBoolean | JsonSchemaDate | JsonSchemaEmpty | JsonSchemaLiteral | JsonSchemaNil | JsonSchemaNullableAnyOf | JsonSchemaNumber | JsonSchemaObject | JsonSchemaRecord | JsonSchemaString | JsonSchemaTemplateLiteral | JsonSchemaTuple | JsonSchemaUnion | JsonSchemaUnknown | JsonSchemaTime;
|
|
10
10
|
export interface TransformerSuccess {
|
|
11
11
|
readonly schema: JsonSchema;
|
|
12
12
|
readonly canBeUndefined: boolean;
|
|
@@ -21,6 +21,7 @@ var transform = require('./transform.cjs');
|
|
|
21
21
|
var tuple = require('./tuple.cjs');
|
|
22
22
|
var union = require('./union.cjs');
|
|
23
23
|
var unknown = require('./unknown.cjs');
|
|
24
|
+
var time = require('./time.cjs');
|
|
24
25
|
|
|
25
26
|
const defaultTransformers = [
|
|
26
27
|
array.arrayTransformer,
|
|
@@ -44,6 +45,7 @@ const defaultTransformers = [
|
|
|
44
45
|
tuple.tupleTransformer,
|
|
45
46
|
union.unionTransformer,
|
|
46
47
|
unknown.unknownTransformer,
|
|
48
|
+
time.timeTransformer,
|
|
47
49
|
];
|
|
48
50
|
|
|
49
51
|
exports.arrayTransformer = array.arrayTransformer;
|
|
@@ -67,4 +69,5 @@ exports.transformTransformer = transform.transformTransformer;
|
|
|
67
69
|
exports.tupleTransformer = tuple.tupleTransformer;
|
|
68
70
|
exports.unionTransformer = union.unionTransformer;
|
|
69
71
|
exports.unknownTransformer = unknown.unknownTransformer;
|
|
72
|
+
exports.timeTransformer = time.timeTransformer;
|
|
70
73
|
exports.defaultTransformers = defaultTransformers;
|
|
@@ -19,4 +19,5 @@ export * from "./transform";
|
|
|
19
19
|
export * from "./tuple";
|
|
20
20
|
export * from "./union";
|
|
21
21
|
export * from "./unknown";
|
|
22
|
-
export
|
|
22
|
+
export * from "./time";
|
|
23
|
+
export declare const defaultTransformers: readonly [(schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither];
|
|
@@ -19,6 +19,7 @@ import { transformTransformer } from './transform.mjs';
|
|
|
19
19
|
import { tupleTransformer } from './tuple.mjs';
|
|
20
20
|
import { unionTransformer } from './union.mjs';
|
|
21
21
|
import { unknownTransformer } from './unknown.mjs';
|
|
22
|
+
import { timeTransformer } from './time.mjs';
|
|
22
23
|
|
|
23
24
|
const defaultTransformers = [
|
|
24
25
|
arrayTransformer,
|
|
@@ -42,6 +43,7 @@ const defaultTransformers = [
|
|
|
42
43
|
tupleTransformer,
|
|
43
44
|
unionTransformer,
|
|
44
45
|
unknownTransformer,
|
|
46
|
+
timeTransformer,
|
|
45
47
|
];
|
|
46
48
|
|
|
47
|
-
export { arrayTransformer, bigIntTransformer, booleanTransformer, dateTransformer, defaultTransformers, emptyTransformer, lazyTransformer, literalTransformer, nilTransformer, nullableTransformer, numberTransformer, objectTransformer, optionalTransformer, pipeTransformer, recordTransformer, recoverTransformer, stringTransformer, templateLiteralTransformer, transformTransformer, tupleTransformer, unionTransformer, unknownTransformer };
|
|
49
|
+
export { arrayTransformer, bigIntTransformer, booleanTransformer, dateTransformer, defaultTransformers, emptyTransformer, lazyTransformer, literalTransformer, nilTransformer, nullableTransformer, numberTransformer, objectTransformer, optionalTransformer, pipeTransformer, recordTransformer, recoverTransformer, stringTransformer, templateLiteralTransformer, timeTransformer, transformTransformer, tupleTransformer, unionTransformer, unknownTransformer };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../create.cjs');
|
|
5
|
+
|
|
6
|
+
const timeTransformer = create.createTransformer(utils.DP.timeKind.has, (schema, { success, mode, }) => {
|
|
7
|
+
const base = {
|
|
8
|
+
type: "string",
|
|
9
|
+
pattern: utils.D.theTimeRegex.source,
|
|
10
|
+
};
|
|
11
|
+
if (mode === "in" && schema.definition.coerce) {
|
|
12
|
+
return success({
|
|
13
|
+
anyOf: [
|
|
14
|
+
base,
|
|
15
|
+
{ type: "number" },
|
|
16
|
+
{
|
|
17
|
+
type: "string",
|
|
18
|
+
format: "time",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return success(base);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
exports.timeTransformer = timeTransformer;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DP } from "@duplojs/utils";
|
|
2
|
+
export interface JsonSchemaTime {
|
|
3
|
+
type: "string";
|
|
4
|
+
pattern?: string;
|
|
5
|
+
format?: "time";
|
|
6
|
+
}
|
|
7
|
+
export declare const timeTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DP, D } from '@duplojs/utils';
|
|
2
|
+
import { createTransformer } from '../create.mjs';
|
|
3
|
+
|
|
4
|
+
const timeTransformer = createTransformer(DP.timeKind.has, (schema, { success, mode, }) => {
|
|
5
|
+
const base = {
|
|
6
|
+
type: "string",
|
|
7
|
+
pattern: D.theTimeRegex.source,
|
|
8
|
+
};
|
|
9
|
+
if (mode === "in" && schema.definition.coerce) {
|
|
10
|
+
return success({
|
|
11
|
+
anyOf: [
|
|
12
|
+
base,
|
|
13
|
+
{ type: "number" },
|
|
14
|
+
{
|
|
15
|
+
type: "string",
|
|
16
|
+
format: "time",
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return success(base);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
export { timeTransformer };
|
|
@@ -28,6 +28,7 @@ var tuple = require('./transformer/defaults/tuple.cjs');
|
|
|
28
28
|
var union = require('./transformer/defaults/union.cjs');
|
|
29
29
|
var unknown = require('./transformer/defaults/unknown.cjs');
|
|
30
30
|
var date = require('./transformer/defaults/date.cjs');
|
|
31
|
+
var time = require('./transformer/defaults/time.cjs');
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
|
|
@@ -58,3 +59,4 @@ exports.tupleTransformer = tuple.tupleTransformer;
|
|
|
58
59
|
exports.unionTransformer = union.unionTransformer;
|
|
59
60
|
exports.unknownTransformer = unknown.unknownTransformer;
|
|
60
61
|
exports.dateTransformer = date.dateTransformer;
|
|
62
|
+
exports.timeTransformer = time.timeTransformer;
|
|
@@ -26,3 +26,4 @@ export { tupleTransformer } from './transformer/defaults/tuple.mjs';
|
|
|
26
26
|
export { unionTransformer } from './transformer/defaults/union.mjs';
|
|
27
27
|
export { unknownTransformer } from './transformer/defaults/unknown.mjs';
|
|
28
28
|
export { dateTransformer } from './transformer/defaults/date.mjs';
|
|
29
|
+
export { timeTransformer } from './transformer/defaults/time.mjs';
|
|
@@ -6,7 +6,10 @@ dataParser.dataParserInit.overrideHandler.setMethod("setIdentifier", (schema, id
|
|
|
6
6
|
schema.definition.identifier = identifier;
|
|
7
7
|
return schema;
|
|
8
8
|
});
|
|
9
|
-
dataParser.dataParserInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) =>
|
|
10
|
-
...schema
|
|
11
|
-
|
|
9
|
+
dataParser.dataParserInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) => ({
|
|
10
|
+
...schema,
|
|
11
|
+
definition: {
|
|
12
|
+
...schema.definition,
|
|
13
|
+
identifier,
|
|
14
|
+
},
|
|
12
15
|
}));
|
|
@@ -4,7 +4,10 @@ dataParserInit.overrideHandler.setMethod("setIdentifier", (schema, identifier) =
|
|
|
4
4
|
schema.definition.identifier = identifier;
|
|
5
5
|
return schema;
|
|
6
6
|
});
|
|
7
|
-
dataParserInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) =>
|
|
8
|
-
...schema
|
|
9
|
-
|
|
7
|
+
dataParserInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) => ({
|
|
8
|
+
...schema,
|
|
9
|
+
definition: {
|
|
10
|
+
...schema.definition,
|
|
11
|
+
identifier,
|
|
12
|
+
},
|
|
10
13
|
}));
|
|
@@ -21,6 +21,7 @@ var tuple = require('./tuple.cjs');
|
|
|
21
21
|
var union = require('./union.cjs');
|
|
22
22
|
var unknown = require('./unknown.cjs');
|
|
23
23
|
var date = require('./date.cjs');
|
|
24
|
+
var time = require('./time.cjs');
|
|
24
25
|
|
|
25
26
|
const defaultTransformers = [
|
|
26
27
|
array.arrayTransformer,
|
|
@@ -44,6 +45,7 @@ const defaultTransformers = [
|
|
|
44
45
|
union.unionTransformer,
|
|
45
46
|
unknown.unknownTransformer,
|
|
46
47
|
date.dateTransformer,
|
|
48
|
+
time.timeTransformer,
|
|
47
49
|
];
|
|
48
50
|
|
|
49
51
|
exports.arrayTransformer = array.arrayTransformer;
|
|
@@ -67,4 +69,5 @@ exports.tupleTransformer = tuple.tupleTransformer;
|
|
|
67
69
|
exports.unionTransformer = union.unionTransformer;
|
|
68
70
|
exports.unknownTransformer = unknown.unknownTransformer;
|
|
69
71
|
exports.dateTransformer = date.dateTransformer;
|
|
72
|
+
exports.timeTransformer = time.timeTransformer;
|
|
70
73
|
exports.defaultTransformers = defaultTransformers;
|
|
@@ -19,4 +19,5 @@ export * from "./tuple";
|
|
|
19
19
|
export * from "./union";
|
|
20
20
|
export * from "./unknown";
|
|
21
21
|
export * from "./date";
|
|
22
|
-
export
|
|
22
|
+
export * from "./time";
|
|
23
|
+
export declare const defaultTransformers: readonly [(schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither, (schema: import("@duplojs/utils/dataParser").DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither];
|
|
@@ -19,6 +19,7 @@ import { tupleTransformer } from './tuple.mjs';
|
|
|
19
19
|
import { unionTransformer } from './union.mjs';
|
|
20
20
|
import { unknownTransformer } from './unknown.mjs';
|
|
21
21
|
import { dateTransformer } from './date.mjs';
|
|
22
|
+
import { timeTransformer } from './time.mjs';
|
|
22
23
|
|
|
23
24
|
const defaultTransformers = [
|
|
24
25
|
arrayTransformer,
|
|
@@ -42,6 +43,7 @@ const defaultTransformers = [
|
|
|
42
43
|
unionTransformer,
|
|
43
44
|
unknownTransformer,
|
|
44
45
|
dateTransformer,
|
|
46
|
+
timeTransformer,
|
|
45
47
|
];
|
|
46
48
|
|
|
47
|
-
export { arrayTransformer, bigIntTransformer, booleanTransformer, dateTransformer, defaultTransformers, emptyTransformer, lazyTransformer, literalTransformer, nilTransformer, nullableTransformer, numberTransformer, objectTransformer, optionalTransformer, pipeTransformer, recordTransformer, recoverTransformer, stringTransformer, templateLiteralTransformer, transformTransformer, tupleTransformer, unionTransformer, unknownTransformer };
|
|
49
|
+
export { arrayTransformer, bigIntTransformer, booleanTransformer, dateTransformer, defaultTransformers, emptyTransformer, lazyTransformer, literalTransformer, nilTransformer, nullableTransformer, numberTransformer, objectTransformer, optionalTransformer, pipeTransformer, recordTransformer, recoverTransformer, stringTransformer, templateLiteralTransformer, timeTransformer, transformTransformer, tupleTransformer, unionTransformer, unknownTransformer };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var typescript = require('typescript');
|
|
5
|
+
var create = require('../create.cjs');
|
|
6
|
+
|
|
7
|
+
const timeTransformer = create.createTransformer(utils.DP.timeKind.has, (__schema, { success }) => success(typescript.factory.createTemplateLiteralType(typescript.factory.createTemplateHead("time", "time"), [
|
|
8
|
+
typescript.factory.createTemplateLiteralTypeSpan(typescript.factory.createKeywordTypeNode(typescript.SyntaxKind.NumberKeyword), typescript.factory.createTemplateMiddle("", "")),
|
|
9
|
+
typescript.factory.createTemplateLiteralTypeSpan(typescript.factory.createUnionTypeNode([
|
|
10
|
+
typescript.factory.createLiteralTypeNode(typescript.factory.createStringLiteral("-")),
|
|
11
|
+
typescript.factory.createLiteralTypeNode(typescript.factory.createStringLiteral("+")),
|
|
12
|
+
]), typescript.factory.createTemplateTail("", "")),
|
|
13
|
+
])));
|
|
14
|
+
|
|
15
|
+
exports.timeTransformer = timeTransformer;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { factory, SyntaxKind } from 'typescript';
|
|
3
|
+
import { createTransformer } from '../create.mjs';
|
|
4
|
+
|
|
5
|
+
const timeTransformer = createTransformer(DP.timeKind.has, (__schema, { success }) => success(factory.createTemplateLiteralType(factory.createTemplateHead("time", "time"), [
|
|
6
|
+
factory.createTemplateLiteralTypeSpan(factory.createKeywordTypeNode(SyntaxKind.NumberKeyword), factory.createTemplateMiddle("", "")),
|
|
7
|
+
factory.createTemplateLiteralTypeSpan(factory.createUnionTypeNode([
|
|
8
|
+
factory.createLiteralTypeNode(factory.createStringLiteral("-")),
|
|
9
|
+
factory.createLiteralTypeNode(factory.createStringLiteral("+")),
|
|
10
|
+
]), factory.createTemplateTail("", "")),
|
|
11
|
+
])));
|
|
12
|
+
|
|
13
|
+
export { timeTransformer };
|
|
@@ -6,28 +6,42 @@ function getRecursiveDataParser(schema) {
|
|
|
6
6
|
const countMap = new Map();
|
|
7
7
|
void (function countDataParser(schema) {
|
|
8
8
|
utils.P.match(schema)
|
|
9
|
-
.when(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
9
|
+
.when(utils.hasSomeKinds([
|
|
10
|
+
utils.DP.stringKind,
|
|
11
|
+
utils.DP.stringKind,
|
|
12
|
+
utils.DP.numberKind,
|
|
13
|
+
utils.DP.nilKind,
|
|
14
|
+
utils.DP.dateKind,
|
|
15
|
+
utils.DP.emptyKind,
|
|
16
|
+
utils.DP.bigIntKind,
|
|
17
|
+
utils.DP.booleanKind,
|
|
18
|
+
utils.DP.literalKind,
|
|
19
|
+
utils.DP.unknownKind,
|
|
20
|
+
utils.DP.templateLiteralKind,
|
|
21
|
+
utils.DP.recordKind,
|
|
22
|
+
]), () => void 0)
|
|
23
|
+
.when(utils.hasSomeKinds([
|
|
24
|
+
utils.DP.nullableKind,
|
|
25
|
+
utils.DP.optionalKind,
|
|
26
|
+
utils.DP.recoverKind,
|
|
27
|
+
utils.DP.transformKind,
|
|
28
|
+
]), (dataParser) => void countDataParser(dataParser.definition.inner))
|
|
25
29
|
.when(utils.DP.lazyKind.has, (dataParser) => void countDataParser(dataParser.definition.getter.value))
|
|
26
30
|
.when(utils.DP.pipeKind.has, (dataParser) => {
|
|
27
31
|
countDataParser(dataParser.definition.input);
|
|
28
32
|
countDataParser(dataParser.definition.output);
|
|
29
33
|
})
|
|
30
|
-
.when(utils.DP.unionKind.has, (dataParser) =>
|
|
34
|
+
.when(utils.DP.unionKind.has, (dataParser) => {
|
|
35
|
+
const count = (countMap.get(dataParser) ?? 0) + 1;
|
|
36
|
+
countMap.set(dataParser, count);
|
|
37
|
+
if (count > 1) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
utils.A.map(dataParser.definition.options, countDataParser);
|
|
41
|
+
if (countMap.get(dataParser) === 1) {
|
|
42
|
+
countMap.delete(dataParser);
|
|
43
|
+
}
|
|
44
|
+
})
|
|
31
45
|
.when(utils.DP.arrayKind.has, (dataParser) => {
|
|
32
46
|
const count = (countMap.get(dataParser) ?? 0) + 1;
|
|
33
47
|
countMap.set(dataParser, count);
|
|
@@ -35,6 +49,9 @@ function getRecursiveDataParser(schema) {
|
|
|
35
49
|
return;
|
|
36
50
|
}
|
|
37
51
|
countDataParser(dataParser.definition.element);
|
|
52
|
+
if (countMap.get(dataParser) === 1) {
|
|
53
|
+
countMap.delete(dataParser);
|
|
54
|
+
}
|
|
38
55
|
})
|
|
39
56
|
.when(utils.DP.objectKind.has, (dataParser) => {
|
|
40
57
|
const count = (countMap.get(dataParser) ?? 0) + 1;
|
|
@@ -43,6 +60,9 @@ function getRecursiveDataParser(schema) {
|
|
|
43
60
|
return;
|
|
44
61
|
}
|
|
45
62
|
utils.pipe(dataParser.definition.shape, utils.O.entries, utils.A.map(([, value]) => void countDataParser(value)));
|
|
63
|
+
if (countMap.get(dataParser) === 1) {
|
|
64
|
+
countMap.delete(dataParser);
|
|
65
|
+
}
|
|
46
66
|
})
|
|
47
67
|
.when(utils.DP.tupleKind.has, (dataParser) => {
|
|
48
68
|
const count = (countMap.get(dataParser) ?? 0) + 1;
|
|
@@ -51,6 +71,9 @@ function getRecursiveDataParser(schema) {
|
|
|
51
71
|
return;
|
|
52
72
|
}
|
|
53
73
|
utils.A.map(dataParser.definition.shape, countDataParser);
|
|
74
|
+
if (countMap.get(dataParser) === 1) {
|
|
75
|
+
countMap.delete(dataParser);
|
|
76
|
+
}
|
|
54
77
|
})
|
|
55
78
|
.when(utils.DP.dataParserKind.has, () => void 0)
|
|
56
79
|
.exhaustive();
|
|
@@ -1,31 +1,45 @@
|
|
|
1
|
-
import { P, DP, A, pipe, O, G } from '@duplojs/utils';
|
|
1
|
+
import { P, hasSomeKinds, DP, A, pipe, O, G } from '@duplojs/utils';
|
|
2
2
|
|
|
3
3
|
function getRecursiveDataParser(schema) {
|
|
4
4
|
const countMap = new Map();
|
|
5
5
|
void (function countDataParser(schema) {
|
|
6
6
|
P.match(schema)
|
|
7
|
-
.when((
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
7
|
+
.when(hasSomeKinds([
|
|
8
|
+
DP.stringKind,
|
|
9
|
+
DP.stringKind,
|
|
10
|
+
DP.numberKind,
|
|
11
|
+
DP.nilKind,
|
|
12
|
+
DP.dateKind,
|
|
13
|
+
DP.emptyKind,
|
|
14
|
+
DP.bigIntKind,
|
|
15
|
+
DP.booleanKind,
|
|
16
|
+
DP.literalKind,
|
|
17
|
+
DP.unknownKind,
|
|
18
|
+
DP.templateLiteralKind,
|
|
19
|
+
DP.recordKind,
|
|
20
|
+
]), () => void 0)
|
|
21
|
+
.when(hasSomeKinds([
|
|
22
|
+
DP.nullableKind,
|
|
23
|
+
DP.optionalKind,
|
|
24
|
+
DP.recoverKind,
|
|
25
|
+
DP.transformKind,
|
|
26
|
+
]), (dataParser) => void countDataParser(dataParser.definition.inner))
|
|
23
27
|
.when(DP.lazyKind.has, (dataParser) => void countDataParser(dataParser.definition.getter.value))
|
|
24
28
|
.when(DP.pipeKind.has, (dataParser) => {
|
|
25
29
|
countDataParser(dataParser.definition.input);
|
|
26
30
|
countDataParser(dataParser.definition.output);
|
|
27
31
|
})
|
|
28
|
-
.when(DP.unionKind.has, (dataParser) =>
|
|
32
|
+
.when(DP.unionKind.has, (dataParser) => {
|
|
33
|
+
const count = (countMap.get(dataParser) ?? 0) + 1;
|
|
34
|
+
countMap.set(dataParser, count);
|
|
35
|
+
if (count > 1) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
A.map(dataParser.definition.options, countDataParser);
|
|
39
|
+
if (countMap.get(dataParser) === 1) {
|
|
40
|
+
countMap.delete(dataParser);
|
|
41
|
+
}
|
|
42
|
+
})
|
|
29
43
|
.when(DP.arrayKind.has, (dataParser) => {
|
|
30
44
|
const count = (countMap.get(dataParser) ?? 0) + 1;
|
|
31
45
|
countMap.set(dataParser, count);
|
|
@@ -33,6 +47,9 @@ function getRecursiveDataParser(schema) {
|
|
|
33
47
|
return;
|
|
34
48
|
}
|
|
35
49
|
countDataParser(dataParser.definition.element);
|
|
50
|
+
if (countMap.get(dataParser) === 1) {
|
|
51
|
+
countMap.delete(dataParser);
|
|
52
|
+
}
|
|
36
53
|
})
|
|
37
54
|
.when(DP.objectKind.has, (dataParser) => {
|
|
38
55
|
const count = (countMap.get(dataParser) ?? 0) + 1;
|
|
@@ -41,6 +58,9 @@ function getRecursiveDataParser(schema) {
|
|
|
41
58
|
return;
|
|
42
59
|
}
|
|
43
60
|
pipe(dataParser.definition.shape, O.entries, A.map(([, value]) => void countDataParser(value)));
|
|
61
|
+
if (countMap.get(dataParser) === 1) {
|
|
62
|
+
countMap.delete(dataParser);
|
|
63
|
+
}
|
|
44
64
|
})
|
|
45
65
|
.when(DP.tupleKind.has, (dataParser) => {
|
|
46
66
|
const count = (countMap.get(dataParser) ?? 0) + 1;
|
|
@@ -49,6 +69,9 @@ function getRecursiveDataParser(schema) {
|
|
|
49
69
|
return;
|
|
50
70
|
}
|
|
51
71
|
A.map(dataParser.definition.shape, countDataParser);
|
|
72
|
+
if (countMap.get(dataParser) === 1) {
|
|
73
|
+
countMap.delete(dataParser);
|
|
74
|
+
}
|
|
52
75
|
})
|
|
53
76
|
.when(DP.dataParserKind.has, () => void 0)
|
|
54
77
|
.exhaustive();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duplojs/data-parser-tools",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "duplojs",
|
|
6
6
|
"contributors": [
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"vitest": "3.2.4"
|
|
72
72
|
},
|
|
73
73
|
"peerDependencies": {
|
|
74
|
-
"@duplojs/utils": ">=1.3.
|
|
74
|
+
"@duplojs/utils": ">=1.3.30 <2.0.0"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"typescript": "5.9.2"
|