@duplojs/data-parser-tools 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +2 -0
- package/dist/toDataParser/buildContext.cjs +63 -0
- package/dist/toDataParser/buildContext.d.ts +27 -0
- package/dist/toDataParser/buildContext.mjs +61 -0
- package/dist/toDataParser/checkerTransformer/create.cjs +11 -0
- package/dist/toDataParser/checkerTransformer/create.d.ts +20 -0
- package/dist/toDataParser/checkerTransformer/create.mjs +9 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/index.cjs +9 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/index.d.ts +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/index.mjs +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/max.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/max.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/min.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/array/min.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/index.cjs +9 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/index.d.ts +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/index.mjs +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/max.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/max.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/min.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/bigint/min.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/index.cjs +60 -0
- package/dist/toDataParser/checkerTransformer/defaults/index.d.ts +4 -0
- package/dist/toDataParser/checkerTransformer/defaults/index.mjs +47 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/index.cjs +11 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/index.d.ts +3 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/index.mjs +3 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/int.cjs +12 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/int.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/int.mjs +10 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/max.cjs +19 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/max.mjs +17 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/min.cjs +19 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/number/min.mjs +17 -0
- package/dist/toDataParser/checkerTransformer/defaults/refine.cjs +32 -0
- package/dist/toDataParser/checkerTransformer/defaults/refine.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/refine.mjs +30 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/email.cjs +12 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/email.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/email.mjs +10 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/index.cjs +17 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/index.d.ts +6 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/index.mjs +6 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/max.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/max.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/min.cjs +15 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/min.mjs +13 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/regex.cjs +16 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/regex.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/regex.mjs +14 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/url.cjs +22 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/url.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/url.mjs +20 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/uuid.cjs +12 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/uuid.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/string/uuid.mjs +10 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/index.cjs +9 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/index.d.ts +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/index.mjs +2 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/max.cjs +19 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/max.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/max.mjs +17 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/min.cjs +19 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/min.d.ts +1 -0
- package/dist/toDataParser/checkerTransformer/defaults/time/min.mjs +17 -0
- package/dist/toDataParser/checkerTransformer/index.cjs +12 -0
- package/dist/toDataParser/checkerTransformer/index.d.ts +3 -0
- package/dist/toDataParser/checkerTransformer/index.mjs +3 -0
- package/dist/toDataParser/checkerTransformer/transformer.cjs +47 -0
- package/dist/toDataParser/checkerTransformer/transformer.d.ts +10 -0
- package/dist/toDataParser/checkerTransformer/transformer.mjs +44 -0
- package/dist/toDataParser/dataParserTransformer/create.cjs +11 -0
- package/dist/toDataParser/dataParserTransformer/create.d.ts +34 -0
- package/dist/toDataParser/dataParserTransformer/create.mjs +9 -0
- package/dist/toDataParser/dataParserTransformer/createIdentifier.cjs +9 -0
- package/dist/toDataParser/dataParserTransformer/createIdentifier.d.ts +1 -0
- package/dist/toDataParser/dataParserTransformer/createIdentifier.mjs +7 -0
- package/dist/toDataParser/dataParserTransformer/defaults/array.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/array.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/array.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/bigint.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/bigint.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/bigint.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/boolean.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/boolean.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/boolean.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/date.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/date.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/date.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/empty.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/empty.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/empty.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/file.cjs +44 -0
- package/dist/toDataParser/dataParserTransformer/defaults/file.d.ts +1 -0
- package/dist/toDataParser/dataParserTransformer/defaults/file.mjs +42 -0
- package/dist/toDataParser/dataParserTransformer/defaults/index.cjs +76 -0
- package/dist/toDataParser/dataParserTransformer/defaults/index.d.ts +24 -0
- package/dist/toDataParser/dataParserTransformer/defaults/index.mjs +51 -0
- package/dist/toDataParser/dataParserTransformer/defaults/lazy.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/lazy.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/lazy.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/literal.cjs +28 -0
- package/dist/toDataParser/dataParserTransformer/defaults/literal.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/literal.mjs +26 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nil.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nil.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nil.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nullable.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nullable.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/nullable.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/number.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/number.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/number.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/object.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/object.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/object.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/optional.cjs +22 -0
- package/dist/toDataParser/dataParserTransformer/defaults/optional.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/optional.mjs +20 -0
- package/dist/toDataParser/dataParserTransformer/defaults/pipe.cjs +27 -0
- package/dist/toDataParser/dataParserTransformer/defaults/pipe.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/pipe.mjs +25 -0
- package/dist/toDataParser/dataParserTransformer/defaults/record.cjs +27 -0
- package/dist/toDataParser/dataParserTransformer/defaults/record.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/record.mjs +25 -0
- package/dist/toDataParser/dataParserTransformer/defaults/recover.cjs +8 -0
- package/dist/toDataParser/dataParserTransformer/defaults/recover.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/recover.mjs +6 -0
- package/dist/toDataParser/dataParserTransformer/defaults/string.cjs +15 -0
- package/dist/toDataParser/dataParserTransformer/defaults/string.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/string.mjs +13 -0
- package/dist/toDataParser/dataParserTransformer/defaults/templateLiteral.cjs +41 -0
- package/dist/toDataParser/dataParserTransformer/defaults/templateLiteral.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/templateLiteral.mjs +39 -0
- package/dist/toDataParser/dataParserTransformer/defaults/time.cjs +19 -0
- package/dist/toDataParser/dataParserTransformer/defaults/time.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/time.mjs +17 -0
- package/dist/toDataParser/dataParserTransformer/defaults/transform.cjs +40 -0
- package/dist/toDataParser/dataParserTransformer/defaults/transform.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/transform.mjs +38 -0
- package/dist/toDataParser/dataParserTransformer/defaults/tuple.cjs +36 -0
- package/dist/toDataParser/dataParserTransformer/defaults/tuple.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/tuple.mjs +34 -0
- package/dist/toDataParser/dataParserTransformer/defaults/union.cjs +28 -0
- package/dist/toDataParser/dataParserTransformer/defaults/union.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/union.mjs +26 -0
- package/dist/toDataParser/dataParserTransformer/defaults/unknown.cjs +15 -0
- package/dist/toDataParser/dataParserTransformer/defaults/unknown.d.ts +2 -0
- package/dist/toDataParser/dataParserTransformer/defaults/unknown.mjs +13 -0
- package/dist/toDataParser/dataParserTransformer/getDefinitionDataParser.cjs +36 -0
- package/dist/toDataParser/dataParserTransformer/getDefinitionDataParser.d.ts +14 -0
- package/dist/toDataParser/dataParserTransformer/getDefinitionDataParser.mjs +34 -0
- package/dist/toDataParser/dataParserTransformer/hook.cjs +2 -0
- package/dist/toDataParser/dataParserTransformer/hook.d.ts +15 -0
- package/dist/toDataParser/dataParserTransformer/hook.mjs +1 -0
- package/dist/toDataParser/dataParserTransformer/index.cjs +16 -0
- package/dist/toDataParser/dataParserTransformer/index.d.ts +6 -0
- package/dist/toDataParser/dataParserTransformer/index.mjs +6 -0
- package/dist/toDataParser/dataParserTransformer/transformer.cjs +129 -0
- package/dist/toDataParser/dataParserTransformer/transformer.d.ts +23 -0
- package/dist/toDataParser/dataParserTransformer/transformer.mjs +127 -0
- package/dist/toDataParser/index.cjs +103 -0
- package/dist/toDataParser/index.d.ts +7 -0
- package/dist/toDataParser/index.mjs +49 -0
- package/dist/toDataParser/kind.cjs +9 -0
- package/dist/toDataParser/kind.d.ts +6 -0
- package/dist/toDataParser/kind.mjs +7 -0
- package/dist/toDataParser/override.cjs +29 -0
- package/dist/toDataParser/override.d.ts +20 -0
- package/dist/toDataParser/override.mjs +27 -0
- package/dist/toDataParser/printer.cjs +23 -0
- package/dist/toDataParser/printer.d.ts +2 -0
- package/dist/toDataParser/printer.mjs +21 -0
- package/dist/toDataParser/render.cjs +50 -0
- package/dist/toDataParser/render.d.ts +19 -0
- package/dist/toDataParser/render.mjs +46 -0
- package/dist/toTypescript/buildContext.cjs +37 -0
- package/dist/toTypescript/buildContext.d.ts +15 -0
- package/dist/toTypescript/buildContext.mjs +35 -0
- package/dist/toTypescript/index.cjs +10 -0
- package/dist/toTypescript/index.d.ts +2 -0
- package/dist/toTypescript/index.mjs +5 -0
- package/dist/toTypescript/printer.cjs +17 -0
- package/dist/toTypescript/printer.d.ts +2 -0
- package/dist/toTypescript/printer.mjs +15 -0
- package/dist/toTypescript/render.cjs +8 -26
- package/dist/toTypescript/render.d.ts +5 -12
- package/dist/toTypescript/render.mjs +9 -27
- package/dist/toTypescript/transformer/addImport.cjs +21 -0
- package/dist/toTypescript/transformer/addImport.d.ts +2 -0
- package/dist/toTypescript/transformer/addImport.mjs +19 -0
- package/dist/toTypescript/transformer/create.d.ts +7 -3
- package/dist/toTypescript/transformer/createIdentifier.cjs +9 -0
- package/dist/toTypescript/transformer/createIdentifier.d.ts +1 -0
- package/dist/toTypescript/transformer/createIdentifier.mjs +7 -0
- package/dist/toTypescript/transformer/createImportDeclaration.cjs +17 -0
- package/dist/toTypescript/transformer/createImportDeclaration.d.ts +3 -0
- package/dist/toTypescript/transformer/createImportDeclaration.mjs +15 -0
- package/dist/toTypescript/transformer/hook.d.ts +2 -2
- package/dist/toTypescript/transformer/index.cjs +6 -0
- package/dist/toTypescript/transformer/index.d.ts +3 -0
- package/dist/toTypescript/transformer/index.mjs +3 -0
- package/dist/toTypescript/transformer/transformer.cjs +8 -9
- package/dist/toTypescript/transformer/transformer.d.ts +2 -2
- package/dist/toTypescript/transformer/transformer.mjs +8 -9
- package/package.json +7 -2
- package/dist/toTypescript/transformer/importTypesTransformer.cjs +0 -10
- package/dist/toTypescript/transformer/importTypesTransformer.d.ts +0 -2
- package/dist/toTypescript/transformer/importTypesTransformer.mjs +0 -8
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerNumberMinTransformer = create.createCheckerTransformer(utils.DP.checkerNumberMinKind.has, (checker, { success, getDefinition, }) => {
|
|
8
|
+
const checkerDefinition = [];
|
|
9
|
+
if (checker.definition.exclusive) {
|
|
10
|
+
checkerDefinition.push(typescript.factory.createPropertyAssignment(typescript.factory.createIdentifier("exclusive"), typescript.factory.createTrue()));
|
|
11
|
+
}
|
|
12
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerNumberMin")), undefined, [
|
|
13
|
+
typescript.factory.createNumericLiteral(checker.definition.min),
|
|
14
|
+
...getDefinition(checkerDefinition),
|
|
15
|
+
]);
|
|
16
|
+
return success(expression);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
exports.checkerNumberMinTransformer = checkerNumberMinTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerNumberMinTransformer: (checker: import("../..").DataParserCheckers, params: import("../..").CheckerTransformerParams) => import("../..").CheckerTransformerEither;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../../create.mjs';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerNumberMinTransformer = createCheckerTransformer(DP.checkerNumberMinKind.has, (checker, { success, getDefinition, }) => {
|
|
6
|
+
const checkerDefinition = [];
|
|
7
|
+
if (checker.definition.exclusive) {
|
|
8
|
+
checkerDefinition.push(factory.createPropertyAssignment(factory.createIdentifier("exclusive"), factory.createTrue()));
|
|
9
|
+
}
|
|
10
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerNumberMin")), undefined, [
|
|
11
|
+
factory.createNumericLiteral(checker.definition.min),
|
|
12
|
+
...getDefinition(checkerDefinition),
|
|
13
|
+
]);
|
|
14
|
+
return success(expression);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export { checkerNumberMinTransformer };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerRefineTransformer = create.createCheckerTransformer(utils.DP.dataParserCheckerRefineKind.has, (checker, { success, buildError, getDefinition, }) => {
|
|
8
|
+
const functionSource = checker.definition.theFunction.toString();
|
|
9
|
+
if (functionSource.includes("[native code]")) {
|
|
10
|
+
return buildError();
|
|
11
|
+
}
|
|
12
|
+
const sourceFile = typescript.createSourceFile("refine-function.ts", `(${functionSource})`, typescript.ScriptTarget.Latest, false);
|
|
13
|
+
const statement = sourceFile.statements[0];
|
|
14
|
+
if (!statement || !typescript.isExpressionStatement(statement)) {
|
|
15
|
+
return buildError();
|
|
16
|
+
}
|
|
17
|
+
const functionExpression = typescript.isParenthesizedExpression(statement.expression)
|
|
18
|
+
? statement.expression.expression
|
|
19
|
+
: undefined;
|
|
20
|
+
if (!functionExpression
|
|
21
|
+
|| (!typescript.isFunctionExpression(functionExpression)
|
|
22
|
+
&& !typescript.isArrowFunction(functionExpression))) {
|
|
23
|
+
return buildError();
|
|
24
|
+
}
|
|
25
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerRefine")), undefined, [
|
|
26
|
+
functionExpression,
|
|
27
|
+
...getDefinition(),
|
|
28
|
+
]);
|
|
29
|
+
return success(expression);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
exports.checkerRefineTransformer = checkerRefineTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerRefineTransformer: (checker: import("..").DataParserCheckers, params: import("..").CheckerTransformerParams) => import("..").CheckerTransformerEither;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../create.mjs';
|
|
3
|
+
import { createSourceFile, ScriptTarget, isExpressionStatement, isParenthesizedExpression, isFunctionExpression, isArrowFunction, factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerRefineTransformer = createCheckerTransformer(DP.dataParserCheckerRefineKind.has, (checker, { success, buildError, getDefinition, }) => {
|
|
6
|
+
const functionSource = checker.definition.theFunction.toString();
|
|
7
|
+
if (functionSource.includes("[native code]")) {
|
|
8
|
+
return buildError();
|
|
9
|
+
}
|
|
10
|
+
const sourceFile = createSourceFile("refine-function.ts", `(${functionSource})`, ScriptTarget.Latest, false);
|
|
11
|
+
const statement = sourceFile.statements[0];
|
|
12
|
+
if (!statement || !isExpressionStatement(statement)) {
|
|
13
|
+
return buildError();
|
|
14
|
+
}
|
|
15
|
+
const functionExpression = isParenthesizedExpression(statement.expression)
|
|
16
|
+
? statement.expression.expression
|
|
17
|
+
: undefined;
|
|
18
|
+
if (!functionExpression
|
|
19
|
+
|| (!isFunctionExpression(functionExpression)
|
|
20
|
+
&& !isArrowFunction(functionExpression))) {
|
|
21
|
+
return buildError();
|
|
22
|
+
}
|
|
23
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerRefine")), undefined, [
|
|
24
|
+
functionExpression,
|
|
25
|
+
...getDefinition(),
|
|
26
|
+
]);
|
|
27
|
+
return success(expression);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export { checkerRefineTransformer };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerEmailTransformer = create.createCheckerTransformer(utils.DP.checkerEmailKind.has, (checker, { success, getDefinition, }) => {
|
|
8
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerEmail")), undefined, getDefinition());
|
|
9
|
+
return success(expression);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
exports.checkerEmailTransformer = checkerEmailTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerEmailTransformer: (checker: import("../..").DataParserCheckers, params: import("../..").CheckerTransformerParams) => import("../..").CheckerTransformerEither;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../../create.mjs';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerEmailTransformer = createCheckerTransformer(DP.checkerEmailKind.has, (checker, { success, getDefinition, }) => {
|
|
6
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerEmail")), undefined, getDefinition());
|
|
7
|
+
return success(expression);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export { checkerEmailTransformer };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var email = require('./email.cjs');
|
|
4
|
+
var max = require('./max.cjs');
|
|
5
|
+
var min = require('./min.cjs');
|
|
6
|
+
var regex = require('./regex.cjs');
|
|
7
|
+
var url = require('./url.cjs');
|
|
8
|
+
var uuid = require('./uuid.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
exports.checkerEmailTransformer = email.checkerEmailTransformer;
|
|
13
|
+
exports.checkerStringMaxTransformer = max.checkerStringMaxTransformer;
|
|
14
|
+
exports.checkerStringMinTransformer = min.checkerStringMinTransformer;
|
|
15
|
+
exports.checkerRegexTransformer = regex.checkerRegexTransformer;
|
|
16
|
+
exports.checkerUrlTransformer = url.checkerUrlTransformer;
|
|
17
|
+
exports.checkerUuidTransformer = uuid.checkerUuidTransformer;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { checkerEmailTransformer } from './email.mjs';
|
|
2
|
+
export { checkerStringMaxTransformer } from './max.mjs';
|
|
3
|
+
export { checkerStringMinTransformer } from './min.mjs';
|
|
4
|
+
export { checkerRegexTransformer } from './regex.mjs';
|
|
5
|
+
export { checkerUrlTransformer } from './url.mjs';
|
|
6
|
+
export { checkerUuidTransformer } from './uuid.mjs';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerStringMaxTransformer = create.createCheckerTransformer(utils.DP.checkerStringMaxKind.has, (checker, { success, getDefinition, }) => {
|
|
8
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerStringMax")), undefined, [
|
|
9
|
+
typescript.factory.createNumericLiteral(checker.definition.max),
|
|
10
|
+
...getDefinition(),
|
|
11
|
+
]);
|
|
12
|
+
return success(expression);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
exports.checkerStringMaxTransformer = checkerStringMaxTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerStringMaxTransformer: (checker: import("../..").DataParserCheckers, params: import("../..").CheckerTransformerParams) => import("../..").CheckerTransformerEither;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../../create.mjs';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerStringMaxTransformer = createCheckerTransformer(DP.checkerStringMaxKind.has, (checker, { success, getDefinition, }) => {
|
|
6
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerStringMax")), undefined, [
|
|
7
|
+
factory.createNumericLiteral(checker.definition.max),
|
|
8
|
+
...getDefinition(),
|
|
9
|
+
]);
|
|
10
|
+
return success(expression);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export { checkerStringMaxTransformer };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerStringMinTransformer = create.createCheckerTransformer(utils.DP.checkerStringMinKind.has, (checker, { success, getDefinition, }) => {
|
|
8
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerStringMin")), undefined, [
|
|
9
|
+
typescript.factory.createNumericLiteral(checker.definition.min),
|
|
10
|
+
...getDefinition(),
|
|
11
|
+
]);
|
|
12
|
+
return success(expression);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
exports.checkerStringMinTransformer = checkerStringMinTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerStringMinTransformer: (checker: import("../..").DataParserCheckers, params: import("../..").CheckerTransformerParams) => import("../..").CheckerTransformerEither;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../../create.mjs';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerStringMinTransformer = createCheckerTransformer(DP.checkerStringMinKind.has, (checker, { success, getDefinition, }) => {
|
|
6
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerStringMin")), undefined, [
|
|
7
|
+
factory.createNumericLiteral(checker.definition.min),
|
|
8
|
+
...getDefinition(),
|
|
9
|
+
]);
|
|
10
|
+
return success(expression);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export { checkerStringMinTransformer };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerRegexTransformer = create.createCheckerTransformer(utils.DP.checkerRegexKind.has, (checker, { success, getDefinition, }) => {
|
|
8
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerRegex")), undefined, [
|
|
9
|
+
typescript.factory.createRegularExpressionLiteral(`/${checker.definition.regex.source}/${checker.definition.regex.flags}`),
|
|
10
|
+
...getDefinition(),
|
|
11
|
+
]);
|
|
12
|
+
return success(expression);
|
|
13
|
+
});
|
|
14
|
+
utils.DP.checkerRegex(/^/);
|
|
15
|
+
|
|
16
|
+
exports.checkerRegexTransformer = checkerRegexTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerRegexTransformer: (checker: import("../..").DataParserCheckers, params: import("../..").CheckerTransformerParams) => import("../..").CheckerTransformerEither;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../../create.mjs';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerRegexTransformer = createCheckerTransformer(DP.checkerRegexKind.has, (checker, { success, getDefinition, }) => {
|
|
6
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerRegex")), undefined, [
|
|
7
|
+
factory.createRegularExpressionLiteral(`/${checker.definition.regex.source}/${checker.definition.regex.flags}`),
|
|
8
|
+
...getDefinition(),
|
|
9
|
+
]);
|
|
10
|
+
return success(expression);
|
|
11
|
+
});
|
|
12
|
+
DP.checkerRegex(/^/);
|
|
13
|
+
|
|
14
|
+
export { checkerRegexTransformer };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerUrlTransformer = create.createCheckerTransformer(utils.DP.checkerUrlKind.has, (checker, { success, getDefinition, }) => {
|
|
8
|
+
const checkerDefinition = [];
|
|
9
|
+
if (checker.definition.hostname) {
|
|
10
|
+
checkerDefinition.push(typescript.factory.createPropertyAssignment(typescript.factory.createIdentifier("hostname"), typescript.factory.createRegularExpressionLiteral(`/${checker.definition.hostname.source}/${checker.definition.hostname.flags}`)));
|
|
11
|
+
}
|
|
12
|
+
if (checker.definition.normalize) {
|
|
13
|
+
checkerDefinition.push(typescript.factory.createPropertyAssignment(typescript.factory.createIdentifier("normalize"), typescript.factory.createTrue()));
|
|
14
|
+
}
|
|
15
|
+
if (checker.definition.protocol) {
|
|
16
|
+
checkerDefinition.push(typescript.factory.createPropertyAssignment(typescript.factory.createIdentifier("protocol"), typescript.factory.createRegularExpressionLiteral(`/${checker.definition.protocol.source}/${checker.definition.protocol.flags}`)));
|
|
17
|
+
}
|
|
18
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerUrl")), undefined, getDefinition(checkerDefinition));
|
|
19
|
+
return success(expression);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
exports.checkerUrlTransformer = checkerUrlTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerUrlTransformer: (checker: import("../..").DataParserCheckers, params: import("../..").CheckerTransformerParams) => import("../..").CheckerTransformerEither;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../../create.mjs';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerUrlTransformer = createCheckerTransformer(DP.checkerUrlKind.has, (checker, { success, getDefinition, }) => {
|
|
6
|
+
const checkerDefinition = [];
|
|
7
|
+
if (checker.definition.hostname) {
|
|
8
|
+
checkerDefinition.push(factory.createPropertyAssignment(factory.createIdentifier("hostname"), factory.createRegularExpressionLiteral(`/${checker.definition.hostname.source}/${checker.definition.hostname.flags}`)));
|
|
9
|
+
}
|
|
10
|
+
if (checker.definition.normalize) {
|
|
11
|
+
checkerDefinition.push(factory.createPropertyAssignment(factory.createIdentifier("normalize"), factory.createTrue()));
|
|
12
|
+
}
|
|
13
|
+
if (checker.definition.protocol) {
|
|
14
|
+
checkerDefinition.push(factory.createPropertyAssignment(factory.createIdentifier("protocol"), factory.createRegularExpressionLiteral(`/${checker.definition.protocol.source}/${checker.definition.protocol.flags}`)));
|
|
15
|
+
}
|
|
16
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerUrl")), undefined, getDefinition(checkerDefinition));
|
|
17
|
+
return success(expression);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
export { checkerUrlTransformer };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerUuidTransformer = create.createCheckerTransformer(utils.DP.checkerUuidKind.has, (checker, { success, getDefinition, }) => {
|
|
8
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerUuid")), undefined, getDefinition());
|
|
9
|
+
return success(expression);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
exports.checkerUuidTransformer = checkerUuidTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerUuidTransformer: (checker: import("../..").DataParserCheckers, params: import("../..").CheckerTransformerParams) => import("../..").CheckerTransformerEither;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../../create.mjs';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerUuidTransformer = createCheckerTransformer(DP.checkerUuidKind.has, (checker, { success, getDefinition, }) => {
|
|
6
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerUuid")), undefined, getDefinition());
|
|
7
|
+
return success(expression);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export { checkerUuidTransformer };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerTimeMaxTransformer = create.createCheckerTransformer(utils.DP.checkerTimeMaxKind.has, (checker, { success, getDefinition, addImport, }) => {
|
|
8
|
+
addImport("@duplojs/utils/date", "D", "namespace");
|
|
9
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerTimeMax")), undefined, [
|
|
10
|
+
typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("D"), typescript.factory.createIdentifier("createTime")), undefined, [
|
|
11
|
+
typescript.factory.createNumericLiteral(checker.definition.max.toNative()),
|
|
12
|
+
typescript.factory.createStringLiteral("millisecond"),
|
|
13
|
+
]),
|
|
14
|
+
...getDefinition(),
|
|
15
|
+
]);
|
|
16
|
+
return success(expression);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
exports.checkerTimeMaxTransformer = checkerTimeMaxTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerTimeMaxTransformer: (checker: import("../..").DataParserCheckers, params: import("../..").CheckerTransformerParams) => import("../..").CheckerTransformerEither;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../../create.mjs';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerTimeMaxTransformer = createCheckerTransformer(DP.checkerTimeMaxKind.has, (checker, { success, getDefinition, addImport, }) => {
|
|
6
|
+
addImport("@duplojs/utils/date", "D", "namespace");
|
|
7
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerTimeMax")), undefined, [
|
|
8
|
+
factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("D"), factory.createIdentifier("createTime")), undefined, [
|
|
9
|
+
factory.createNumericLiteral(checker.definition.max.toNative()),
|
|
10
|
+
factory.createStringLiteral("millisecond"),
|
|
11
|
+
]),
|
|
12
|
+
...getDefinition(),
|
|
13
|
+
]);
|
|
14
|
+
return success(expression);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export { checkerTimeMaxTransformer };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var create = require('../../create.cjs');
|
|
5
|
+
var typescript = require('typescript');
|
|
6
|
+
|
|
7
|
+
const checkerTimeMinTransformer = create.createCheckerTransformer(utils.DP.checkerTimeMinKind.has, (checker, { success, getDefinition, addImport, }) => {
|
|
8
|
+
addImport("@duplojs/utils/date", "D", "namespace");
|
|
9
|
+
const expression = typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("DP"), typescript.factory.createIdentifier("checkerTimeMin")), undefined, [
|
|
10
|
+
typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(typescript.factory.createIdentifier("D"), typescript.factory.createIdentifier("createTime")), undefined, [
|
|
11
|
+
typescript.factory.createNumericLiteral(checker.definition.min.toNative()),
|
|
12
|
+
typescript.factory.createStringLiteral("millisecond"),
|
|
13
|
+
]),
|
|
14
|
+
...getDefinition(),
|
|
15
|
+
]);
|
|
16
|
+
return success(expression);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
exports.checkerTimeMinTransformer = checkerTimeMinTransformer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkerTimeMinTransformer: (checker: import("../..").DataParserCheckers, params: import("../..").CheckerTransformerParams) => import("../..").CheckerTransformerEither;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DP } from '@duplojs/utils';
|
|
2
|
+
import { createCheckerTransformer } from '../../create.mjs';
|
|
3
|
+
import { factory } from 'typescript';
|
|
4
|
+
|
|
5
|
+
const checkerTimeMinTransformer = createCheckerTransformer(DP.checkerTimeMinKind.has, (checker, { success, getDefinition, addImport, }) => {
|
|
6
|
+
addImport("@duplojs/utils/date", "D", "namespace");
|
|
7
|
+
const expression = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("DP"), factory.createIdentifier("checkerTimeMin")), undefined, [
|
|
8
|
+
factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("D"), factory.createIdentifier("createTime")), undefined, [
|
|
9
|
+
factory.createNumericLiteral(checker.definition.min.toNative()),
|
|
10
|
+
factory.createStringLiteral("millisecond"),
|
|
11
|
+
]),
|
|
12
|
+
...getDefinition(),
|
|
13
|
+
]);
|
|
14
|
+
return success(expression);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export { checkerTimeMinTransformer };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var create = require('./create.cjs');
|
|
4
|
+
var transformer = require('./transformer.cjs');
|
|
5
|
+
var index = require('./defaults/index.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.createCheckerTransformer = create.createCheckerTransformer;
|
|
10
|
+
exports.checkerTransformer = transformer.checkerTransformer;
|
|
11
|
+
exports.getCheckerDefinition = transformer.getCheckerDefinition;
|
|
12
|
+
exports.defaultCheckerTransformers = index.defaultCheckerTransformers;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
var typescript = require('typescript');
|
|
5
|
+
require('../../toTypescript/index.cjs');
|
|
6
|
+
var addImport = require('../../toTypescript/transformer/addImport.cjs');
|
|
7
|
+
|
|
8
|
+
function getCheckerDefinition(checker, customProperties) {
|
|
9
|
+
const propertyAssignments = [];
|
|
10
|
+
if (checker.definition.errorMessage) {
|
|
11
|
+
propertyAssignments.push(typescript.factory.createPropertyAssignment(typescript.factory.createIdentifier("errorMessage"), typescript.factory.createStringLiteral(checker.definition.errorMessage)));
|
|
12
|
+
}
|
|
13
|
+
if (customProperties) {
|
|
14
|
+
propertyAssignments.push(...customProperties);
|
|
15
|
+
}
|
|
16
|
+
return utils.A.minElements(propertyAssignments, 1)
|
|
17
|
+
? [typescript.factory.createObjectLiteralExpression(propertyAssignments)]
|
|
18
|
+
: [];
|
|
19
|
+
}
|
|
20
|
+
function checkerTransformer(checker, params) {
|
|
21
|
+
const functionParams = {
|
|
22
|
+
importContext: params.importContext,
|
|
23
|
+
success(result) {
|
|
24
|
+
return utils.E.right("buildSuccess", result);
|
|
25
|
+
},
|
|
26
|
+
buildError() {
|
|
27
|
+
return utils.E.left("buildCheckerError", checker);
|
|
28
|
+
},
|
|
29
|
+
addImport: addImport.createAddImport(params.importContext),
|
|
30
|
+
getDefinition(customProperties) {
|
|
31
|
+
return getCheckerDefinition(checker, customProperties);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
return utils.A.reduce(params.transformers, utils.A.reduceFrom(utils.E.left("checkerNotSupport", checker)), ({ element: functionBuilder, lastValue, next, exit, }) => {
|
|
35
|
+
const result = functionBuilder(checker, functionParams);
|
|
36
|
+
if (utils.E.isLeft(result)) {
|
|
37
|
+
if (!utils.E.hasInformation(result, "checkerNotSupport")) {
|
|
38
|
+
return exit(result);
|
|
39
|
+
}
|
|
40
|
+
return next(lastValue);
|
|
41
|
+
}
|
|
42
|
+
return exit(result);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
exports.checkerTransformer = checkerTransformer;
|
|
47
|
+
exports.getCheckerDefinition = getCheckerDefinition;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type DP } from "@duplojs/utils";
|
|
2
|
+
import type { createCheckerTransformer, CheckerTransformerEither } from "./create";
|
|
3
|
+
import { type PropertyAssignment } from "typescript";
|
|
4
|
+
import * as TST from "../../toTypescript";
|
|
5
|
+
export interface CheckerTransformerFunctionParams {
|
|
6
|
+
readonly transformers: readonly ReturnType<typeof createCheckerTransformer>[];
|
|
7
|
+
readonly importContext: TST.MapImportContext;
|
|
8
|
+
}
|
|
9
|
+
export declare function getCheckerDefinition(checker: DP.DataParserChecker, customProperties?: readonly PropertyAssignment[]): readonly [] | readonly [import("typescript").ObjectLiteralExpression];
|
|
10
|
+
export declare function checkerTransformer(checker: DP.DataParserChecker, params: CheckerTransformerFunctionParams): CheckerTransformerEither;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { A, E } from '@duplojs/utils';
|
|
2
|
+
import { factory } from 'typescript';
|
|
3
|
+
import '../../toTypescript/index.mjs';
|
|
4
|
+
import { createAddImport } from '../../toTypescript/transformer/addImport.mjs';
|
|
5
|
+
|
|
6
|
+
function getCheckerDefinition(checker, customProperties) {
|
|
7
|
+
const propertyAssignments = [];
|
|
8
|
+
if (checker.definition.errorMessage) {
|
|
9
|
+
propertyAssignments.push(factory.createPropertyAssignment(factory.createIdentifier("errorMessage"), factory.createStringLiteral(checker.definition.errorMessage)));
|
|
10
|
+
}
|
|
11
|
+
if (customProperties) {
|
|
12
|
+
propertyAssignments.push(...customProperties);
|
|
13
|
+
}
|
|
14
|
+
return A.minElements(propertyAssignments, 1)
|
|
15
|
+
? [factory.createObjectLiteralExpression(propertyAssignments)]
|
|
16
|
+
: [];
|
|
17
|
+
}
|
|
18
|
+
function checkerTransformer(checker, params) {
|
|
19
|
+
const functionParams = {
|
|
20
|
+
importContext: params.importContext,
|
|
21
|
+
success(result) {
|
|
22
|
+
return E.right("buildSuccess", result);
|
|
23
|
+
},
|
|
24
|
+
buildError() {
|
|
25
|
+
return E.left("buildCheckerError", checker);
|
|
26
|
+
},
|
|
27
|
+
addImport: createAddImport(params.importContext),
|
|
28
|
+
getDefinition(customProperties) {
|
|
29
|
+
return getCheckerDefinition(checker, customProperties);
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
return A.reduce(params.transformers, A.reduceFrom(E.left("checkerNotSupport", checker)), ({ element: functionBuilder, lastValue, next, exit, }) => {
|
|
33
|
+
const result = functionBuilder(checker, functionParams);
|
|
34
|
+
if (E.isLeft(result)) {
|
|
35
|
+
if (!E.hasInformation(result, "checkerNotSupport")) {
|
|
36
|
+
return exit(result);
|
|
37
|
+
}
|
|
38
|
+
return next(lastValue);
|
|
39
|
+
}
|
|
40
|
+
return exit(result);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { checkerTransformer, getCheckerDefinition };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@duplojs/utils');
|
|
4
|
+
|
|
5
|
+
function createTransformer(support, builder) {
|
|
6
|
+
return (dataParser, params) => support(dataParser)
|
|
7
|
+
? builder(dataParser, params)
|
|
8
|
+
: utils.E.left("dataParserNotSupport", dataParser);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
exports.createTransformer = createTransformer;
|