@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.
@@ -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 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];
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) => schema.construct({
10
- ...schema.definition,
11
- identifier,
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) => schema.construct({
8
- ...schema.definition,
9
- identifier,
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 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];
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,2 @@
1
+ import { DP } from "@duplojs/utils";
2
+ export declare const timeTransformer: (schema: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
@@ -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((value) => (utils.DP.stringKind.has(value)
10
- || utils.DP.stringKind.has(value)
11
- || utils.DP.numberKind.has(value)
12
- || utils.DP.nilKind.has(value)
13
- || utils.DP.dateKind.has(value)
14
- || utils.DP.emptyKind.has(value)
15
- || utils.DP.bigIntKind.has(value)
16
- || utils.DP.booleanKind.has(value)
17
- || utils.DP.literalKind.has(value)
18
- || utils.DP.unknownKind.has(value)
19
- || utils.DP.templateLiteralKind.has(value)
20
- || utils.DP.recordKind.has(value)), () => void 0)
21
- .when((value) => (utils.DP.nullableKind.has(value)
22
- || utils.DP.optionalKind.has(value)
23
- || utils.DP.recoverKind.has(value)
24
- || utils.DP.transformKind.has(value)), (dataParser) => void countDataParser(dataParser.definition.inner))
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) => utils.A.map(dataParser.definition.options, countDataParser))
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((value) => (DP.stringKind.has(value)
8
- || DP.stringKind.has(value)
9
- || DP.numberKind.has(value)
10
- || DP.nilKind.has(value)
11
- || DP.dateKind.has(value)
12
- || DP.emptyKind.has(value)
13
- || DP.bigIntKind.has(value)
14
- || DP.booleanKind.has(value)
15
- || DP.literalKind.has(value)
16
- || DP.unknownKind.has(value)
17
- || DP.templateLiteralKind.has(value)
18
- || DP.recordKind.has(value)), () => void 0)
19
- .when((value) => (DP.nullableKind.has(value)
20
- || DP.optionalKind.has(value)
21
- || DP.recoverKind.has(value)
22
- || DP.transformKind.has(value)), (dataParser) => void countDataParser(dataParser.definition.inner))
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) => A.map(dataParser.definition.options, countDataParser))
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.0",
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.25 <2.0.0"
74
+ "@duplojs/utils": ">=1.3.30 <2.0.0"
75
75
  },
76
76
  "dependencies": {
77
77
  "typescript": "5.9.2"