@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
@@ -4,6 +4,8 @@ require('./transformer/index.cjs');
4
4
  require('./override.cjs');
5
5
  var render = require('./render.cjs');
6
6
  var kind = require('./kind.cjs');
7
+ var buildContext = require('./buildContext.cjs');
8
+ var printer = require('./printer.cjs');
7
9
  var index = require('./transformer/defaults/index.cjs');
8
10
  var create = require('./transformer/create.cjs');
9
11
  var transformer = require('./transformer/transformer.cjs');
@@ -31,12 +33,17 @@ var date = require('./transformer/defaults/date.cjs');
31
33
  var time = require('./transformer/defaults/time.cjs');
32
34
  var file = require('./transformer/defaults/file.cjs');
33
35
  var includesUndefinedTypeNode = require('./transformer/includesUndefinedTypeNode.cjs');
36
+ var createImportDeclaration = require('./transformer/createImportDeclaration.cjs');
37
+ var addImport = require('./transformer/addImport.cjs');
38
+ var createIdentifier = require('./transformer/createIdentifier.cjs');
34
39
 
35
40
 
36
41
 
37
42
  exports.DataParserToTypescriptRenderError = render.DataParserToTypescriptRenderError;
38
43
  exports.render = render.render;
39
44
  exports.createToTypescriptKind = kind.createToTypescriptKind;
45
+ exports.buildContext = buildContext.buildContext;
46
+ exports.printer = printer.printer;
40
47
  exports.defaultTransformers = index.defaultTransformers;
41
48
  exports.createTransformer = create.createTransformer;
42
49
  exports.transformer = transformer.transformer;
@@ -64,3 +71,6 @@ exports.dateTransformer = date.dateTransformer;
64
71
  exports.timeTransformer = time.timeTransformer;
65
72
  exports.fileTransformer = file.fileTransformer;
66
73
  exports.includesUndefinedTypeNode = includesUndefinedTypeNode.includesUndefinedTypeNode;
74
+ exports.createImportDeclaration = createImportDeclaration.createImportDeclaration;
75
+ exports.createAddImport = addImport.createAddImport;
76
+ exports.createIdentifier = createIdentifier.createIdentifier;
@@ -2,3 +2,5 @@ export * from "./transformer";
2
2
  export * from "./override";
3
3
  export * from "./render";
4
4
  export * from "./kind";
5
+ export * from "./buildContext";
6
+ export * from "./printer";
@@ -2,6 +2,8 @@ import './transformer/index.mjs';
2
2
  import './override.mjs';
3
3
  export { DataParserToTypescriptRenderError, render } from './render.mjs';
4
4
  export { createToTypescriptKind } from './kind.mjs';
5
+ export { buildContext } from './buildContext.mjs';
6
+ export { printer } from './printer.mjs';
5
7
  export { defaultTransformers } from './transformer/defaults/index.mjs';
6
8
  export { createTransformer } from './transformer/create.mjs';
7
9
  export { transformer } from './transformer/transformer.mjs';
@@ -29,3 +31,6 @@ export { dateTransformer } from './transformer/defaults/date.mjs';
29
31
  export { timeTransformer } from './transformer/defaults/time.mjs';
30
32
  export { fileTransformer } from './transformer/defaults/file.mjs';
31
33
  export { includesUndefinedTypeNode } from './transformer/includesUndefinedTypeNode.mjs';
34
+ export { createImportDeclaration } from './transformer/createImportDeclaration.mjs';
35
+ export { createAddImport } from './transformer/addImport.mjs';
36
+ export { createIdentifier } from './transformer/createIdentifier.mjs';
@@ -2,16 +2,16 @@
2
2
 
3
3
  var dataParser = require('@duplojs/utils/dataParser');
4
4
 
5
- dataParser.dataParserInit.overrideHandler.setMethod("setIdentifier", (schema, identifier) => {
5
+ dataParser.dataParserBaseInit.overrideHandler.setMethod("setIdentifier", (schema, identifier) => {
6
6
  schema.definition.identifier = identifier;
7
7
  return schema;
8
8
  });
9
- dataParser.dataParserInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) => {
9
+ dataParser.dataParserBaseInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) => {
10
10
  const newSchema = schema.clone();
11
11
  newSchema.setIdentifier(identifier);
12
12
  return newSchema;
13
13
  });
14
- dataParser.dataParserInit.overrideHandler.setMethod("setOverrideTypescriptTransformer", (schema, overrideTransformer) => {
14
+ dataParser.dataParserBaseInit.overrideHandler.setMethod("setOverrideTypescriptTransformer", (schema, overrideTransformer) => {
15
15
  if (overrideTransformer) {
16
16
  schema.definition.overrideTypescriptTransformer = typeof overrideTransformer === "function"
17
17
  ? overrideTransformer
@@ -22,7 +22,7 @@ dataParser.dataParserInit.overrideHandler.setMethod("setOverrideTypescriptTransf
22
22
  }
23
23
  return schema;
24
24
  });
25
- dataParser.dataParserInit.overrideHandler.setMethod("addOverrideTypescriptTransformer", (schema, overrideTypeNode) => {
25
+ dataParser.dataParserBaseInit.overrideHandler.setMethod("addOverrideTypescriptTransformer", (schema, overrideTypeNode) => {
26
26
  const newSchema = schema.clone();
27
27
  newSchema.setOverrideTypescriptTransformer(overrideTypeNode);
28
28
  return newSchema;
@@ -1,7 +1,7 @@
1
1
  import { type TypeNode } from "typescript";
2
2
  import { type TransformerBuildFunction } from "./transformer";
3
3
  declare module "@duplojs/utils/dataParser" {
4
- interface DataParser {
4
+ interface DataParserBase {
5
5
  /**
6
6
  * @deprecated this method mutated the dataParser by adding an identifier
7
7
  */
@@ -1,15 +1,15 @@
1
- import { dataParserInit } from '@duplojs/utils/dataParser';
1
+ import { dataParserBaseInit } from '@duplojs/utils/dataParser';
2
2
 
3
- dataParserInit.overrideHandler.setMethod("setIdentifier", (schema, identifier) => {
3
+ dataParserBaseInit.overrideHandler.setMethod("setIdentifier", (schema, identifier) => {
4
4
  schema.definition.identifier = identifier;
5
5
  return schema;
6
6
  });
7
- dataParserInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) => {
7
+ dataParserBaseInit.overrideHandler.setMethod("addIdentifier", (schema, identifier) => {
8
8
  const newSchema = schema.clone();
9
9
  newSchema.setIdentifier(identifier);
10
10
  return newSchema;
11
11
  });
12
- dataParserInit.overrideHandler.setMethod("setOverrideTypescriptTransformer", (schema, overrideTransformer) => {
12
+ dataParserBaseInit.overrideHandler.setMethod("setOverrideTypescriptTransformer", (schema, overrideTransformer) => {
13
13
  if (overrideTransformer) {
14
14
  schema.definition.overrideTypescriptTransformer = typeof overrideTransformer === "function"
15
15
  ? overrideTransformer
@@ -20,7 +20,7 @@ dataParserInit.overrideHandler.setMethod("setOverrideTypescriptTransformer", (sc
20
20
  }
21
21
  return schema;
22
22
  });
23
- dataParserInit.overrideHandler.setMethod("addOverrideTypescriptTransformer", (schema, overrideTypeNode) => {
23
+ dataParserBaseInit.overrideHandler.setMethod("addOverrideTypescriptTransformer", (schema, overrideTypeNode) => {
24
24
  const newSchema = schema.clone();
25
25
  newSchema.setOverrideTypescriptTransformer(overrideTypeNode);
26
26
  return newSchema;
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var typescript = require('typescript');
4
+ var utils = require('@duplojs/utils');
5
+ require('./transformer/index.cjs');
6
+ var createImportDeclaration = require('./transformer/createImportDeclaration.cjs');
7
+
8
+ function printer(params) {
9
+ const sourceFile = typescript.createSourceFile("print.ts", "", typescript.ScriptTarget.Latest, false, typescript.ScriptKind.TS);
10
+ const printer = typescript.createPrinter();
11
+ return utils.pipe([
12
+ ...createImportDeclaration.createImportDeclaration(params.importContext),
13
+ ...params.context.values(),
14
+ ], utils.A.map((value) => printer.printNode(typescript.EmitHint.Unspecified, value, sourceFile)), utils.A.join("\n\n"), utils.S.trim);
15
+ }
16
+
17
+ exports.printer = printer;
@@ -0,0 +1,2 @@
1
+ import { type BuildedContext } from "./buildContext";
2
+ export declare function printer(params: BuildedContext): string;
@@ -0,0 +1,15 @@
1
+ import { createSourceFile, ScriptTarget, ScriptKind, createPrinter, EmitHint } from 'typescript';
2
+ import { pipe, A, S } from '@duplojs/utils';
3
+ import './transformer/index.mjs';
4
+ import { createImportDeclaration } from './transformer/createImportDeclaration.mjs';
5
+
6
+ function printer(params) {
7
+ const sourceFile = createSourceFile("print.ts", "", ScriptTarget.Latest, false, ScriptKind.TS);
8
+ const printer = createPrinter();
9
+ return pipe([
10
+ ...createImportDeclaration(params.importContext),
11
+ ...params.context.values(),
12
+ ], A.map((value) => printer.printNode(EmitHint.Unspecified, value, sourceFile)), A.join("\n\n"), S.trim);
13
+ }
14
+
15
+ export { printer };
@@ -1,49 +1,31 @@
1
1
  'use strict';
2
2
 
3
3
  var utils = require('@duplojs/utils');
4
- require('./transformer/index.cjs');
5
- var typescript = require('typescript');
6
4
  var kind = require('./kind.cjs');
7
- require('../utils/index.cjs');
8
- var importTypesTransformer = require('./transformer/importTypesTransformer.cjs');
9
- var transformer = require('./transformer/transformer.cjs');
10
- var getRecursiveDataParser = require('../utils/getRecursiveDataParser.cjs');
5
+ var buildContext = require('./buildContext.cjs');
6
+ var printer = require('./printer.cjs');
11
7
 
12
- class DataParserToTypescriptRenderError extends utils.kindHeritage("data-parser-to-typescript-render-error", kind.createToTypescriptKind("data-parser-to-typescript-render-error"), Error) {
8
+ class DataParserToTypescriptRenderError extends utils.kindClass(kind.createToTypescriptKind("data-parser-to-typescript-render-error"), Error) {
13
9
  schema;
14
10
  error;
15
11
  constructor(schema, error) {
16
- super({}, ["Error during the render of dataParser in typescript type."]);
12
+ super({}, "Error during the render of dataParser in typescript type.");
17
13
  this.schema = schema;
18
14
  this.error = error;
19
15
  }
20
16
  }
21
17
  function render(schema, params) {
22
18
  const context = new Map(params.context);
23
- const importType = new Map(params.importType);
24
- const result = transformer.transformer(schema, {
19
+ const importContext = new Map(params.importContext);
20
+ const result = buildContext.buildContext(schema, {
25
21
  ...params,
26
22
  context,
27
- mode: params.mode ?? "out",
28
- hooks: params.hooks ?? [],
29
- recursiveDataParsers: getRecursiveDataParser.getRecursiveDataParser(schema),
30
- importType,
23
+ importContext,
31
24
  });
32
25
  if (utils.E.isLeft(result)) {
33
26
  throw new DataParserToTypescriptRenderError(schema, result);
34
27
  }
35
- if (schema.definition.identifier && schema.definition.identifier !== params.identifier) {
36
- context.set(utils.DP.empty(), typescript.factory.createTypeAliasDeclaration([typescript.factory.createToken(typescript.SyntaxKind.ExportKeyword)], typescript.factory.createIdentifier(params.identifier), undefined, typescript.factory.createTypeReferenceNode(schema.definition.identifier)));
37
- }
38
- else if (schema.definition.identifier !== params.identifier) {
39
- context.set(utils.DP.empty(), typescript.factory.createTypeAliasDeclaration([typescript.factory.createToken(typescript.SyntaxKind.ExportKeyword)], typescript.factory.createIdentifier(params.identifier), undefined, utils.unwrap(result)));
40
- }
41
- const sourceFile = typescript.createSourceFile("print.ts", "", typescript.ScriptTarget.Latest, false, typescript.ScriptKind.TS);
42
- const printer = typescript.createPrinter();
43
- return utils.pipe([
44
- ...importTypesTransformer.importTypesTransformer(importType),
45
- ...context.values(),
46
- ], utils.A.map((value) => printer.printNode(typescript.EmitHint.Unspecified, value, sourceFile)), utils.A.join("\n\n"), utils.S.trim);
28
+ return printer.printer(utils.unwrap(result));
47
29
  }
48
30
 
49
31
  exports.DataParserToTypescriptRenderError = DataParserToTypescriptRenderError;
@@ -1,16 +1,9 @@
1
- import { DP } from "@duplojs/utils";
2
- import { type DataParserErrorEither, type DataParserNotSupportedEither, type MapContext, type TransformerMode, type TransformerHook, type createTransformer, type MapImportType } from "./transformer";
3
- export interface RenderParams {
4
- readonly identifier: string;
5
- readonly transformers: readonly ReturnType<typeof createTransformer>[];
6
- readonly context?: MapContext;
7
- readonly mode?: TransformerMode;
8
- readonly hooks?: readonly TransformerHook[];
9
- readonly importType?: MapImportType;
1
+ import { type DP } from "@duplojs/utils";
2
+ import { type DataParserErrorEither, type DataParserNotSupportedEither } from "./transformer";
3
+ import { type BuildContextParams } from "./buildContext";
4
+ export interface RenderParams extends BuildContextParams {
10
5
  }
11
- declare const DataParserToTypescriptRenderError_base: new (params: {
12
- "@DuplojsDataParserToolsToTypescript/data-parser-to-typescript-render-error"?: unknown;
13
- }, parentParams: readonly [message?: string | undefined, options?: ErrorOptions | undefined]) => import("@duplojs/utils").Kind<import("@duplojs/utils").KindDefinition<"@DuplojsDataParserToolsToTypescript/data-parser-to-typescript-render-error", unknown>, unknown> & import("@duplojs/utils").Kind<import("@duplojs/utils").KindDefinition<"data-parser-to-typescript-render-error", unknown>, unknown> & Error;
6
+ declare const DataParserToTypescriptRenderError_base: import("@duplojs/utils").KindClass<import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsDataParserToolsToTypescript/data-parser-to-typescript-render-error", unknown>>, ErrorConstructor>;
14
7
  export declare class DataParserToTypescriptRenderError extends DataParserToTypescriptRenderError_base {
15
8
  schema: DP.DataParser;
16
9
  error: DataParserNotSupportedEither | DataParserErrorEither;
@@ -1,47 +1,29 @@
1
- import { kindHeritage, E, DP, unwrap, pipe, A, S } from '@duplojs/utils';
2
- import './transformer/index.mjs';
3
- import { factory, SyntaxKind, createSourceFile, ScriptTarget, ScriptKind, createPrinter, EmitHint } from 'typescript';
1
+ import { kindClass, E, unwrap } from '@duplojs/utils';
4
2
  import { createToTypescriptKind } from './kind.mjs';
5
- import '../utils/index.mjs';
6
- import { importTypesTransformer } from './transformer/importTypesTransformer.mjs';
7
- import { transformer } from './transformer/transformer.mjs';
8
- import { getRecursiveDataParser } from '../utils/getRecursiveDataParser.mjs';
3
+ import { buildContext } from './buildContext.mjs';
4
+ import { printer } from './printer.mjs';
9
5
 
10
- class DataParserToTypescriptRenderError extends kindHeritage("data-parser-to-typescript-render-error", createToTypescriptKind("data-parser-to-typescript-render-error"), Error) {
6
+ class DataParserToTypescriptRenderError extends kindClass(createToTypescriptKind("data-parser-to-typescript-render-error"), Error) {
11
7
  schema;
12
8
  error;
13
9
  constructor(schema, error) {
14
- super({}, ["Error during the render of dataParser in typescript type."]);
10
+ super({}, "Error during the render of dataParser in typescript type.");
15
11
  this.schema = schema;
16
12
  this.error = error;
17
13
  }
18
14
  }
19
15
  function render(schema, params) {
20
16
  const context = new Map(params.context);
21
- const importType = new Map(params.importType);
22
- const result = transformer(schema, {
17
+ const importContext = new Map(params.importContext);
18
+ const result = buildContext(schema, {
23
19
  ...params,
24
20
  context,
25
- mode: params.mode ?? "out",
26
- hooks: params.hooks ?? [],
27
- recursiveDataParsers: getRecursiveDataParser(schema),
28
- importType,
21
+ importContext,
29
22
  });
30
23
  if (E.isLeft(result)) {
31
24
  throw new DataParserToTypescriptRenderError(schema, result);
32
25
  }
33
- if (schema.definition.identifier && schema.definition.identifier !== params.identifier) {
34
- context.set(DP.empty(), factory.createTypeAliasDeclaration([factory.createToken(SyntaxKind.ExportKeyword)], factory.createIdentifier(params.identifier), undefined, factory.createTypeReferenceNode(schema.definition.identifier)));
35
- }
36
- else if (schema.definition.identifier !== params.identifier) {
37
- context.set(DP.empty(), factory.createTypeAliasDeclaration([factory.createToken(SyntaxKind.ExportKeyword)], factory.createIdentifier(params.identifier), undefined, unwrap(result)));
38
- }
39
- const sourceFile = createSourceFile("print.ts", "", ScriptTarget.Latest, false, ScriptKind.TS);
40
- const printer = createPrinter();
41
- return pipe([
42
- ...importTypesTransformer(importType),
43
- ...context.values(),
44
- ], A.map((value) => printer.printNode(EmitHint.Unspecified, value, sourceFile)), A.join("\n\n"), S.trim);
26
+ return printer(unwrap(result));
45
27
  }
46
28
 
47
29
  export { DataParserToTypescriptRenderError, render };
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+
5
+ function createAddImport(importContext) {
6
+ return (path, typeName, type) => {
7
+ const importKind = type === undefined
8
+ ? "direct"
9
+ : type;
10
+ const imports = importContext.get(path) ?? {};
11
+ const identifiers = imports[importKind] ?? [];
12
+ if (!utils.A.includes(identifiers, typeName)) {
13
+ importContext.set(path, {
14
+ ...imports,
15
+ [importKind]: utils.A.push(identifiers, typeName),
16
+ });
17
+ }
18
+ };
19
+ }
20
+
21
+ exports.createAddImport = createAddImport;
@@ -0,0 +1,2 @@
1
+ import type { MapImportContext } from "./create";
2
+ export declare function createAddImport(importContext: MapImportContext): (path: string, typeName: string, type?: "default" | "namespace" | "direct") => void;
@@ -0,0 +1,19 @@
1
+ import { A } from '@duplojs/utils';
2
+
3
+ function createAddImport(importContext) {
4
+ return (path, typeName, type) => {
5
+ const importKind = type === undefined
6
+ ? "direct"
7
+ : type;
8
+ const imports = importContext.get(path) ?? {};
9
+ const identifiers = imports[importKind] ?? [];
10
+ if (!A.includes(identifiers, typeName)) {
11
+ importContext.set(path, {
12
+ ...imports,
13
+ [importKind]: A.push(identifiers, typeName),
14
+ });
15
+ }
16
+ };
17
+ }
18
+
19
+ export { createAddImport };
@@ -4,17 +4,21 @@ export type TransformerSuccessEither = E.Right<"buildSuccess", TypeNode>;
4
4
  export type DataParserNotSupportedEither = E.Left<"dataParserNotSupport", DP.DataParser>;
5
5
  export type DataParserErrorEither = E.Left<"buildDataParserError", DP.DataParser>;
6
6
  export type MapContext = Map<DP.DataParsers, TypeAliasDeclaration>;
7
- export type MapImportType = Map<string, string[]>;
7
+ export type MapImportContext = Map<string, {
8
+ namespace?: string[];
9
+ default?: string[];
10
+ direct?: string[];
11
+ }>;
8
12
  export type MaybeTransformerEither = TransformerSuccessEither | DataParserNotSupportedEither | DataParserErrorEither;
9
13
  export type TransformerMode = "in" | "out";
10
14
  export interface TransformerParams {
11
15
  readonly mode: TransformerMode;
12
16
  readonly context: MapContext;
13
- readonly importType: MapImportType;
17
+ readonly importContext: MapImportContext;
14
18
  transformer(schema: DP.DataParser): MaybeTransformerEither;
15
19
  success(result: TypeNode): TransformerSuccessEither;
16
20
  buildError(): DataParserErrorEither;
17
- addImport(path: string, typeName: string): void;
21
+ addImport(path: string, typeName: string, type?: "default" | "namespace" | "direct"): void;
18
22
  }
19
23
  export type TransformerBuildFunction<GenericDataParser extends DP.DataParsers = DP.DataParsers> = (schema: GenericDataParser, params: TransformerParams) => MaybeTransformerEither;
20
24
  export declare function createTransformer<GenericDataParser extends DP.DataParsers>(support: (schema: DP.DataParsers) => schema is GenericDataParser, builder: TransformerBuildFunction<GenericDataParser>): (schema: DP.DataParsers, params: TransformerParams) => MaybeTransformerEither;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+
5
+ function createIdentifier(identifier) {
6
+ return utils.S.capitalize(identifier);
7
+ }
8
+
9
+ exports.createIdentifier = createIdentifier;
@@ -0,0 +1 @@
1
+ export declare function createIdentifier(identifier: string): Capitalize<string>;
@@ -0,0 +1,7 @@
1
+ import { S } from '@duplojs/utils';
2
+
3
+ function createIdentifier(identifier) {
4
+ return S.capitalize(identifier);
5
+ }
6
+
7
+ export { createIdentifier };
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+ var typescript = require('typescript');
5
+
6
+ function createImportDeclaration(importContext) {
7
+ return utils.A.reduce(utils.A.from(importContext), utils.A.reduceFrom([]), ({ element: [path, imports], lastValue, next }) => {
8
+ const declarations = utils.A.concat(lastValue, utils.A.map(imports.namespace ?? [], (identifier) => typescript.factory.createImportDeclaration(undefined, typescript.factory.createImportClause(undefined, undefined, typescript.factory.createNamespaceImport(typescript.factory.createIdentifier(identifier))), typescript.factory.createStringLiteral(path), undefined)), utils.A.map(imports.default ?? [], (identifier) => typescript.factory.createImportDeclaration(undefined, typescript.factory.createImportClause(undefined, typescript.factory.createIdentifier(identifier), undefined), typescript.factory.createStringLiteral(path), undefined)), imports.direct?.length
9
+ ? [
10
+ typescript.factory.createImportDeclaration(undefined, typescript.factory.createImportClause(undefined, undefined, typescript.factory.createNamedImports(utils.A.map(imports.direct, (identifier) => typescript.factory.createImportSpecifier(false, undefined, typescript.factory.createIdentifier(identifier))))), typescript.factory.createStringLiteral(path), undefined),
11
+ ]
12
+ : []);
13
+ return next(declarations);
14
+ });
15
+ }
16
+
17
+ exports.createImportDeclaration = createImportDeclaration;
@@ -0,0 +1,3 @@
1
+ import type { MapImportContext } from "./create";
2
+ import { type ImportDeclaration } from "typescript";
3
+ export declare function createImportDeclaration(importContext: MapImportContext): ImportDeclaration[];
@@ -0,0 +1,15 @@
1
+ import { A } from '@duplojs/utils';
2
+ import { factory } from 'typescript';
3
+
4
+ function createImportDeclaration(importContext) {
5
+ return A.reduce(A.from(importContext), A.reduceFrom([]), ({ element: [path, imports], lastValue, next }) => {
6
+ const declarations = A.concat(lastValue, A.map(imports.namespace ?? [], (identifier) => factory.createImportDeclaration(undefined, factory.createImportClause(undefined, undefined, factory.createNamespaceImport(factory.createIdentifier(identifier))), factory.createStringLiteral(path), undefined)), A.map(imports.default ?? [], (identifier) => factory.createImportDeclaration(undefined, factory.createImportClause(undefined, factory.createIdentifier(identifier), undefined), factory.createStringLiteral(path), undefined)), imports.direct?.length
7
+ ? [
8
+ factory.createImportDeclaration(undefined, factory.createImportClause(undefined, undefined, factory.createNamedImports(A.map(imports.direct, (identifier) => factory.createImportSpecifier(false, undefined, factory.createIdentifier(identifier))))), factory.createStringLiteral(path), undefined),
9
+ ]
10
+ : []);
11
+ return next(declarations);
12
+ });
13
+ }
14
+
15
+ export { createImportDeclaration };
@@ -1,5 +1,5 @@
1
1
  import type { DP } from "@duplojs/utils";
2
- import type { MapContext, MapImportType } from "./create";
2
+ import type { MapContext, MapImportContext } from "./create";
3
3
  export type TransformerHookAction = "stop" | "next";
4
4
  export interface TransformerHookOutput {
5
5
  schema: DP.DataParsers;
@@ -8,7 +8,7 @@ export interface TransformerHookOutput {
8
8
  export interface TransformerHookParams {
9
9
  schema: DP.DataParsers;
10
10
  context: MapContext;
11
- importType: MapImportType;
11
+ importContext: MapImportContext;
12
12
  output(action: TransformerHookAction, schema: DP.DataParsers): TransformerHookOutput;
13
13
  }
14
14
  export type TransformerHook = (params: TransformerHookParams) => TransformerHookOutput;
@@ -5,6 +5,9 @@ var transformer = require('./transformer.cjs');
5
5
  require('./hook.cjs');
6
6
  var index = require('./defaults/index.cjs');
7
7
  var includesUndefinedTypeNode = require('./includesUndefinedTypeNode.cjs');
8
+ var createImportDeclaration = require('./createImportDeclaration.cjs');
9
+ var addImport = require('./addImport.cjs');
10
+ var createIdentifier = require('./createIdentifier.cjs');
8
11
 
9
12
 
10
13
 
@@ -12,3 +15,6 @@ exports.createTransformer = create.createTransformer;
12
15
  exports.transformer = transformer.transformer;
13
16
  exports.defaultTransformers = index.defaultTransformers;
14
17
  exports.includesUndefinedTypeNode = includesUndefinedTypeNode.includesUndefinedTypeNode;
18
+ exports.createImportDeclaration = createImportDeclaration.createImportDeclaration;
19
+ exports.createAddImport = addImport.createAddImport;
20
+ exports.createIdentifier = createIdentifier.createIdentifier;
@@ -3,4 +3,7 @@ export * from "./transformer";
3
3
  export * from "./hook";
4
4
  export * from "./defaults";
5
5
  export * from "./includesUndefinedTypeNode";
6
+ export * from "./createImportDeclaration";
7
+ export * from "./addImport";
8
+ export * from "./createIdentifier";
6
9
  export { defaultTransformers } from "./defaults";
@@ -3,3 +3,6 @@ export { transformer } from './transformer.mjs';
3
3
  import './hook.mjs';
4
4
  export { defaultTransformers } from './defaults/index.mjs';
5
5
  export { includesUndefinedTypeNode } from './includesUndefinedTypeNode.mjs';
6
+ export { createImportDeclaration } from './createImportDeclaration.mjs';
7
+ export { createAddImport } from './addImport.mjs';
8
+ export { createIdentifier } from './createIdentifier.mjs';
@@ -2,13 +2,15 @@
2
2
 
3
3
  var utils = require('@duplojs/utils');
4
4
  var typescript = require('typescript');
5
+ var addImport = require('./addImport.cjs');
6
+ var createIdentifier = require('./createIdentifier.cjs');
5
7
 
6
8
  function transformer(schema, params) {
7
9
  const currentSchema = utils.A.reduce(params.hooks, utils.A.reduceFrom(schema), ({ element: hook, lastValue, next, exit }) => {
8
10
  const result = hook({
9
11
  schema: lastValue,
10
12
  context: params.context,
11
- importType: params.importType,
13
+ importContext: params.importContext,
12
14
  output: (action, schema) => ({
13
15
  schema,
14
16
  action,
@@ -30,7 +32,9 @@ function transformer(schema, params) {
30
32
  && !currentSchema.definition.identifier) {
31
33
  return undefined;
32
34
  }
33
- const identifier = currentSchema.definition.identifier ?? `RecursiveType${params.context.size}`;
35
+ const identifier = currentSchema.definition.identifier !== undefined
36
+ ? createIdentifier.createIdentifier(currentSchema.definition.identifier)
37
+ : `RecursiveType${params.context.size}`;
34
38
  params.context.set(currentSchema, typescript.factory.createTypeAliasDeclaration([typescript.factory.createToken(typescript.SyntaxKind.ExportKeyword)], typescript.factory.createIdentifier(identifier), undefined, typescript.factory.createTypeReferenceNode(identifier)));
35
39
  return identifier;
36
40
  });
@@ -46,13 +50,8 @@ function transformer(schema, params) {
46
50
  buildError() {
47
51
  return utils.E.left("buildDataParserError");
48
52
  },
49
- importType: params.importType,
50
- addImport(path, typeName) {
51
- const types = params.importType.get(path) ?? [];
52
- if (!utils.A.includes(types, typeName)) {
53
- params.importType.set(path, utils.A.push(types, typeName));
54
- }
55
- },
53
+ importContext: params.importContext,
54
+ addImport: addImport.createAddImport(params.importContext),
56
55
  };
57
56
  const result = currentSchema.definition.overrideTypescriptTransformer
58
57
  ? currentSchema.definition.overrideTypescriptTransformer(currentSchema.addOverrideTypescriptTransformer(null), functionParams)
@@ -1,5 +1,5 @@
1
1
  import { type DDataParser, type DP } from "@duplojs/utils";
2
- import type { MapContext, DataParserNotSupportedEither, createTransformer, TransformerMode, DataParserErrorEither, MapImportType } from "./create";
2
+ import type { MapContext, DataParserNotSupportedEither, createTransformer, TransformerMode, DataParserErrorEither, MapImportContext } from "./create";
3
3
  import type { TransformerHook } from "./hook";
4
4
  export interface TransformerFunctionParams {
5
5
  readonly transformers: readonly ReturnType<typeof createTransformer>[];
@@ -7,6 +7,6 @@ export interface TransformerFunctionParams {
7
7
  readonly mode: TransformerMode;
8
8
  readonly hooks: readonly TransformerHook[];
9
9
  readonly recursiveDataParsers: DDataParser.DataParser[];
10
- readonly importType: MapImportType;
10
+ readonly importContext: MapImportContext;
11
11
  }
12
12
  export declare function transformer(schema: DP.DataParser, params: TransformerFunctionParams): import("./create").TransformerSuccessEither | DataParserNotSupportedEither | DataParserErrorEither;
@@ -1,12 +1,14 @@
1
1
  import { A, E, justExec, unwrap } from '@duplojs/utils';
2
2
  import { factory, SyntaxKind } from 'typescript';
3
+ import { createAddImport } from './addImport.mjs';
4
+ import { createIdentifier } from './createIdentifier.mjs';
3
5
 
4
6
  function transformer(schema, params) {
5
7
  const currentSchema = A.reduce(params.hooks, A.reduceFrom(schema), ({ element: hook, lastValue, next, exit }) => {
6
8
  const result = hook({
7
9
  schema: lastValue,
8
10
  context: params.context,
9
- importType: params.importType,
11
+ importContext: params.importContext,
10
12
  output: (action, schema) => ({
11
13
  schema,
12
14
  action,
@@ -28,7 +30,9 @@ function transformer(schema, params) {
28
30
  && !currentSchema.definition.identifier) {
29
31
  return undefined;
30
32
  }
31
- const identifier = currentSchema.definition.identifier ?? `RecursiveType${params.context.size}`;
33
+ const identifier = currentSchema.definition.identifier !== undefined
34
+ ? createIdentifier(currentSchema.definition.identifier)
35
+ : `RecursiveType${params.context.size}`;
32
36
  params.context.set(currentSchema, factory.createTypeAliasDeclaration([factory.createToken(SyntaxKind.ExportKeyword)], factory.createIdentifier(identifier), undefined, factory.createTypeReferenceNode(identifier)));
33
37
  return identifier;
34
38
  });
@@ -44,13 +48,8 @@ function transformer(schema, params) {
44
48
  buildError() {
45
49
  return E.left("buildDataParserError");
46
50
  },
47
- importType: params.importType,
48
- addImport(path, typeName) {
49
- const types = params.importType.get(path) ?? [];
50
- if (!A.includes(types, typeName)) {
51
- params.importType.set(path, A.push(types, typeName));
52
- }
53
- },
51
+ importContext: params.importContext,
52
+ addImport: createAddImport(params.importContext),
54
53
  };
55
54
  const result = currentSchema.definition.overrideTypescriptTransformer
56
55
  ? currentSchema.definition.overrideTypescriptTransformer(currentSchema.addOverrideTypescriptTransformer(null), functionParams)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duplojs/data-parser-tools",
3
- "version": "0.2.9",
3
+ "version": "0.4.0",
4
4
  "license": "MIT",
5
5
  "author": "duplojs",
6
6
  "contributors": [
@@ -45,6 +45,11 @@
45
45
  "import": "./dist/toJsonSchema/index.mjs",
46
46
  "require": "./dist/toJsonSchema/index.cjs",
47
47
  "types": "./dist/toJsonSchema/index.d.ts"
48
+ },
49
+ "./toDataParser": {
50
+ "import": "./dist/toDataParser/index.mjs",
51
+ "require": "./dist/toDataParser/index.cjs",
52
+ "types": "./dist/toDataParser/index.d.ts"
48
53
  }
49
54
  },
50
55
  "files": [
@@ -71,8 +76,8 @@
71
76
  "vitest": "3.2.4"
72
77
  },
73
78
  "peerDependencies": {
74
- "@duplojs/utils": ">=1.5.12 <2.0.0",
75
- "@duplojs/server-utils": ">=0.1.4 < 1.0.0"
79
+ "@duplojs/utils": ">=1.8.4 <2.0.0",
80
+ "@duplojs/server-utils": ">=0.3.0 < 1.0.0"
76
81
  },
77
82
  "dependencies": {
78
83
  "typescript": "5.9.2"