@duplojs/data-parser-tools 0.2.5 → 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/dist/toJsonSchema/override.cjs +14 -0
- package/dist/toJsonSchema/override.d.ts +8 -1
- package/dist/toJsonSchema/override.mjs +14 -0
- package/dist/toJsonSchema/transformer/create.d.ts +3 -3
- package/dist/toJsonSchema/transformer/transformer.cjs +3 -0
- package/dist/toJsonSchema/transformer/transformer.mjs +4 -1
- 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/transformer/transformer.cjs +3 -0
- package/dist/toTypescript/transformer/transformer.mjs +4 -1
- package/package.json +1 -1
|
@@ -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("setOverrideJsonSchema", (schema, overrideJsonSchema) => {
|
|
15
|
+
schema.definition.overrideJsonSchema = "schema" in overrideJsonSchema
|
|
16
|
+
? {
|
|
17
|
+
in: overrideJsonSchema,
|
|
18
|
+
out: overrideJsonSchema,
|
|
19
|
+
}
|
|
20
|
+
: overrideJsonSchema;
|
|
21
|
+
return schema;
|
|
22
|
+
});
|
|
23
|
+
dataParser.dataParserInit.overrideHandler.setMethod("addOverrideJsonSchema", (schema, overrideJsonSchema) => {
|
|
24
|
+
const newSchema = schema.clone();
|
|
25
|
+
newSchema.setOverrideJsonSchema(overrideJsonSchema);
|
|
26
|
+
return newSchema;
|
|
27
|
+
});
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type TransformerMode, type TransformerSuccess } from "./transformer/create";
|
|
2
|
+
export type OverrideJsonSchemaDataParser = Partial<Record<TransformerMode, TransformerSuccess>>;
|
|
1
3
|
declare module "@duplojs/utils/dataParser" {
|
|
2
4
|
interface DataParser {
|
|
3
5
|
/**
|
|
@@ -5,9 +7,14 @@ declare module "@duplojs/utils/dataParser" {
|
|
|
5
7
|
*/
|
|
6
8
|
setIdentifier(input: string): this;
|
|
7
9
|
addIdentifier(input: string): this;
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated this method mutated the dataParser by adding an override json schema
|
|
12
|
+
*/
|
|
13
|
+
setOverrideJsonSchema(schema: TransformerSuccess | OverrideJsonSchemaDataParser): this;
|
|
14
|
+
addOverrideJsonSchema(schema: TransformerSuccess | OverrideJsonSchemaDataParser): this;
|
|
8
15
|
}
|
|
9
16
|
interface DataParserDefinition {
|
|
10
17
|
identifier?: string;
|
|
18
|
+
overrideJsonSchema?: OverrideJsonSchemaDataParser;
|
|
11
19
|
}
|
|
12
20
|
}
|
|
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("setOverrideJsonSchema", (schema, overrideJsonSchema) => {
|
|
13
|
+
schema.definition.overrideJsonSchema = "schema" in overrideJsonSchema
|
|
14
|
+
? {
|
|
15
|
+
in: overrideJsonSchema,
|
|
16
|
+
out: overrideJsonSchema,
|
|
17
|
+
}
|
|
18
|
+
: overrideJsonSchema;
|
|
19
|
+
return schema;
|
|
20
|
+
});
|
|
21
|
+
dataParserInit.overrideHandler.setMethod("addOverrideJsonSchema", (schema, overrideJsonSchema) => {
|
|
22
|
+
const newSchema = schema.clone();
|
|
23
|
+
newSchema.setOverrideJsonSchema(overrideJsonSchema);
|
|
24
|
+
return newSchema;
|
|
25
|
+
});
|
|
@@ -12,9 +12,9 @@ export interface TransformerSuccess {
|
|
|
12
12
|
readonly schema: JsonSchema;
|
|
13
13
|
readonly isOptional: boolean;
|
|
14
14
|
}
|
|
15
|
-
export type TransformerSuccessEither = E.
|
|
16
|
-
export type DataParserNotSupportedEither = E.
|
|
17
|
-
export type DataParserErrorEither = E.
|
|
15
|
+
export type TransformerSuccessEither = E.Right<"buildSuccess", TransformerSuccess>;
|
|
16
|
+
export type DataParserNotSupportedEither = E.Left<"dataParserNotSupport", DP.DataParser>;
|
|
17
|
+
export type DataParserErrorEither = E.Left<"buildDataParserError", DP.DataParser>;
|
|
18
18
|
export interface MapContextValue {
|
|
19
19
|
readonly name: string;
|
|
20
20
|
readonly schema?: JsonSchema;
|
|
@@ -13,6 +13,9 @@ function buildRef(name, version) {
|
|
|
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,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E, A, whenElse, justReturn, unwrap } from '@duplojs/utils';
|
|
2
2
|
|
|
3
3
|
function buildRef(name, version) {
|
|
4
4
|
if (version === "openApi3"
|
|
@@ -11,6 +11,9 @@ function buildRef(name, version) {
|
|
|
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
|
+
});
|
|
@@ -4,6 +4,9 @@ var utils = require('@duplojs/utils');
|
|
|
4
4
|
var typescript = require('typescript');
|
|
5
5
|
|
|
6
6
|
function transformer(schema, params) {
|
|
7
|
+
if (schema.definition.overrideTypeNode?.[params.mode]) {
|
|
8
|
+
return utils.E.right("buildSuccess", schema.definition.overrideTypeNode[params.mode]);
|
|
9
|
+
}
|
|
7
10
|
const currentSchema = utils.A.reduce(params.hooks, utils.A.reduceFrom(schema), ({ element: hook, lastValue, next, exit }) => {
|
|
8
11
|
const result = hook({
|
|
9
12
|
schema: lastValue,
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E, A, whenElse, justReturn, unwrap } from '@duplojs/utils';
|
|
2
2
|
import { factory, SyntaxKind } from 'typescript';
|
|
3
3
|
|
|
4
4
|
function transformer(schema, params) {
|
|
5
|
+
if (schema.definition.overrideTypeNode?.[params.mode]) {
|
|
6
|
+
return E.right("buildSuccess", schema.definition.overrideTypeNode[params.mode]);
|
|
7
|
+
}
|
|
5
8
|
const currentSchema = A.reduce(params.hooks, A.reduceFrom(schema), ({ element: hook, lastValue, next, exit }) => {
|
|
6
9
|
const result = hook({
|
|
7
10
|
schema: lastValue,
|