@duplojs/data-parser-tools 0.2.9 → 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.
Files changed (227) hide show
  1. package/dist/index.cjs +2 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.mjs +2 -0
  4. package/dist/toDataParser/buildContext.cjs +63 -0
  5. package/dist/toDataParser/buildContext.d.ts +27 -0
  6. package/dist/toDataParser/buildContext.mjs +61 -0
  7. package/dist/toDataParser/checkerTransformer/create.cjs +11 -0
  8. package/dist/toDataParser/checkerTransformer/create.d.ts +20 -0
  9. package/dist/toDataParser/checkerTransformer/create.mjs +9 -0
  10. package/dist/toDataParser/checkerTransformer/defaults/array/index.cjs +9 -0
  11. package/dist/toDataParser/checkerTransformer/defaults/array/index.d.ts +2 -0
  12. package/dist/toDataParser/checkerTransformer/defaults/array/index.mjs +2 -0
  13. package/dist/toDataParser/checkerTransformer/defaults/array/max.cjs +15 -0
  14. package/dist/toDataParser/checkerTransformer/defaults/array/max.d.ts +1 -0
  15. package/dist/toDataParser/checkerTransformer/defaults/array/max.mjs +13 -0
  16. package/dist/toDataParser/checkerTransformer/defaults/array/min.cjs +15 -0
  17. package/dist/toDataParser/checkerTransformer/defaults/array/min.d.ts +1 -0
  18. package/dist/toDataParser/checkerTransformer/defaults/array/min.mjs +13 -0
  19. package/dist/toDataParser/checkerTransformer/defaults/bigint/index.cjs +9 -0
  20. package/dist/toDataParser/checkerTransformer/defaults/bigint/index.d.ts +2 -0
  21. package/dist/toDataParser/checkerTransformer/defaults/bigint/index.mjs +2 -0
  22. package/dist/toDataParser/checkerTransformer/defaults/bigint/max.cjs +15 -0
  23. package/dist/toDataParser/checkerTransformer/defaults/bigint/max.d.ts +1 -0
  24. package/dist/toDataParser/checkerTransformer/defaults/bigint/max.mjs +13 -0
  25. package/dist/toDataParser/checkerTransformer/defaults/bigint/min.cjs +15 -0
  26. package/dist/toDataParser/checkerTransformer/defaults/bigint/min.d.ts +1 -0
  27. package/dist/toDataParser/checkerTransformer/defaults/bigint/min.mjs +13 -0
  28. package/dist/toDataParser/checkerTransformer/defaults/index.cjs +60 -0
  29. package/dist/toDataParser/checkerTransformer/defaults/index.d.ts +4 -0
  30. package/dist/toDataParser/checkerTransformer/defaults/index.mjs +47 -0
  31. package/dist/toDataParser/checkerTransformer/defaults/number/index.cjs +11 -0
  32. package/dist/toDataParser/checkerTransformer/defaults/number/index.d.ts +3 -0
  33. package/dist/toDataParser/checkerTransformer/defaults/number/index.mjs +3 -0
  34. package/dist/toDataParser/checkerTransformer/defaults/number/int.cjs +12 -0
  35. package/dist/toDataParser/checkerTransformer/defaults/number/int.d.ts +1 -0
  36. package/dist/toDataParser/checkerTransformer/defaults/number/int.mjs +10 -0
  37. package/dist/toDataParser/checkerTransformer/defaults/number/max.cjs +19 -0
  38. package/dist/toDataParser/checkerTransformer/defaults/number/max.d.ts +1 -0
  39. package/dist/toDataParser/checkerTransformer/defaults/number/max.mjs +17 -0
  40. package/dist/toDataParser/checkerTransformer/defaults/number/min.cjs +19 -0
  41. package/dist/toDataParser/checkerTransformer/defaults/number/min.d.ts +1 -0
  42. package/dist/toDataParser/checkerTransformer/defaults/number/min.mjs +17 -0
  43. package/dist/toDataParser/checkerTransformer/defaults/refine.cjs +32 -0
  44. package/dist/toDataParser/checkerTransformer/defaults/refine.d.ts +1 -0
  45. package/dist/toDataParser/checkerTransformer/defaults/refine.mjs +30 -0
  46. package/dist/toDataParser/checkerTransformer/defaults/string/email.cjs +12 -0
  47. package/dist/toDataParser/checkerTransformer/defaults/string/email.d.ts +1 -0
  48. package/dist/toDataParser/checkerTransformer/defaults/string/email.mjs +10 -0
  49. package/dist/toDataParser/checkerTransformer/defaults/string/index.cjs +17 -0
  50. package/dist/toDataParser/checkerTransformer/defaults/string/index.d.ts +6 -0
  51. package/dist/toDataParser/checkerTransformer/defaults/string/index.mjs +6 -0
  52. package/dist/toDataParser/checkerTransformer/defaults/string/max.cjs +15 -0
  53. package/dist/toDataParser/checkerTransformer/defaults/string/max.d.ts +1 -0
  54. package/dist/toDataParser/checkerTransformer/defaults/string/max.mjs +13 -0
  55. package/dist/toDataParser/checkerTransformer/defaults/string/min.cjs +15 -0
  56. package/dist/toDataParser/checkerTransformer/defaults/string/min.d.ts +1 -0
  57. package/dist/toDataParser/checkerTransformer/defaults/string/min.mjs +13 -0
  58. package/dist/toDataParser/checkerTransformer/defaults/string/regex.cjs +16 -0
  59. package/dist/toDataParser/checkerTransformer/defaults/string/regex.d.ts +1 -0
  60. package/dist/toDataParser/checkerTransformer/defaults/string/regex.mjs +14 -0
  61. package/dist/toDataParser/checkerTransformer/defaults/string/url.cjs +22 -0
  62. package/dist/toDataParser/checkerTransformer/defaults/string/url.d.ts +1 -0
  63. package/dist/toDataParser/checkerTransformer/defaults/string/url.mjs +20 -0
  64. package/dist/toDataParser/checkerTransformer/defaults/string/uuid.cjs +12 -0
  65. package/dist/toDataParser/checkerTransformer/defaults/string/uuid.d.ts +1 -0
  66. package/dist/toDataParser/checkerTransformer/defaults/string/uuid.mjs +10 -0
  67. package/dist/toDataParser/checkerTransformer/defaults/time/index.cjs +9 -0
  68. package/dist/toDataParser/checkerTransformer/defaults/time/index.d.ts +2 -0
  69. package/dist/toDataParser/checkerTransformer/defaults/time/index.mjs +2 -0
  70. package/dist/toDataParser/checkerTransformer/defaults/time/max.cjs +19 -0
  71. package/dist/toDataParser/checkerTransformer/defaults/time/max.d.ts +1 -0
  72. package/dist/toDataParser/checkerTransformer/defaults/time/max.mjs +17 -0
  73. package/dist/toDataParser/checkerTransformer/defaults/time/min.cjs +19 -0
  74. package/dist/toDataParser/checkerTransformer/defaults/time/min.d.ts +1 -0
  75. package/dist/toDataParser/checkerTransformer/defaults/time/min.mjs +17 -0
  76. package/dist/toDataParser/checkerTransformer/index.cjs +12 -0
  77. package/dist/toDataParser/checkerTransformer/index.d.ts +3 -0
  78. package/dist/toDataParser/checkerTransformer/index.mjs +3 -0
  79. package/dist/toDataParser/checkerTransformer/transformer.cjs +47 -0
  80. package/dist/toDataParser/checkerTransformer/transformer.d.ts +10 -0
  81. package/dist/toDataParser/checkerTransformer/transformer.mjs +44 -0
  82. package/dist/toDataParser/dataParserTransformer/create.cjs +11 -0
  83. package/dist/toDataParser/dataParserTransformer/create.d.ts +34 -0
  84. package/dist/toDataParser/dataParserTransformer/create.mjs +9 -0
  85. package/dist/toDataParser/dataParserTransformer/createIdentifier.cjs +9 -0
  86. package/dist/toDataParser/dataParserTransformer/createIdentifier.d.ts +1 -0
  87. package/dist/toDataParser/dataParserTransformer/createIdentifier.mjs +7 -0
  88. package/dist/toDataParser/dataParserTransformer/defaults/array.cjs +22 -0
  89. package/dist/toDataParser/dataParserTransformer/defaults/array.d.ts +2 -0
  90. package/dist/toDataParser/dataParserTransformer/defaults/array.mjs +20 -0
  91. package/dist/toDataParser/dataParserTransformer/defaults/bigint.cjs +19 -0
  92. package/dist/toDataParser/dataParserTransformer/defaults/bigint.d.ts +2 -0
  93. package/dist/toDataParser/dataParserTransformer/defaults/bigint.mjs +17 -0
  94. package/dist/toDataParser/dataParserTransformer/defaults/boolean.cjs +19 -0
  95. package/dist/toDataParser/dataParserTransformer/defaults/boolean.d.ts +2 -0
  96. package/dist/toDataParser/dataParserTransformer/defaults/boolean.mjs +17 -0
  97. package/dist/toDataParser/dataParserTransformer/defaults/date.cjs +19 -0
  98. package/dist/toDataParser/dataParserTransformer/defaults/date.d.ts +2 -0
  99. package/dist/toDataParser/dataParserTransformer/defaults/date.mjs +17 -0
  100. package/dist/toDataParser/dataParserTransformer/defaults/empty.cjs +19 -0
  101. package/dist/toDataParser/dataParserTransformer/defaults/empty.d.ts +2 -0
  102. package/dist/toDataParser/dataParserTransformer/defaults/empty.mjs +17 -0
  103. package/dist/toDataParser/dataParserTransformer/defaults/file.cjs +44 -0
  104. package/dist/toDataParser/dataParserTransformer/defaults/file.d.ts +1 -0
  105. package/dist/toDataParser/dataParserTransformer/defaults/file.mjs +42 -0
  106. package/dist/toDataParser/dataParserTransformer/defaults/index.cjs +76 -0
  107. package/dist/toDataParser/dataParserTransformer/defaults/index.d.ts +24 -0
  108. package/dist/toDataParser/dataParserTransformer/defaults/index.mjs +51 -0
  109. package/dist/toDataParser/dataParserTransformer/defaults/lazy.cjs +22 -0
  110. package/dist/toDataParser/dataParserTransformer/defaults/lazy.d.ts +2 -0
  111. package/dist/toDataParser/dataParserTransformer/defaults/lazy.mjs +20 -0
  112. package/dist/toDataParser/dataParserTransformer/defaults/literal.cjs +28 -0
  113. package/dist/toDataParser/dataParserTransformer/defaults/literal.d.ts +2 -0
  114. package/dist/toDataParser/dataParserTransformer/defaults/literal.mjs +26 -0
  115. package/dist/toDataParser/dataParserTransformer/defaults/nil.cjs +19 -0
  116. package/dist/toDataParser/dataParserTransformer/defaults/nil.d.ts +2 -0
  117. package/dist/toDataParser/dataParserTransformer/defaults/nil.mjs +17 -0
  118. package/dist/toDataParser/dataParserTransformer/defaults/nullable.cjs +22 -0
  119. package/dist/toDataParser/dataParserTransformer/defaults/nullable.d.ts +2 -0
  120. package/dist/toDataParser/dataParserTransformer/defaults/nullable.mjs +20 -0
  121. package/dist/toDataParser/dataParserTransformer/defaults/number.cjs +19 -0
  122. package/dist/toDataParser/dataParserTransformer/defaults/number.d.ts +2 -0
  123. package/dist/toDataParser/dataParserTransformer/defaults/number.mjs +17 -0
  124. package/dist/toDataParser/dataParserTransformer/defaults/object.cjs +22 -0
  125. package/dist/toDataParser/dataParserTransformer/defaults/object.d.ts +2 -0
  126. package/dist/toDataParser/dataParserTransformer/defaults/object.mjs +20 -0
  127. package/dist/toDataParser/dataParserTransformer/defaults/optional.cjs +22 -0
  128. package/dist/toDataParser/dataParserTransformer/defaults/optional.d.ts +2 -0
  129. package/dist/toDataParser/dataParserTransformer/defaults/optional.mjs +20 -0
  130. package/dist/toDataParser/dataParserTransformer/defaults/pipe.cjs +27 -0
  131. package/dist/toDataParser/dataParserTransformer/defaults/pipe.d.ts +2 -0
  132. package/dist/toDataParser/dataParserTransformer/defaults/pipe.mjs +25 -0
  133. package/dist/toDataParser/dataParserTransformer/defaults/record.cjs +27 -0
  134. package/dist/toDataParser/dataParserTransformer/defaults/record.d.ts +2 -0
  135. package/dist/toDataParser/dataParserTransformer/defaults/record.mjs +25 -0
  136. package/dist/toDataParser/dataParserTransformer/defaults/recover.cjs +8 -0
  137. package/dist/toDataParser/dataParserTransformer/defaults/recover.d.ts +2 -0
  138. package/dist/toDataParser/dataParserTransformer/defaults/recover.mjs +6 -0
  139. package/dist/toDataParser/dataParserTransformer/defaults/string.cjs +15 -0
  140. package/dist/toDataParser/dataParserTransformer/defaults/string.d.ts +2 -0
  141. package/dist/toDataParser/dataParserTransformer/defaults/string.mjs +13 -0
  142. package/dist/toDataParser/dataParserTransformer/defaults/templateLiteral.cjs +41 -0
  143. package/dist/toDataParser/dataParserTransformer/defaults/templateLiteral.d.ts +2 -0
  144. package/dist/toDataParser/dataParserTransformer/defaults/templateLiteral.mjs +39 -0
  145. package/dist/toDataParser/dataParserTransformer/defaults/time.cjs +19 -0
  146. package/dist/toDataParser/dataParserTransformer/defaults/time.d.ts +2 -0
  147. package/dist/toDataParser/dataParserTransformer/defaults/time.mjs +17 -0
  148. package/dist/toDataParser/dataParserTransformer/defaults/transform.cjs +40 -0
  149. package/dist/toDataParser/dataParserTransformer/defaults/transform.d.ts +2 -0
  150. package/dist/toDataParser/dataParserTransformer/defaults/transform.mjs +38 -0
  151. package/dist/toDataParser/dataParserTransformer/defaults/tuple.cjs +36 -0
  152. package/dist/toDataParser/dataParserTransformer/defaults/tuple.d.ts +2 -0
  153. package/dist/toDataParser/dataParserTransformer/defaults/tuple.mjs +34 -0
  154. package/dist/toDataParser/dataParserTransformer/defaults/union.cjs +28 -0
  155. package/dist/toDataParser/dataParserTransformer/defaults/union.d.ts +2 -0
  156. package/dist/toDataParser/dataParserTransformer/defaults/union.mjs +26 -0
  157. package/dist/toDataParser/dataParserTransformer/defaults/unknown.cjs +15 -0
  158. package/dist/toDataParser/dataParserTransformer/defaults/unknown.d.ts +2 -0
  159. package/dist/toDataParser/dataParserTransformer/defaults/unknown.mjs +13 -0
  160. package/dist/toDataParser/dataParserTransformer/getDefinitionDataParser.cjs +36 -0
  161. package/dist/toDataParser/dataParserTransformer/getDefinitionDataParser.d.ts +14 -0
  162. package/dist/toDataParser/dataParserTransformer/getDefinitionDataParser.mjs +34 -0
  163. package/dist/toDataParser/dataParserTransformer/hook.cjs +2 -0
  164. package/dist/toDataParser/dataParserTransformer/hook.d.ts +15 -0
  165. package/dist/toDataParser/dataParserTransformer/hook.mjs +1 -0
  166. package/dist/toDataParser/dataParserTransformer/index.cjs +16 -0
  167. package/dist/toDataParser/dataParserTransformer/index.d.ts +6 -0
  168. package/dist/toDataParser/dataParserTransformer/index.mjs +6 -0
  169. package/dist/toDataParser/dataParserTransformer/transformer.cjs +129 -0
  170. package/dist/toDataParser/dataParserTransformer/transformer.d.ts +23 -0
  171. package/dist/toDataParser/dataParserTransformer/transformer.mjs +127 -0
  172. package/dist/toDataParser/index.cjs +103 -0
  173. package/dist/toDataParser/index.d.ts +7 -0
  174. package/dist/toDataParser/index.mjs +49 -0
  175. package/dist/toDataParser/kind.cjs +9 -0
  176. package/dist/toDataParser/kind.d.ts +6 -0
  177. package/dist/toDataParser/kind.mjs +7 -0
  178. package/dist/toDataParser/override.cjs +29 -0
  179. package/dist/toDataParser/override.d.ts +20 -0
  180. package/dist/toDataParser/override.mjs +27 -0
  181. package/dist/toDataParser/printer.cjs +23 -0
  182. package/dist/toDataParser/printer.d.ts +2 -0
  183. package/dist/toDataParser/printer.mjs +21 -0
  184. package/dist/toDataParser/render.cjs +50 -0
  185. package/dist/toDataParser/render.d.ts +19 -0
  186. package/dist/toDataParser/render.mjs +46 -0
  187. package/dist/toJsonSchema/override.cjs +4 -4
  188. package/dist/toJsonSchema/override.d.ts +1 -1
  189. package/dist/toJsonSchema/override.mjs +5 -5
  190. package/dist/toJsonSchema/transformer/defaults/string.cjs +2 -2
  191. package/dist/toJsonSchema/transformer/defaults/string.mjs +2 -2
  192. package/dist/toTypescript/buildContext.cjs +37 -0
  193. package/dist/toTypescript/buildContext.d.ts +15 -0
  194. package/dist/toTypescript/buildContext.mjs +35 -0
  195. package/dist/toTypescript/index.cjs +10 -0
  196. package/dist/toTypescript/index.d.ts +2 -0
  197. package/dist/toTypescript/index.mjs +5 -0
  198. package/dist/toTypescript/override.cjs +4 -4
  199. package/dist/toTypescript/override.d.ts +1 -1
  200. package/dist/toTypescript/override.mjs +5 -5
  201. package/dist/toTypescript/printer.cjs +17 -0
  202. package/dist/toTypescript/printer.d.ts +2 -0
  203. package/dist/toTypescript/printer.mjs +15 -0
  204. package/dist/toTypescript/render.cjs +8 -26
  205. package/dist/toTypescript/render.d.ts +5 -12
  206. package/dist/toTypescript/render.mjs +9 -27
  207. package/dist/toTypescript/transformer/addImport.cjs +21 -0
  208. package/dist/toTypescript/transformer/addImport.d.ts +2 -0
  209. package/dist/toTypescript/transformer/addImport.mjs +19 -0
  210. package/dist/toTypescript/transformer/create.d.ts +7 -3
  211. package/dist/toTypescript/transformer/createIdentifier.cjs +9 -0
  212. package/dist/toTypescript/transformer/createIdentifier.d.ts +1 -0
  213. package/dist/toTypescript/transformer/createIdentifier.mjs +7 -0
  214. package/dist/toTypescript/transformer/createImportDeclaration.cjs +17 -0
  215. package/dist/toTypescript/transformer/createImportDeclaration.d.ts +3 -0
  216. package/dist/toTypescript/transformer/createImportDeclaration.mjs +15 -0
  217. package/dist/toTypescript/transformer/hook.d.ts +2 -2
  218. package/dist/toTypescript/transformer/index.cjs +6 -0
  219. package/dist/toTypescript/transformer/index.d.ts +3 -0
  220. package/dist/toTypescript/transformer/index.mjs +3 -0
  221. package/dist/toTypescript/transformer/transformer.cjs +8 -9
  222. package/dist/toTypescript/transformer/transformer.d.ts +2 -2
  223. package/dist/toTypescript/transformer/transformer.mjs +8 -9
  224. package/package.json +8 -3
  225. package/dist/toTypescript/transformer/importTypesTransformer.cjs +0 -10
  226. package/dist/toTypescript/transformer/importTypesTransformer.d.ts +0 -2
  227. package/dist/toTypescript/transformer/importTypesTransformer.mjs +0 -8
@@ -0,0 +1,38 @@
1
+ import { DP, E, pipe, unwrap } from '@duplojs/utils';
2
+ import { createTransformer } from '../create.mjs';
3
+ import { createSourceFile, ScriptTarget, isExpressionStatement, isParenthesizedExpression, isFunctionExpression, isArrowFunction, factory } from 'typescript';
4
+
5
+ const transformTransformer = createTransformer(DP.transformKind.has, (dataParser, { success, dependencyIdentifier, getDefinition, transformer, buildError, }) => {
6
+ const inner = transformer(dataParser.definition.inner);
7
+ if (E.isLeft(inner)) {
8
+ return inner;
9
+ }
10
+ const theFunction = dataParser.definition.theFunction.toString();
11
+ if (theFunction.includes("[native code]")) {
12
+ return buildError();
13
+ }
14
+ const sourceFile = createSourceFile("refine-function.ts", `(${theFunction})`, ScriptTarget.Latest, false);
15
+ const statement = sourceFile.statements[0];
16
+ if (!statement || !isExpressionStatement(statement)) {
17
+ return buildError();
18
+ }
19
+ const functionExpression = isParenthesizedExpression(statement.expression)
20
+ ? statement.expression.expression
21
+ : undefined;
22
+ if (!functionExpression
23
+ || (!isFunctionExpression(functionExpression)
24
+ && !isArrowFunction(functionExpression))) {
25
+ return buildError();
26
+ }
27
+ const definition = getDefinition();
28
+ if (E.isLeft(definition)) {
29
+ return definition;
30
+ }
31
+ return pipe(factory.createCallExpression(factory.createPropertyAccessExpression(dependencyIdentifier, factory.createIdentifier("transform")), undefined, [
32
+ unwrap(inner),
33
+ functionExpression,
34
+ ...definition,
35
+ ]), success);
36
+ });
37
+
38
+ export { transformTransformer };
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+ var create = require('../create.cjs');
5
+ var typescript = require('typescript');
6
+
7
+ const tupleTransformer = create.createTransformer(utils.DP.tupleKind.has, (dataParser, { success, dependencyIdentifier, getDefinition, transformer, }) => {
8
+ const shape = utils.A.reduce(dataParser.definition.shape, utils.A.reduceFrom([]), ({ element, lastValue, nextPush, exit }) => {
9
+ const result = transformer(element);
10
+ if (utils.E.isLeft(result)) {
11
+ return exit(result);
12
+ }
13
+ return nextPush(lastValue, utils.unwrap(result));
14
+ });
15
+ if (utils.E.isLeft(shape)) {
16
+ return shape;
17
+ }
18
+ const rest = dataParser.definition.rest
19
+ ? utils.pipe(dataParser.definition.rest, transformer, utils.E.whenIsRight((expression) => [
20
+ typescript.factory.createPropertyAssignment(typescript.factory.createIdentifier("rest"), expression),
21
+ ]))
22
+ : undefined;
23
+ if (utils.E.isLeft(rest)) {
24
+ return rest;
25
+ }
26
+ const definition = getDefinition(rest);
27
+ if (utils.E.isLeft(definition)) {
28
+ return definition;
29
+ }
30
+ return utils.pipe(typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(dependencyIdentifier, typescript.factory.createIdentifier("tuple")), undefined, [
31
+ typescript.factory.createArrayLiteralExpression(shape, utils.A.minElements(shape, 3)),
32
+ ...definition,
33
+ ]), success);
34
+ });
35
+
36
+ exports.tupleTransformer = tupleTransformer;
@@ -0,0 +1,2 @@
1
+ import { DP } from "@duplojs/utils";
2
+ export declare const tupleTransformer: (dataParser: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
@@ -0,0 +1,34 @@
1
+ import { DP, A, E, unwrap, pipe } from '@duplojs/utils';
2
+ import { createTransformer } from '../create.mjs';
3
+ import { factory } from 'typescript';
4
+
5
+ const tupleTransformer = createTransformer(DP.tupleKind.has, (dataParser, { success, dependencyIdentifier, getDefinition, transformer, }) => {
6
+ const shape = A.reduce(dataParser.definition.shape, A.reduceFrom([]), ({ element, lastValue, nextPush, exit }) => {
7
+ const result = transformer(element);
8
+ if (E.isLeft(result)) {
9
+ return exit(result);
10
+ }
11
+ return nextPush(lastValue, unwrap(result));
12
+ });
13
+ if (E.isLeft(shape)) {
14
+ return shape;
15
+ }
16
+ const rest = dataParser.definition.rest
17
+ ? pipe(dataParser.definition.rest, transformer, E.whenIsRight((expression) => [
18
+ factory.createPropertyAssignment(factory.createIdentifier("rest"), expression),
19
+ ]))
20
+ : undefined;
21
+ if (E.isLeft(rest)) {
22
+ return rest;
23
+ }
24
+ const definition = getDefinition(rest);
25
+ if (E.isLeft(definition)) {
26
+ return definition;
27
+ }
28
+ return pipe(factory.createCallExpression(factory.createPropertyAccessExpression(dependencyIdentifier, factory.createIdentifier("tuple")), undefined, [
29
+ factory.createArrayLiteralExpression(shape, A.minElements(shape, 3)),
30
+ ...definition,
31
+ ]), success);
32
+ });
33
+
34
+ export { tupleTransformer };
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+ var create = require('../create.cjs');
5
+ var typescript = require('typescript');
6
+
7
+ const unionTransformer = create.createTransformer(utils.DP.unionKind.has, (dataParser, { dependencyIdentifier, getDefinition, success, transformer, }) => {
8
+ const options = utils.A.reduce(dataParser.definition.options, utils.A.reduceFrom([]), ({ element, lastValue, nextPush, exit }) => {
9
+ const result = transformer(element);
10
+ if (utils.E.isLeft(result)) {
11
+ return exit(result);
12
+ }
13
+ return nextPush(lastValue, utils.unwrap(result));
14
+ });
15
+ if (utils.E.isLeft(options)) {
16
+ return options;
17
+ }
18
+ const definition = getDefinition();
19
+ if (utils.E.isLeft(definition)) {
20
+ return definition;
21
+ }
22
+ return utils.pipe(typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(dependencyIdentifier, typescript.factory.createIdentifier("union")), undefined, [
23
+ typescript.factory.createArrayLiteralExpression(options, true),
24
+ ...definition,
25
+ ]), success);
26
+ });
27
+
28
+ exports.unionTransformer = unionTransformer;
@@ -0,0 +1,2 @@
1
+ import { DP } from "@duplojs/utils";
2
+ export declare const unionTransformer: (dataParser: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
@@ -0,0 +1,26 @@
1
+ import { DP, A, E, unwrap, pipe } from '@duplojs/utils';
2
+ import { createTransformer } from '../create.mjs';
3
+ import { factory } from 'typescript';
4
+
5
+ const unionTransformer = createTransformer(DP.unionKind.has, (dataParser, { dependencyIdentifier, getDefinition, success, transformer, }) => {
6
+ const options = A.reduce(dataParser.definition.options, A.reduceFrom([]), ({ element, lastValue, nextPush, exit }) => {
7
+ const result = transformer(element);
8
+ if (E.isLeft(result)) {
9
+ return exit(result);
10
+ }
11
+ return nextPush(lastValue, unwrap(result));
12
+ });
13
+ if (E.isLeft(options)) {
14
+ return options;
15
+ }
16
+ const definition = getDefinition();
17
+ if (E.isLeft(definition)) {
18
+ return definition;
19
+ }
20
+ return pipe(factory.createCallExpression(factory.createPropertyAccessExpression(dependencyIdentifier, factory.createIdentifier("union")), undefined, [
21
+ factory.createArrayLiteralExpression(options, true),
22
+ ...definition,
23
+ ]), success);
24
+ });
25
+
26
+ export { unionTransformer };
@@ -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 unknownTransformer = create.createTransformer(utils.DP.unknownKind.has, (dataParser, { success, dependencyIdentifier, getDefinition, }) => {
8
+ const definition = getDefinition();
9
+ if (utils.E.isLeft(definition)) {
10
+ return definition;
11
+ }
12
+ return utils.pipe(typescript.factory.createCallExpression(typescript.factory.createPropertyAccessExpression(dependencyIdentifier, typescript.factory.createIdentifier("unknown")), undefined, definition), success);
13
+ });
14
+
15
+ exports.unknownTransformer = unknownTransformer;
@@ -0,0 +1,2 @@
1
+ import { DP } from "@duplojs/utils";
2
+ export declare const unknownTransformer: (dataParser: DP.DataParsers, params: import("..").TransformerParams) => import("..").MaybeTransformerEither;
@@ -0,0 +1,13 @@
1
+ import { DP, E, pipe } from '@duplojs/utils';
2
+ import { createTransformer } from '../create.mjs';
3
+ import { factory } from 'typescript';
4
+
5
+ const unknownTransformer = createTransformer(DP.unknownKind.has, (dataParser, { success, dependencyIdentifier, getDefinition, }) => {
6
+ const definition = getDefinition();
7
+ if (E.isLeft(definition)) {
8
+ return definition;
9
+ }
10
+ return pipe(factory.createCallExpression(factory.createPropertyAccessExpression(dependencyIdentifier, factory.createIdentifier("unknown")), undefined, definition), success);
11
+ });
12
+
13
+ export { unknownTransformer };
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+ require('../checkerTransformer/index.cjs');
5
+ var typescript = require('typescript');
6
+ var transformer = require('../checkerTransformer/transformer.cjs');
7
+
8
+ function getDefinitionDataParser(params) {
9
+ const propertyAssignments = [];
10
+ if (params.dataParser.definition.errorMessage) {
11
+ propertyAssignments.push(typescript.factory.createPropertyAssignment(typescript.factory.createIdentifier("errorMessage"), typescript.factory.createStringLiteral(params.dataParser.definition.errorMessage)));
12
+ }
13
+ if (utils.A.minElements(params.customProperties, 1)) {
14
+ propertyAssignments.push(...params.customProperties);
15
+ }
16
+ if (utils.A.minElements(params.dataParser.definition.checkers, 1)) {
17
+ const checkers = utils.A.reduce(params.dataParser.definition.checkers, utils.A.reduceFrom([]), ({ element, lastValue, nextPush, exit }) => utils.pipe(transformer.checkerTransformer(element, {
18
+ transformers: params.checkerTransformers,
19
+ importContext: params.importContext,
20
+ }), utils.E.whenIsRight((value) => nextPush(lastValue, value)), utils.when(utils.E.isLeft, exit)));
21
+ if (utils.E.isLeft(checkers)) {
22
+ return utils.E.left("buildDataParserGetDefinitionError", {
23
+ dataParser: params.dataParser,
24
+ error: checkers,
25
+ });
26
+ }
27
+ propertyAssignments.push(typescript.factory.createPropertyAssignment(typescript.factory.createIdentifier("checkers"), typescript.factory.createArrayLiteralExpression(checkers, utils.A.minElements(checkers, 2))));
28
+ }
29
+ return utils.A.minElements(propertyAssignments, 1)
30
+ ? [
31
+ typescript.factory.createObjectLiteralExpression(propertyAssignments, utils.A.minElements(propertyAssignments, 2)),
32
+ ]
33
+ : [];
34
+ }
35
+
36
+ exports.getDefinitionDataParser = getDefinitionDataParser;
@@ -0,0 +1,14 @@
1
+ import { type DP, E } from "@duplojs/utils";
2
+ import { type createCheckerTransformer } from "../checkerTransformer";
3
+ import { type PropertyAssignment } from "typescript";
4
+ import type * as TST from "../../toTypescript";
5
+ export interface getDefinitionDataParserParams {
6
+ readonly dataParser: DP.DataParser;
7
+ readonly checkerTransformers: readonly ReturnType<typeof createCheckerTransformer>[];
8
+ readonly importContext: TST.MapImportContext;
9
+ readonly customProperties: readonly PropertyAssignment[];
10
+ }
11
+ export declare function getDefinitionDataParser(params: getDefinitionDataParserParams): readonly [] | readonly [import("typescript").ObjectLiteralExpression] | E.Left<"buildDataParserGetDefinitionError", {
12
+ readonly dataParser: DP.DataParser<unknown, unknown>;
13
+ readonly error: import("..").CheckerTransformerCheckerNotSupportedEither | import("..").CheckerTransformerBuildErrorEither;
14
+ }>;
@@ -0,0 +1,34 @@
1
+ import { A, pipe, E, when } from '@duplojs/utils';
2
+ import '../checkerTransformer/index.mjs';
3
+ import { factory } from 'typescript';
4
+ import { checkerTransformer } from '../checkerTransformer/transformer.mjs';
5
+
6
+ function getDefinitionDataParser(params) {
7
+ const propertyAssignments = [];
8
+ if (params.dataParser.definition.errorMessage) {
9
+ propertyAssignments.push(factory.createPropertyAssignment(factory.createIdentifier("errorMessage"), factory.createStringLiteral(params.dataParser.definition.errorMessage)));
10
+ }
11
+ if (A.minElements(params.customProperties, 1)) {
12
+ propertyAssignments.push(...params.customProperties);
13
+ }
14
+ if (A.minElements(params.dataParser.definition.checkers, 1)) {
15
+ const checkers = A.reduce(params.dataParser.definition.checkers, A.reduceFrom([]), ({ element, lastValue, nextPush, exit }) => pipe(checkerTransformer(element, {
16
+ transformers: params.checkerTransformers,
17
+ importContext: params.importContext,
18
+ }), E.whenIsRight((value) => nextPush(lastValue, value)), when(E.isLeft, exit)));
19
+ if (E.isLeft(checkers)) {
20
+ return E.left("buildDataParserGetDefinitionError", {
21
+ dataParser: params.dataParser,
22
+ error: checkers,
23
+ });
24
+ }
25
+ propertyAssignments.push(factory.createPropertyAssignment(factory.createIdentifier("checkers"), factory.createArrayLiteralExpression(checkers, A.minElements(checkers, 2))));
26
+ }
27
+ return A.minElements(propertyAssignments, 1)
28
+ ? [
29
+ factory.createObjectLiteralExpression(propertyAssignments, A.minElements(propertyAssignments, 2)),
30
+ ]
31
+ : [];
32
+ }
33
+
34
+ export { getDefinitionDataParser };
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -0,0 +1,15 @@
1
+ import type { DP } from "@duplojs/utils";
2
+ import type * as TST from "../../toTypescript";
3
+ import type { MapContext } from "./create";
4
+ export type TransformerHookAction = "stop" | "next";
5
+ export interface TransformerHookOutput {
6
+ dataParser: DP.DataParsers;
7
+ action: TransformerHookAction;
8
+ }
9
+ export interface TransformerHookParams {
10
+ dataParser: DP.DataParsers;
11
+ context: MapContext;
12
+ importContext: TST.MapImportContext;
13
+ output(action: TransformerHookAction, dataParser: DP.DataParsers): TransformerHookOutput;
14
+ }
15
+ export type TransformerHook = (params: TransformerHookParams) => TransformerHookOutput;
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var create = require('./create.cjs');
4
+ var transformer = require('./transformer.cjs');
5
+ require('./hook.cjs');
6
+ var index = require('./defaults/index.cjs');
7
+ var getDefinitionDataParser = require('./getDefinitionDataParser.cjs');
8
+ var createIdentifier = require('./createIdentifier.cjs');
9
+
10
+
11
+
12
+ exports.createTransformer = create.createTransformer;
13
+ exports.transformer = transformer.transformer;
14
+ exports.defaultTransformers = index.defaultTransformers;
15
+ exports.getDefinitionDataParser = getDefinitionDataParser.getDefinitionDataParser;
16
+ exports.createIdentifier = createIdentifier.createIdentifier;
@@ -0,0 +1,6 @@
1
+ export * from "./create";
2
+ export * from "./transformer";
3
+ export * from "./hook";
4
+ export * from "./defaults";
5
+ export * from "./getDefinitionDataParser";
6
+ export * from "./createIdentifier";
@@ -0,0 +1,6 @@
1
+ export { createTransformer } from './create.mjs';
2
+ export { transformer } from './transformer.mjs';
3
+ import './hook.mjs';
4
+ export { defaultTransformers } from './defaults/index.mjs';
5
+ export { getDefinitionDataParser } from './getDefinitionDataParser.mjs';
6
+ export { createIdentifier } from './createIdentifier.mjs';
@@ -0,0 +1,129 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+ require('../../toTypescript/index.cjs');
5
+ var typescript = require('typescript');
6
+ var getDefinitionDataParser = require('./getDefinitionDataParser.cjs');
7
+ var createIdentifier = require('./createIdentifier.cjs');
8
+ var addImport = require('../../toTypescript/transformer/addImport.cjs');
9
+ var buildContext = require('../../toTypescript/buildContext.cjs');
10
+
11
+ function transformer(dataParser, params) {
12
+ const currentDataParser = utils.A.reduce(params.hooks, utils.A.reduceFrom(dataParser), ({ element: hook, lastValue, next, exit }) => {
13
+ const result = hook({
14
+ dataParser: lastValue,
15
+ context: params.context,
16
+ importContext: params.importContext,
17
+ output: (action, dataParser) => ({
18
+ dataParser,
19
+ action,
20
+ }),
21
+ });
22
+ if (result.action === "stop") {
23
+ return exit(result.dataParser);
24
+ }
25
+ else {
26
+ return next(result.dataParser);
27
+ }
28
+ });
29
+ if (currentDataParser.definition.identifier) {
30
+ params.dependenciesContext.add(currentDataParser);
31
+ }
32
+ const identifiedDataParser = params.context.get(currentDataParser);
33
+ if (identifiedDataParser) {
34
+ return utils.E.right("buildSuccess", identifiedDataParser.identifier);
35
+ }
36
+ const newIdentifiedDataParser = utils.justExec(() => {
37
+ const currentIdentifier = utils.A.includes(params.recursiveDataParsers, currentDataParser)
38
+ || !!currentDataParser.definition.identifier
39
+ ? typescript.factory.createIdentifier(currentDataParser.definition.identifier !== undefined
40
+ ? createIdentifier.createIdentifier(currentDataParser.definition.identifier)
41
+ : `recursive${params.context.size}DataParser`)
42
+ : undefined;
43
+ if (!currentIdentifier) {
44
+ return null;
45
+ }
46
+ const contextValue = {
47
+ identifier: currentIdentifier,
48
+ expression: typescript.factory.createIdentifier("undefined"),
49
+ typeIdentifier: null,
50
+ dependencies: new Set(),
51
+ };
52
+ params.context.set(currentDataParser, contextValue);
53
+ return contextValue;
54
+ });
55
+ const functionParams = {
56
+ success(result) {
57
+ return utils.E.right("buildSuccess", result);
58
+ },
59
+ transformer(dataParser) {
60
+ return transformer(dataParser, {
61
+ ...params,
62
+ dependenciesContext: newIdentifiedDataParser?.dependencies
63
+ ?? params.dependenciesContext,
64
+ });
65
+ },
66
+ context: params.context,
67
+ dependencyIdentifier: params.dependencyIdentifier,
68
+ buildError() {
69
+ return utils.E.left("buildDataParserError", currentDataParser);
70
+ },
71
+ importContext: params.importContext,
72
+ getDefinition(customProperties = []) {
73
+ return getDefinitionDataParser.getDefinitionDataParser({
74
+ dataParser: currentDataParser,
75
+ checkerTransformers: params.checkerTransformers,
76
+ importContext: params.importContext,
77
+ customProperties,
78
+ });
79
+ },
80
+ addImport: addImport.createAddImport(params.importContext),
81
+ };
82
+ const result = currentDataParser.definition.overrideDataParserTransformer
83
+ ? currentDataParser.definition.overrideDataParserTransformer(currentDataParser.addOverrideDataParserTransformer(null), functionParams)
84
+ : utils.A.reduce(params.dataParserTransformers, utils.A.reduceFrom(utils.E.left("dataParserNotSupport", currentDataParser)), ({ element: functionBuilder, lastValue, next, exit, }) => {
85
+ const result = functionBuilder(currentDataParser, functionParams);
86
+ if (utils.E.isLeft(result)) {
87
+ if (!utils.E.hasInformation(result, "dataParserNotSupport")) {
88
+ return exit(result);
89
+ }
90
+ return next(lastValue);
91
+ }
92
+ return exit(result);
93
+ });
94
+ if (utils.E.isLeft(result)) {
95
+ return result;
96
+ }
97
+ if (newIdentifiedDataParser) {
98
+ const typeIdentifier = utils.justExec(() => {
99
+ if (!utils.A.includes(params.recursiveDataParsers, currentDataParser)) {
100
+ return null;
101
+ }
102
+ const identifier = `$${newIdentifiedDataParser.identifier.text}`;
103
+ const result = buildContext.buildContext(currentDataParser, {
104
+ identifier,
105
+ transformers: params.typescriptTransformers,
106
+ context: params.typescriptContext,
107
+ importContext: params.importContext,
108
+ ...params.toTypescript,
109
+ });
110
+ return utils.E.matchInformationOtherwise(result, {
111
+ buildDataParserError: (dataParser) => utils.E.left("toTypescriptBuildDataParserError", dataParser),
112
+ dataParserNotSupport: (dataParser) => utils.E.left("toTypescriptDataParserNotSupport", dataParser),
113
+ }, () => typescript.factory.createIdentifier(identifier));
114
+ });
115
+ if (utils.E.isLeft(typeIdentifier)) {
116
+ return typeIdentifier;
117
+ }
118
+ params.context.delete(currentDataParser);
119
+ params.context.set(currentDataParser, {
120
+ ...newIdentifiedDataParser,
121
+ expression: utils.unwrap(result),
122
+ typeIdentifier: typeIdentifier,
123
+ });
124
+ return utils.E.right("buildSuccess", newIdentifiedDataParser.identifier);
125
+ }
126
+ return utils.E.right("buildSuccess", utils.unwrap(result));
127
+ }
128
+
129
+ exports.transformer = transformer;
@@ -0,0 +1,23 @@
1
+ import { E, type DP } from "@duplojs/utils";
2
+ import * as TST from "../../toTypescript";
3
+ import type { MapContext, createTransformer, DependenciesContext } from "./create";
4
+ import { type Identifier } from "typescript";
5
+ import type { TransformerHook } from "./hook";
6
+ import type { createCheckerTransformer } from "../checkerTransformer";
7
+ export interface TransformerFunctionParams {
8
+ readonly dataParserTransformers: readonly ReturnType<typeof createTransformer>[];
9
+ readonly checkerTransformers: readonly ReturnType<typeof createCheckerTransformer>[];
10
+ readonly typescriptTransformers: readonly ReturnType<typeof TST.createTransformer>[];
11
+ readonly context: MapContext;
12
+ readonly typescriptContext: TST.MapContext;
13
+ readonly importContext: TST.MapImportContext;
14
+ readonly dependenciesContext: DependenciesContext;
15
+ readonly dependencyIdentifier: Identifier;
16
+ readonly hooks: readonly TransformerHook[];
17
+ readonly recursiveDataParsers: DP.DataParser[];
18
+ readonly toTypescript?: {
19
+ readonly mode?: TST.TransformerMode;
20
+ readonly hooks?: readonly TST.TransformerHook[];
21
+ };
22
+ }
23
+ export declare function transformer(dataParser: DP.DataParser, params: TransformerFunctionParams): import("./create").DataParserNotSupportedEither | import("./create").DataParserErrorEither | import("./create").DataParserGetDefinitionErrorEither | import("./create").ToTypescriptDataParserNotSupportedEither | import("./create").ToTypescriptDataParserErrorEither | E.Right<"buildSuccess", import("typescript").CallExpression | Identifier>;
@@ -0,0 +1,127 @@
1
+ import { A, E, justExec, unwrap } from '@duplojs/utils';
2
+ import '../../toTypescript/index.mjs';
3
+ import { factory } from 'typescript';
4
+ import { getDefinitionDataParser } from './getDefinitionDataParser.mjs';
5
+ import { createIdentifier } from './createIdentifier.mjs';
6
+ import { createAddImport } from '../../toTypescript/transformer/addImport.mjs';
7
+ import { buildContext } from '../../toTypescript/buildContext.mjs';
8
+
9
+ function transformer(dataParser, params) {
10
+ const currentDataParser = A.reduce(params.hooks, A.reduceFrom(dataParser), ({ element: hook, lastValue, next, exit }) => {
11
+ const result = hook({
12
+ dataParser: lastValue,
13
+ context: params.context,
14
+ importContext: params.importContext,
15
+ output: (action, dataParser) => ({
16
+ dataParser,
17
+ action,
18
+ }),
19
+ });
20
+ if (result.action === "stop") {
21
+ return exit(result.dataParser);
22
+ }
23
+ else {
24
+ return next(result.dataParser);
25
+ }
26
+ });
27
+ if (currentDataParser.definition.identifier) {
28
+ params.dependenciesContext.add(currentDataParser);
29
+ }
30
+ const identifiedDataParser = params.context.get(currentDataParser);
31
+ if (identifiedDataParser) {
32
+ return E.right("buildSuccess", identifiedDataParser.identifier);
33
+ }
34
+ const newIdentifiedDataParser = justExec(() => {
35
+ const currentIdentifier = A.includes(params.recursiveDataParsers, currentDataParser)
36
+ || !!currentDataParser.definition.identifier
37
+ ? factory.createIdentifier(currentDataParser.definition.identifier !== undefined
38
+ ? createIdentifier(currentDataParser.definition.identifier)
39
+ : `recursive${params.context.size}DataParser`)
40
+ : undefined;
41
+ if (!currentIdentifier) {
42
+ return null;
43
+ }
44
+ const contextValue = {
45
+ identifier: currentIdentifier,
46
+ expression: factory.createIdentifier("undefined"),
47
+ typeIdentifier: null,
48
+ dependencies: new Set(),
49
+ };
50
+ params.context.set(currentDataParser, contextValue);
51
+ return contextValue;
52
+ });
53
+ const functionParams = {
54
+ success(result) {
55
+ return E.right("buildSuccess", result);
56
+ },
57
+ transformer(dataParser) {
58
+ return transformer(dataParser, {
59
+ ...params,
60
+ dependenciesContext: newIdentifiedDataParser?.dependencies
61
+ ?? params.dependenciesContext,
62
+ });
63
+ },
64
+ context: params.context,
65
+ dependencyIdentifier: params.dependencyIdentifier,
66
+ buildError() {
67
+ return E.left("buildDataParserError", currentDataParser);
68
+ },
69
+ importContext: params.importContext,
70
+ getDefinition(customProperties = []) {
71
+ return getDefinitionDataParser({
72
+ dataParser: currentDataParser,
73
+ checkerTransformers: params.checkerTransformers,
74
+ importContext: params.importContext,
75
+ customProperties,
76
+ });
77
+ },
78
+ addImport: createAddImport(params.importContext),
79
+ };
80
+ const result = currentDataParser.definition.overrideDataParserTransformer
81
+ ? currentDataParser.definition.overrideDataParserTransformer(currentDataParser.addOverrideDataParserTransformer(null), functionParams)
82
+ : A.reduce(params.dataParserTransformers, A.reduceFrom(E.left("dataParserNotSupport", currentDataParser)), ({ element: functionBuilder, lastValue, next, exit, }) => {
83
+ const result = functionBuilder(currentDataParser, functionParams);
84
+ if (E.isLeft(result)) {
85
+ if (!E.hasInformation(result, "dataParserNotSupport")) {
86
+ return exit(result);
87
+ }
88
+ return next(lastValue);
89
+ }
90
+ return exit(result);
91
+ });
92
+ if (E.isLeft(result)) {
93
+ return result;
94
+ }
95
+ if (newIdentifiedDataParser) {
96
+ const typeIdentifier = justExec(() => {
97
+ if (!A.includes(params.recursiveDataParsers, currentDataParser)) {
98
+ return null;
99
+ }
100
+ const identifier = `$${newIdentifiedDataParser.identifier.text}`;
101
+ const result = buildContext(currentDataParser, {
102
+ identifier,
103
+ transformers: params.typescriptTransformers,
104
+ context: params.typescriptContext,
105
+ importContext: params.importContext,
106
+ ...params.toTypescript,
107
+ });
108
+ return E.matchInformationOtherwise(result, {
109
+ buildDataParserError: (dataParser) => E.left("toTypescriptBuildDataParserError", dataParser),
110
+ dataParserNotSupport: (dataParser) => E.left("toTypescriptDataParserNotSupport", dataParser),
111
+ }, () => factory.createIdentifier(identifier));
112
+ });
113
+ if (E.isLeft(typeIdentifier)) {
114
+ return typeIdentifier;
115
+ }
116
+ params.context.delete(currentDataParser);
117
+ params.context.set(currentDataParser, {
118
+ ...newIdentifiedDataParser,
119
+ expression: unwrap(result),
120
+ typeIdentifier: typeIdentifier,
121
+ });
122
+ return E.right("buildSuccess", newIdentifiedDataParser.identifier);
123
+ }
124
+ return E.right("buildSuccess", unwrap(result));
125
+ }
126
+
127
+ export { transformer };