@nestia/migrate 12.0.0-rc.2 → 12.0.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/lib/NestiaMigrateApplication.js +9 -44
- package/lib/NestiaMigrateApplication.js.map +1 -1
- package/lib/NestiaMigrateApplication.mjs +90 -3
- package/lib/NestiaMigrateApplication.mjs.map +1 -1
- package/lib/_virtual/_rolldown/runtime.mjs +13 -0
- package/lib/analyzers/NestiaMigrateControllerAnalyzer.mjs +45 -3
- package/lib/analyzers/NestiaMigrateControllerAnalyzer.mjs.map +1 -1
- package/lib/archivers/NestiaMigrateFileArchiver.js +4 -0
- package/lib/archivers/NestiaMigrateFileArchiver.js.map +1 -1
- package/lib/archivers/NestiaMigrateFileArchiver.mjs +25 -3
- package/lib/archivers/NestiaMigrateFileArchiver.mjs.map +1 -1
- package/lib/bundles/NEST_TEMPLATE.js +51 -49
- package/lib/bundles/NEST_TEMPLATE.js.map +1 -1
- package/lib/bundles/NEST_TEMPLATE.mjs +58 -3
- package/lib/bundles/NEST_TEMPLATE.mjs.map +1 -1
- package/lib/bundles/SDK_TEMPLATE.js +20 -20
- package/lib/bundles/SDK_TEMPLATE.js.map +1 -1
- package/lib/bundles/SDK_TEMPLATE.mjs +28 -3
- package/lib/bundles/SDK_TEMPLATE.mjs.map +1 -1
- package/lib/executable/NestiaMigrateCommander.mjs +80 -3
- package/lib/executable/NestiaMigrateCommander.mjs.map +1 -1
- package/lib/executable/NestiaMigrateInquirer.mjs +59 -3
- package/lib/executable/NestiaMigrateInquirer.mjs.map +1 -1
- package/lib/executable/migrate.mjs +9 -3
- package/lib/executable/migrate.mjs.map +1 -1
- package/lib/factories/ExpressionFactory.mjs +10 -3
- package/lib/factories/ExpressionFactory.mjs.map +1 -1
- package/lib/factories/FormatCheatSheet.mjs +31 -3
- package/lib/factories/FormatCheatSheet.mjs.map +1 -1
- package/lib/factories/IdentifierFactory.mjs +22 -3
- package/lib/factories/IdentifierFactory.mjs.map +1 -1
- package/lib/factories/LiteralFactory.mjs +31 -3
- package/lib/factories/LiteralFactory.mjs.map +1 -1
- package/lib/factories/StatementFactory.mjs +12 -3
- package/lib/factories/StatementFactory.mjs.map +1 -1
- package/lib/factories/TypeFactory.mjs +21 -3
- package/lib/factories/TypeFactory.mjs.map +1 -1
- package/lib/factories/TypeLiteralFactory.js +2 -37
- package/lib/factories/TypeLiteralFactory.js.map +1 -1
- package/lib/factories/TypeLiteralFactory.mjs +17 -3
- package/lib/factories/TypeLiteralFactory.mjs.map +1 -1
- package/lib/index.mjs +24 -2
- package/lib/index.mjs.map +1 -1
- package/lib/internal/ts.mjs +6 -2
- package/lib/internal/ts.mjs.map +1 -1
- package/lib/module.mjs +43 -2
- package/lib/module.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateApiFileProgrammer.mjs +36 -3
- package/lib/programmers/NestiaMigrateApiFileProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js +2 -37
- package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js.map +1 -1
- package/lib/programmers/NestiaMigrateApiFunctionProgrammer.mjs +106 -3
- package/lib/programmers/NestiaMigrateApiFunctionProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.mjs +139 -3
- package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateApiProgrammer.js +1 -1
- package/lib/programmers/NestiaMigrateApiProgrammer.js.map +1 -1
- package/lib/programmers/NestiaMigrateApiProgrammer.mjs +71 -3
- package/lib/programmers/NestiaMigrateApiProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateApiSimulationProgrammer.mjs +102 -3
- package/lib/programmers/NestiaMigrateApiSimulationProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateApiStartProgrammer.mjs +50 -3
- package/lib/programmers/NestiaMigrateApiStartProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateDtoProgrammer.mjs +53 -3
- package/lib/programmers/NestiaMigrateDtoProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateE2eFileProgrammer.mjs +58 -3
- package/lib/programmers/NestiaMigrateE2eFileProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateE2eProgrammer.js +11 -4
- package/lib/programmers/NestiaMigrateE2eProgrammer.js.map +1 -1
- package/lib/programmers/NestiaMigrateE2eProgrammer.mjs +35 -3
- package/lib/programmers/NestiaMigrateE2eProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateImportProgrammer.js +12 -5
- package/lib/programmers/NestiaMigrateImportProgrammer.js.map +1 -1
- package/lib/programmers/NestiaMigrateImportProgrammer.mjs +50 -3
- package/lib/programmers/NestiaMigrateImportProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateNestControllerProgrammer.js +4 -3
- package/lib/programmers/NestiaMigrateNestControllerProgrammer.js.map +1 -1
- package/lib/programmers/NestiaMigrateNestControllerProgrammer.mjs +31 -3
- package/lib/programmers/NestiaMigrateNestControllerProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateNestMethodProgrammer.mjs +128 -3
- package/lib/programmers/NestiaMigrateNestMethodProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateNestModuleProgrammer.mjs +18 -3
- package/lib/programmers/NestiaMigrateNestModuleProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateNestProgrammer.js +25 -4
- package/lib/programmers/NestiaMigrateNestProgrammer.js.map +1 -1
- package/lib/programmers/NestiaMigrateNestProgrammer.mjs +60 -3
- package/lib/programmers/NestiaMigrateNestProgrammer.mjs.map +1 -1
- package/lib/programmers/NestiaMigrateSchemaProgrammer.js +14 -49
- package/lib/programmers/NestiaMigrateSchemaProgrammer.js.map +1 -1
- package/lib/programmers/NestiaMigrateSchemaProgrammer.mjs +199 -3
- package/lib/programmers/NestiaMigrateSchemaProgrammer.mjs.map +1 -1
- package/lib/programmers/index.mjs +16 -2
- package/lib/structures/INestiaMigrateConfig.mjs +0 -3
- package/lib/structures/INestiaMigrateContext.mjs +0 -3
- package/lib/structures/INestiaMigrateController.mjs +0 -3
- package/lib/structures/INestiaMigrateFile.mjs +0 -3
- package/lib/structures/index.mjs +0 -2
- package/lib/utils/FilePrinter.mjs +20 -3
- package/lib/utils/FilePrinter.mjs.map +1 -1
- package/lib/utils/MapUtil.mjs +15 -3
- package/lib/utils/MapUtil.mjs.map +1 -1
- package/lib/utils/StringUtil.mjs +100 -3
- package/lib/utils/StringUtil.mjs.map +1 -1
- package/package.json +8 -12
- package/src/NestiaMigrateApplication.ts +192 -196
- package/src/analyzers/NestiaMigrateControllerAnalyzer.ts +51 -51
- package/src/archivers/NestiaMigrateFileArchiver.ts +32 -28
- package/src/bundles/NEST_TEMPLATE.ts +51 -49
- package/src/bundles/SDK_TEMPLATE.ts +20 -20
- package/src/executable/NestiaMigrateCommander.ts +115 -115
- package/src/executable/NestiaMigrateInquirer.ts +106 -106
- package/src/executable/bundle.js +396 -349
- package/src/executable/migrate.ts +7 -7
- package/src/factories/ExpressionFactory.ts +23 -23
- package/src/factories/FormatCheatSheet.ts +71 -71
- package/src/factories/IdentifierFactory.ts +84 -84
- package/src/factories/LiteralFactory.ts +54 -54
- package/src/factories/StatementFactory.ts +56 -56
- package/src/factories/TypeFactory.ts +27 -27
- package/src/factories/TypeLiteralFactory.ts +59 -62
- package/src/index.ts +4 -4
- package/src/internal/ts.ts +75 -75
- package/src/module.ts +6 -6
- package/src/programmers/NestiaMigrateApiFileProgrammer.ts +55 -55
- package/src/programmers/NestiaMigrateApiFunctionProgrammer.ts +355 -358
- package/src/programmers/NestiaMigrateApiNamespaceProgrammer.ts +511 -511
- package/src/programmers/NestiaMigrateApiProgrammer.ts +108 -108
- package/src/programmers/NestiaMigrateApiSimulationProgrammer.ts +309 -309
- package/src/programmers/NestiaMigrateApiStartProgrammer.ts +198 -198
- package/src/programmers/NestiaMigrateDtoProgrammer.ts +117 -117
- package/src/programmers/NestiaMigrateE2eFileProgrammer.ts +155 -155
- package/src/programmers/NestiaMigrateE2eProgrammer.ts +62 -48
- package/src/programmers/NestiaMigrateImportProgrammer.ts +127 -119
- package/src/programmers/NestiaMigrateNestControllerProgrammer.ts +66 -70
- package/src/programmers/NestiaMigrateNestMethodProgrammer.ts +402 -402
- package/src/programmers/NestiaMigrateNestModuleProgrammer.ts +64 -64
- package/src/programmers/NestiaMigrateNestProgrammer.ts +110 -89
- package/src/programmers/NestiaMigrateSchemaProgrammer.ts +472 -475
- package/src/programmers/index.ts +15 -15
- package/src/structures/INestiaMigrateConfig.ts +19 -19
- package/src/structures/INestiaMigrateContext.ts +9 -9
- package/src/structures/INestiaMigrateController.ts +8 -8
- package/src/structures/INestiaMigrateFile.ts +5 -5
- package/src/structures/index.ts +4 -4
- package/src/utils/FilePrinter.ts +44 -44
- package/src/utils/MapUtil.ts +13 -13
- package/src/utils/StringUtil.ts +109 -109
- package/README.md +0 -93
- package/lib/NestiaMigrateApplication2.mjs +0 -153
- package/lib/NestiaMigrateApplication2.mjs.map +0 -1
- package/lib/_virtual/ExpressionFactory.mjs +0 -4
- package/lib/_virtual/ExpressionFactory.mjs.map +0 -1
- package/lib/_virtual/FilePrinter.mjs +0 -4
- package/lib/_virtual/FilePrinter.mjs.map +0 -1
- package/lib/_virtual/FormatCheatSheet.mjs +0 -4
- package/lib/_virtual/FormatCheatSheet.mjs.map +0 -1
- package/lib/_virtual/INestiaMigrateConfig.mjs +0 -4
- package/lib/_virtual/INestiaMigrateConfig.mjs.map +0 -1
- package/lib/_virtual/INestiaMigrateContext.mjs +0 -4
- package/lib/_virtual/INestiaMigrateContext.mjs.map +0 -1
- package/lib/_virtual/INestiaMigrateController.mjs +0 -4
- package/lib/_virtual/INestiaMigrateController.mjs.map +0 -1
- package/lib/_virtual/INestiaMigrateFile.mjs +0 -4
- package/lib/_virtual/INestiaMigrateFile.mjs.map +0 -1
- package/lib/_virtual/IdentifierFactory.mjs +0 -4
- package/lib/_virtual/IdentifierFactory.mjs.map +0 -1
- package/lib/_virtual/LiteralFactory.mjs +0 -4
- package/lib/_virtual/LiteralFactory.mjs.map +0 -1
- package/lib/_virtual/MapUtil.mjs +0 -4
- package/lib/_virtual/MapUtil.mjs.map +0 -1
- package/lib/_virtual/NEST_TEMPLATE.mjs +0 -4
- package/lib/_virtual/NEST_TEMPLATE.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateApiFileProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateApiFileProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateApiFunctionProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateApiFunctionProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateApiNamespaceProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateApiNamespaceProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateApiProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateApiProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateApiSimulationProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateApiSimulationProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateApiStartProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateApiStartProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateApplication.mjs +0 -4
- package/lib/_virtual/NestiaMigrateApplication.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateCommander.mjs +0 -4
- package/lib/_virtual/NestiaMigrateCommander.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateControllerAnalyzer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateControllerAnalyzer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateDtoProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateDtoProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateE2eFileProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateE2eFileProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateE2eProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateE2eProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateFileArchiver.mjs +0 -4
- package/lib/_virtual/NestiaMigrateFileArchiver.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateImportProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateImportProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateInquirer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateInquirer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateNestControllerProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateNestControllerProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateNestMethodProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateNestMethodProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateNestModuleProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateNestModuleProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateNestProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateNestProgrammer.mjs.map +0 -1
- package/lib/_virtual/NestiaMigrateSchemaProgrammer.mjs +0 -4
- package/lib/_virtual/NestiaMigrateSchemaProgrammer.mjs.map +0 -1
- package/lib/_virtual/SDK_TEMPLATE.mjs +0 -4
- package/lib/_virtual/SDK_TEMPLATE.mjs.map +0 -1
- package/lib/_virtual/StatementFactory.mjs +0 -4
- package/lib/_virtual/StatementFactory.mjs.map +0 -1
- package/lib/_virtual/StringUtil.mjs +0 -4
- package/lib/_virtual/StringUtil.mjs.map +0 -1
- package/lib/_virtual/TypeFactory.mjs +0 -4
- package/lib/_virtual/TypeFactory.mjs.map +0 -1
- package/lib/_virtual/TypeLiteralFactory.mjs +0 -4
- package/lib/_virtual/TypeLiteralFactory.mjs.map +0 -1
- package/lib/_virtual/_commander.mjs +0 -7
- package/lib/_virtual/_commander.mjs.map +0 -1
- package/lib/_virtual/_commonjsHelpers.mjs +0 -35
- package/lib/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/lib/_virtual/_inquirer.mjs +0 -7
- package/lib/_virtual/_inquirer.mjs.map +0 -1
- package/lib/_virtual/_node_child_process.mjs +0 -7
- package/lib/_virtual/_node_child_process.mjs.map +0 -1
- package/lib/_virtual/_node_fs.mjs +0 -7
- package/lib/_virtual/_node_fs.mjs.map +0 -1
- package/lib/_virtual/_node_path.mjs +0 -7
- package/lib/_virtual/_node_path.mjs.map +0 -1
- package/lib/_virtual/_prettier-plugin-jsdoc.mjs +0 -7
- package/lib/_virtual/_prettier-plugin-jsdoc.mjs.map +0 -1
- package/lib/_virtual/_prettier.mjs +0 -7
- package/lib/_virtual/_prettier.mjs.map +0 -1
- package/lib/_virtual/_tstl.mjs +0 -7
- package/lib/_virtual/_tstl.mjs.map +0 -1
- package/lib/_virtual/factory.mjs +0 -7
- package/lib/_virtual/factory.mjs.map +0 -1
- package/lib/_virtual/index.mjs +0 -4
- package/lib/_virtual/index.mjs.map +0 -1
- package/lib/_virtual/index2.mjs +0 -4
- package/lib/_virtual/index2.mjs.map +0 -1
- package/lib/_virtual/index3.mjs +0 -4
- package/lib/_virtual/index3.mjs.map +0 -1
- package/lib/_virtual/index4.mjs +0 -4
- package/lib/_virtual/index4.mjs.map +0 -1
- package/lib/_virtual/migrate.mjs +0 -4
- package/lib/_virtual/migrate.mjs.map +0 -1
- package/lib/_virtual/module.mjs +0 -4
- package/lib/_virtual/module.mjs.map +0 -1
- package/lib/_virtual/prettier-plugin-sort-imports.mjs +0 -7
- package/lib/_virtual/prettier-plugin-sort-imports.mjs.map +0 -1
- package/lib/_virtual/ts.mjs +0 -4
- package/lib/_virtual/ts.mjs.map +0 -1
- package/lib/_virtual/utils.mjs +0 -7
- package/lib/_virtual/utils.mjs.map +0 -1
- package/lib/analyzers/NestiaMigrateControllerAnalyzer2.mjs +0 -53
- package/lib/analyzers/NestiaMigrateControllerAnalyzer2.mjs.map +0 -1
- package/lib/archivers/NestiaMigrateFileArchiver2.mjs +0 -40
- package/lib/archivers/NestiaMigrateFileArchiver2.mjs.map +0 -1
- package/lib/bundles/NEST_TEMPLATE2.mjs +0 -66
- package/lib/bundles/NEST_TEMPLATE2.mjs.map +0 -1
- package/lib/bundles/SDK_TEMPLATE2.mjs +0 -38
- package/lib/bundles/SDK_TEMPLATE2.mjs.map +0 -1
- package/lib/executable/NestiaMigrateCommander2.mjs +0 -148
- package/lib/executable/NestiaMigrateCommander2.mjs.map +0 -1
- package/lib/executable/NestiaMigrateInquirer2.mjs +0 -93
- package/lib/executable/NestiaMigrateInquirer2.mjs.map +0 -1
- package/lib/executable/migrate2.mjs +0 -13
- package/lib/executable/migrate2.mjs.map +0 -1
- package/lib/factories/ExpressionFactory2.mjs +0 -20
- package/lib/factories/ExpressionFactory2.mjs.map +0 -1
- package/lib/factories/FormatCheatSheet2.mjs +0 -37
- package/lib/factories/FormatCheatSheet2.mjs.map +0 -1
- package/lib/factories/IdentifierFactory2.mjs +0 -56
- package/lib/factories/IdentifierFactory2.mjs.map +0 -1
- package/lib/factories/LiteralFactory2.mjs +0 -56
- package/lib/factories/LiteralFactory2.mjs.map +0 -1
- package/lib/factories/StatementFactory2.mjs +0 -26
- package/lib/factories/StatementFactory2.mjs.map +0 -1
- package/lib/factories/TypeFactory2.mjs +0 -31
- package/lib/factories/TypeFactory2.mjs.map +0 -1
- package/lib/factories/TypeLiteralFactory2.mjs +0 -72
- package/lib/factories/TypeLiteralFactory2.mjs.map +0 -1
- package/lib/index2.mjs +0 -53
- package/lib/index2.mjs.map +0 -1
- package/lib/internal/ts2.mjs +0 -10
- package/lib/internal/ts2.mjs.map +0 -1
- package/lib/module2.mjs +0 -38
- package/lib/module2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateApiFileProgrammer2.mjs +0 -49
- package/lib/programmers/NestiaMigrateApiFileProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateApiFunctionProgrammer2.mjs +0 -234
- package/lib/programmers/NestiaMigrateApiFunctionProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateApiNamespaceProgrammer2.mjs +0 -238
- package/lib/programmers/NestiaMigrateApiNamespaceProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateApiProgrammer2.mjs +0 -92
- package/lib/programmers/NestiaMigrateApiProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateApiSimulationProgrammer2.mjs +0 -156
- package/lib/programmers/NestiaMigrateApiSimulationProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateApiStartProgrammer2.mjs +0 -88
- package/lib/programmers/NestiaMigrateApiStartProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateDtoProgrammer2.mjs +0 -90
- package/lib/programmers/NestiaMigrateDtoProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateE2eFileProgrammer2.mjs +0 -88
- package/lib/programmers/NestiaMigrateE2eFileProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateE2eProgrammer2.mjs +0 -41
- package/lib/programmers/NestiaMigrateE2eProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateImportProgrammer2.mjs +0 -72
- package/lib/programmers/NestiaMigrateImportProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateNestControllerProgrammer2.mjs +0 -52
- package/lib/programmers/NestiaMigrateNestControllerProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateNestMethodProgrammer2.mjs +0 -229
- package/lib/programmers/NestiaMigrateNestMethodProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateNestModuleProgrammer2.mjs +0 -32
- package/lib/programmers/NestiaMigrateNestModuleProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateNestProgrammer2.mjs +0 -78
- package/lib/programmers/NestiaMigrateNestProgrammer2.mjs.map +0 -1
- package/lib/programmers/NestiaMigrateSchemaProgrammer2.mjs +0 -388
- package/lib/programmers/NestiaMigrateSchemaProgrammer2.mjs.map +0 -1
- package/lib/programmers/index.mjs.map +0 -1
- package/lib/programmers/index2.mjs +0 -71
- package/lib/programmers/index2.mjs.map +0 -1
- package/lib/structures/INestiaMigrateConfig.mjs.map +0 -1
- package/lib/structures/INestiaMigrateConfig2.mjs +0 -6
- package/lib/structures/INestiaMigrateConfig2.mjs.map +0 -1
- package/lib/structures/INestiaMigrateContext.mjs.map +0 -1
- package/lib/structures/INestiaMigrateContext2.mjs +0 -6
- package/lib/structures/INestiaMigrateContext2.mjs.map +0 -1
- package/lib/structures/INestiaMigrateController.mjs.map +0 -1
- package/lib/structures/INestiaMigrateController2.mjs +0 -6
- package/lib/structures/INestiaMigrateController2.mjs.map +0 -1
- package/lib/structures/INestiaMigrateFile.mjs.map +0 -1
- package/lib/structures/INestiaMigrateFile2.mjs +0 -6
- package/lib/structures/INestiaMigrateFile2.mjs.map +0 -1
- package/lib/structures/index.mjs.map +0 -1
- package/lib/structures/index2.mjs +0 -38
- package/lib/structures/index2.mjs.map +0 -1
- package/lib/utils/FilePrinter2.mjs +0 -28
- package/lib/utils/FilePrinter2.mjs.map +0 -1
- package/lib/utils/MapUtil2.mjs +0 -18
- package/lib/utils/MapUtil2.mjs.map +0 -1
- package/lib/utils/StringUtil2.mjs +0 -110
- package/lib/utils/StringUtil2.mjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { NestiaMigrateCommander } from "./NestiaMigrateCommander";
|
|
3
|
-
|
|
4
|
-
NestiaMigrateCommander.main().catch((exp) => {
|
|
5
|
-
console.error(exp);
|
|
6
|
-
process.exit(-1);
|
|
7
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { NestiaMigrateCommander } from "./NestiaMigrateCommander";
|
|
3
|
+
|
|
4
|
+
NestiaMigrateCommander.main().catch((exp) => {
|
|
5
|
+
console.error(exp);
|
|
6
|
+
process.exit(-1);
|
|
7
|
+
});
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type NumericLiteral,
|
|
3
|
-
type PrefixUnaryExpression,
|
|
4
|
-
SyntaxKind,
|
|
5
|
-
factory,
|
|
6
|
-
} from "@ttsc/factory";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Numeric-literal helper that handles negative values via a leading
|
|
10
|
-
* `MinusToken` prefix unary, matching how the TypeScript factory itself emits
|
|
11
|
-
* negative numeric literals.
|
|
12
|
-
*/
|
|
13
|
-
export namespace ExpressionFactory {
|
|
14
|
-
export const number = (
|
|
15
|
-
value: number,
|
|
16
|
-
): NumericLiteral | PrefixUnaryExpression =>
|
|
17
|
-
value < 0
|
|
18
|
-
? factory.createPrefixUnaryExpression(
|
|
19
|
-
SyntaxKind.MinusToken,
|
|
20
|
-
factory.createNumericLiteral(Math.abs(value)),
|
|
21
|
-
)
|
|
22
|
-
: factory.createNumericLiteral(value);
|
|
23
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
type NumericLiteral,
|
|
3
|
+
type PrefixUnaryExpression,
|
|
4
|
+
SyntaxKind,
|
|
5
|
+
factory,
|
|
6
|
+
} from "@ttsc/factory";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Numeric-literal helper that handles negative values via a leading
|
|
10
|
+
* `MinusToken` prefix unary, matching how the TypeScript factory itself emits
|
|
11
|
+
* negative numeric literals.
|
|
12
|
+
*/
|
|
13
|
+
export namespace ExpressionFactory {
|
|
14
|
+
export const number = (
|
|
15
|
+
value: number,
|
|
16
|
+
): NumericLiteral | PrefixUnaryExpression =>
|
|
17
|
+
value < 0
|
|
18
|
+
? factory.createPrefixUnaryExpression(
|
|
19
|
+
SyntaxKind.MinusToken,
|
|
20
|
+
factory.createNumericLiteral(Math.abs(value)),
|
|
21
|
+
)
|
|
22
|
+
: factory.createNumericLiteral(value);
|
|
23
|
+
}
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
const RegexCall = <Text extends string>(text: Text) =>
|
|
2
|
-
`${text}.test($input)` as const;
|
|
3
|
-
|
|
4
|
-
/** @reference https://github.dev/ajv-validator/ajv-formats/blob/master/src/formats.ts */
|
|
5
|
-
export const FormatCheatSheet = {
|
|
6
|
-
// SPECIAL CHARACTERS
|
|
7
|
-
byte: RegexCall(
|
|
8
|
-
`/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm`,
|
|
9
|
-
),
|
|
10
|
-
password: `true`,
|
|
11
|
-
regex: `(() => { try { new RegExp($input); return true; } catch { return false; } })()`,
|
|
12
|
-
uuid: RegexCall(
|
|
13
|
-
`/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i`,
|
|
14
|
-
),
|
|
15
|
-
|
|
16
|
-
// ADDRESSES
|
|
17
|
-
email: RegexCall(
|
|
18
|
-
`/^[a-z0-9!#$%&'*+/=?^_\`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_\`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i`,
|
|
19
|
-
),
|
|
20
|
-
hostname: RegexCall(
|
|
21
|
-
`/^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i`,
|
|
22
|
-
),
|
|
23
|
-
"idn-email": RegexCall(
|
|
24
|
-
`/^(([^<>()[\\]\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\"]+)*)|(\\".+\\"))@(([^<>()[\\]\\.,;:\\s@\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\"]{2,})$/i`,
|
|
25
|
-
),
|
|
26
|
-
"idn-hostname": RegexCall(
|
|
27
|
-
`/^([a-z0-9\\u00a1-\\uffff0-9]+(-[a-z0-9\\u00a1-\\uffff0-9]+)*\\.)+[a-z\\u00a1-\\uffff]{2,}$/i`,
|
|
28
|
-
),
|
|
29
|
-
iri: RegexCall(
|
|
30
|
-
`/^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020"<>\\\\^\`{|}]*$/u`,
|
|
31
|
-
),
|
|
32
|
-
"iri-reference": RegexCall(
|
|
33
|
-
`/^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020"<>\\\\^\`{|}]*$/u`,
|
|
34
|
-
),
|
|
35
|
-
ipv4: RegexCall(
|
|
36
|
-
`/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/`,
|
|
37
|
-
),
|
|
38
|
-
ipv6: RegexCall(
|
|
39
|
-
`/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i`,
|
|
40
|
-
),
|
|
41
|
-
uri: `${RegexCall(`/\\/|:/`)} && ${RegexCall(
|
|
42
|
-
`/^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`,
|
|
43
|
-
)}`,
|
|
44
|
-
"uri-reference": RegexCall(
|
|
45
|
-
`/^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`,
|
|
46
|
-
),
|
|
47
|
-
"uri-template": RegexCall(
|
|
48
|
-
`/^(?:(?:[^\\x00-\\x20"'<>%\\\\^\`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i`,
|
|
49
|
-
),
|
|
50
|
-
url: RegexCall(
|
|
51
|
-
`/^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu`,
|
|
52
|
-
),
|
|
53
|
-
|
|
54
|
-
// TIMESTAMPS
|
|
55
|
-
"date-time": RegexCall(
|
|
56
|
-
`/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(T|\\s)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i`,
|
|
57
|
-
),
|
|
58
|
-
date: RegexCall(`/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/`),
|
|
59
|
-
time: RegexCall(
|
|
60
|
-
`/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i`,
|
|
61
|
-
),
|
|
62
|
-
duration: RegexCall(
|
|
63
|
-
`/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/`,
|
|
64
|
-
),
|
|
65
|
-
|
|
66
|
-
// POINTERS
|
|
67
|
-
"json-pointer": RegexCall(`/^(?:\\/(?:[^~/]|~0|~1)*)*$/`),
|
|
68
|
-
"relative-json-pointer": RegexCall(
|
|
69
|
-
`/^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/`,
|
|
70
|
-
),
|
|
71
|
-
} as const;
|
|
1
|
+
const RegexCall = <Text extends string>(text: Text) =>
|
|
2
|
+
`${text}.test($input)` as const;
|
|
3
|
+
|
|
4
|
+
/** @reference https://github.dev/ajv-validator/ajv-formats/blob/master/src/formats.ts */
|
|
5
|
+
export const FormatCheatSheet = {
|
|
6
|
+
// SPECIAL CHARACTERS
|
|
7
|
+
byte: RegexCall(
|
|
8
|
+
`/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm`,
|
|
9
|
+
),
|
|
10
|
+
password: `true`,
|
|
11
|
+
regex: `(() => { try { new RegExp($input); return true; } catch { return false; } })()`,
|
|
12
|
+
uuid: RegexCall(
|
|
13
|
+
`/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i`,
|
|
14
|
+
),
|
|
15
|
+
|
|
16
|
+
// ADDRESSES
|
|
17
|
+
email: RegexCall(
|
|
18
|
+
`/^[a-z0-9!#$%&'*+/=?^_\`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_\`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i`,
|
|
19
|
+
),
|
|
20
|
+
hostname: RegexCall(
|
|
21
|
+
`/^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i`,
|
|
22
|
+
),
|
|
23
|
+
"idn-email": RegexCall(
|
|
24
|
+
`/^(([^<>()[\\]\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\"]+)*)|(\\".+\\"))@(([^<>()[\\]\\.,;:\\s@\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\"]{2,})$/i`,
|
|
25
|
+
),
|
|
26
|
+
"idn-hostname": RegexCall(
|
|
27
|
+
`/^([a-z0-9\\u00a1-\\uffff0-9]+(-[a-z0-9\\u00a1-\\uffff0-9]+)*\\.)+[a-z\\u00a1-\\uffff]{2,}$/i`,
|
|
28
|
+
),
|
|
29
|
+
iri: RegexCall(
|
|
30
|
+
`/^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020"<>\\\\^\`{|}]*$/u`,
|
|
31
|
+
),
|
|
32
|
+
"iri-reference": RegexCall(
|
|
33
|
+
`/^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020"<>\\\\^\`{|}]*$/u`,
|
|
34
|
+
),
|
|
35
|
+
ipv4: RegexCall(
|
|
36
|
+
`/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/`,
|
|
37
|
+
),
|
|
38
|
+
ipv6: RegexCall(
|
|
39
|
+
`/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i`,
|
|
40
|
+
),
|
|
41
|
+
uri: `${RegexCall(`/\\/|:/`)} && ${RegexCall(
|
|
42
|
+
`/^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`,
|
|
43
|
+
)}`,
|
|
44
|
+
"uri-reference": RegexCall(
|
|
45
|
+
`/^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`,
|
|
46
|
+
),
|
|
47
|
+
"uri-template": RegexCall(
|
|
48
|
+
`/^(?:(?:[^\\x00-\\x20"'<>%\\\\^\`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i`,
|
|
49
|
+
),
|
|
50
|
+
url: RegexCall(
|
|
51
|
+
`/^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu`,
|
|
52
|
+
),
|
|
53
|
+
|
|
54
|
+
// TIMESTAMPS
|
|
55
|
+
"date-time": RegexCall(
|
|
56
|
+
`/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(T|\\s)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i`,
|
|
57
|
+
),
|
|
58
|
+
date: RegexCall(`/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/`),
|
|
59
|
+
time: RegexCall(
|
|
60
|
+
`/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i`,
|
|
61
|
+
),
|
|
62
|
+
duration: RegexCall(
|
|
63
|
+
`/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/`,
|
|
64
|
+
),
|
|
65
|
+
|
|
66
|
+
// POINTERS
|
|
67
|
+
"json-pointer": RegexCall(`/^(?:\\/(?:[^~/]|~0|~1)*)*$/`),
|
|
68
|
+
"relative-json-pointer": RegexCall(
|
|
69
|
+
`/^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/`,
|
|
70
|
+
),
|
|
71
|
+
} as const;
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Expression,
|
|
3
|
-
type Identifier,
|
|
4
|
-
type ParameterDeclaration,
|
|
5
|
-
type StringLiteral,
|
|
6
|
-
SyntaxKind,
|
|
7
|
-
type Token,
|
|
8
|
-
type TypeNode,
|
|
9
|
-
factory,
|
|
10
|
-
} from "@ttsc/factory";
|
|
11
|
-
|
|
12
|
-
import { TypeFactory } from "./TypeFactory";
|
|
13
|
-
|
|
14
|
-
// Conservative "is this string a syntactically valid JavaScript variable
|
|
15
|
-
// name?" test, inlined to avoid pulling in @typia/utils' full namespace.
|
|
16
|
-
const VARIABLE_REGEX = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
17
|
-
const isVariableName = (str: string): boolean => VARIABLE_REGEX.test(str);
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Identifier and member-access helpers. The surface kept here is the subset
|
|
21
|
-
* nestia generators actually call (`identifier`, `access`, `parameter`).
|
|
22
|
-
*/
|
|
23
|
-
export namespace IdentifierFactory {
|
|
24
|
-
/**
|
|
25
|
-
* Build an identifier or string literal depending on whether `name` is a
|
|
26
|
-
* valid JavaScript identifier.
|
|
27
|
-
*/
|
|
28
|
-
export const identifier = (name: string): Identifier | StringLiteral =>
|
|
29
|
-
isVariableName(name)
|
|
30
|
-
? factory.createIdentifier(name)
|
|
31
|
-
: factory.createStringLiteral(name);
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Member access on `input` by `key`. Falls back to element access when the
|
|
35
|
-
* key is not a valid identifier.
|
|
36
|
-
*/
|
|
37
|
-
export const access = (
|
|
38
|
-
input: Expression,
|
|
39
|
-
key: string,
|
|
40
|
-
chain?: boolean,
|
|
41
|
-
): Expression => {
|
|
42
|
-
const postfix = identifier(key);
|
|
43
|
-
if (postfix.kind === "StringLiteral")
|
|
44
|
-
return chain === true
|
|
45
|
-
? factory.createElementAccessChain(
|
|
46
|
-
input,
|
|
47
|
-
factory.createToken(SyntaxKind.QuestionDotToken),
|
|
48
|
-
postfix,
|
|
49
|
-
)
|
|
50
|
-
: factory.createElementAccessExpression(input, postfix);
|
|
51
|
-
return chain === true
|
|
52
|
-
? factory.createPropertyAccessChain(
|
|
53
|
-
input,
|
|
54
|
-
factory.createToken(SyntaxKind.QuestionDotToken),
|
|
55
|
-
postfix,
|
|
56
|
-
)
|
|
57
|
-
: factory.createPropertyAccessExpression(input, postfix);
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Parameter declaration with default `any` type when the caller omits one.
|
|
62
|
-
* Passing a `QuestionToken` as `init` marks the parameter optional.
|
|
63
|
-
*/
|
|
64
|
-
export const parameter = (
|
|
65
|
-
name: string | Identifier,
|
|
66
|
-
type?: TypeNode,
|
|
67
|
-
init?: Expression | Token,
|
|
68
|
-
): ParameterDeclaration => {
|
|
69
|
-
const isQuestionToken =
|
|
70
|
-
!!init &&
|
|
71
|
-
init.kind === "Token" &&
|
|
72
|
-
(init as Token).token === SyntaxKind.QuestionToken;
|
|
73
|
-
return factory.createParameterDeclaration(
|
|
74
|
-
undefined,
|
|
75
|
-
undefined,
|
|
76
|
-
name,
|
|
77
|
-
isQuestionToken
|
|
78
|
-
? factory.createToken(SyntaxKind.QuestionToken)
|
|
79
|
-
: undefined,
|
|
80
|
-
type ?? TypeFactory.keyword("any"),
|
|
81
|
-
isQuestionToken ? undefined : (init as Expression | undefined),
|
|
82
|
-
);
|
|
83
|
-
};
|
|
84
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
type Expression,
|
|
3
|
+
type Identifier,
|
|
4
|
+
type ParameterDeclaration,
|
|
5
|
+
type StringLiteral,
|
|
6
|
+
SyntaxKind,
|
|
7
|
+
type Token,
|
|
8
|
+
type TypeNode,
|
|
9
|
+
factory,
|
|
10
|
+
} from "@ttsc/factory";
|
|
11
|
+
|
|
12
|
+
import { TypeFactory } from "./TypeFactory";
|
|
13
|
+
|
|
14
|
+
// Conservative "is this string a syntactically valid JavaScript variable
|
|
15
|
+
// name?" test, inlined to avoid pulling in @typia/utils' full namespace.
|
|
16
|
+
const VARIABLE_REGEX = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
17
|
+
const isVariableName = (str: string): boolean => VARIABLE_REGEX.test(str);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Identifier and member-access helpers. The surface kept here is the subset
|
|
21
|
+
* nestia generators actually call (`identifier`, `access`, `parameter`).
|
|
22
|
+
*/
|
|
23
|
+
export namespace IdentifierFactory {
|
|
24
|
+
/**
|
|
25
|
+
* Build an identifier or string literal depending on whether `name` is a
|
|
26
|
+
* valid JavaScript identifier.
|
|
27
|
+
*/
|
|
28
|
+
export const identifier = (name: string): Identifier | StringLiteral =>
|
|
29
|
+
isVariableName(name)
|
|
30
|
+
? factory.createIdentifier(name)
|
|
31
|
+
: factory.createStringLiteral(name);
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Member access on `input` by `key`. Falls back to element access when the
|
|
35
|
+
* key is not a valid identifier.
|
|
36
|
+
*/
|
|
37
|
+
export const access = (
|
|
38
|
+
input: Expression,
|
|
39
|
+
key: string,
|
|
40
|
+
chain?: boolean,
|
|
41
|
+
): Expression => {
|
|
42
|
+
const postfix = identifier(key);
|
|
43
|
+
if (postfix.kind === "StringLiteral")
|
|
44
|
+
return chain === true
|
|
45
|
+
? factory.createElementAccessChain(
|
|
46
|
+
input,
|
|
47
|
+
factory.createToken(SyntaxKind.QuestionDotToken),
|
|
48
|
+
postfix,
|
|
49
|
+
)
|
|
50
|
+
: factory.createElementAccessExpression(input, postfix);
|
|
51
|
+
return chain === true
|
|
52
|
+
? factory.createPropertyAccessChain(
|
|
53
|
+
input,
|
|
54
|
+
factory.createToken(SyntaxKind.QuestionDotToken),
|
|
55
|
+
postfix,
|
|
56
|
+
)
|
|
57
|
+
: factory.createPropertyAccessExpression(input, postfix);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Parameter declaration with default `any` type when the caller omits one.
|
|
62
|
+
* Passing a `QuestionToken` as `init` marks the parameter optional.
|
|
63
|
+
*/
|
|
64
|
+
export const parameter = (
|
|
65
|
+
name: string | Identifier,
|
|
66
|
+
type?: TypeNode,
|
|
67
|
+
init?: Expression | Token,
|
|
68
|
+
): ParameterDeclaration => {
|
|
69
|
+
const isQuestionToken =
|
|
70
|
+
!!init &&
|
|
71
|
+
init.kind === "Token" &&
|
|
72
|
+
(init as Token).token === SyntaxKind.QuestionToken;
|
|
73
|
+
return factory.createParameterDeclaration(
|
|
74
|
+
undefined,
|
|
75
|
+
undefined,
|
|
76
|
+
name,
|
|
77
|
+
isQuestionToken
|
|
78
|
+
? factory.createToken(SyntaxKind.QuestionToken)
|
|
79
|
+
: undefined,
|
|
80
|
+
type ?? TypeFactory.keyword("any"),
|
|
81
|
+
isQuestionToken ? undefined : (init as Expression | undefined),
|
|
82
|
+
);
|
|
83
|
+
};
|
|
84
|
+
}
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import { type Expression, factory } from "@ttsc/factory";
|
|
2
|
-
|
|
3
|
-
import { ExpressionFactory } from "./ExpressionFactory";
|
|
4
|
-
import { IdentifierFactory } from "./IdentifierFactory";
|
|
5
|
-
|
|
6
|
-
const PASSTHROUGH_KINDS = new Set<string>([
|
|
7
|
-
"ArrowFunction",
|
|
8
|
-
"CallExpression",
|
|
9
|
-
"Identifier",
|
|
10
|
-
]);
|
|
11
|
-
|
|
12
|
-
const isNode = (value: unknown): value is Expression =>
|
|
13
|
-
typeof value === "object" &&
|
|
14
|
-
value !== null &&
|
|
15
|
-
typeof (value as { kind?: unknown }).kind === "string";
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Recursive value-to-AST-literal builder. Hands back already-AST inputs
|
|
19
|
-
* unchanged (so callers can mix factory output with raw JS values inside the
|
|
20
|
-
* same object/array), and emits the appropriate literal node otherwise.
|
|
21
|
-
*/
|
|
22
|
-
export namespace LiteralFactory {
|
|
23
|
-
export const write = (input: any): Expression => {
|
|
24
|
-
if (input === null) return factory.createNull();
|
|
25
|
-
if (isNode(input) && PASSTHROUGH_KINDS.has(input.kind)) return input;
|
|
26
|
-
if (Array.isArray(input)) return writeArray(input);
|
|
27
|
-
if (typeof input === "object") return writeObject(input as object);
|
|
28
|
-
if (typeof input === "boolean")
|
|
29
|
-
return input ? factory.createTrue() : factory.createFalse();
|
|
30
|
-
if (typeof input === "number") return ExpressionFactory.number(input);
|
|
31
|
-
if (typeof input === "string") return factory.createStringLiteral(input);
|
|
32
|
-
if (typeof input === "bigint")
|
|
33
|
-
return factory.createStringLiteral(input.toString());
|
|
34
|
-
if (typeof input === "function")
|
|
35
|
-
return factory.createIdentifier("undefined");
|
|
36
|
-
throw new TypeError("LiteralFactory.write: unsupported input type.");
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const writeObject = (obj: object): Expression =>
|
|
40
|
-
factory.createObjectLiteralExpression(
|
|
41
|
-
Object.entries(obj)
|
|
42
|
-
.filter(([, value]) => value !== undefined)
|
|
43
|
-
.map(([key, value]) =>
|
|
44
|
-
factory.createPropertyAssignment(
|
|
45
|
-
IdentifierFactory.identifier(key),
|
|
46
|
-
write(value),
|
|
47
|
-
),
|
|
48
|
-
),
|
|
49
|
-
true,
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
const writeArray = (array: readonly any[]): Expression =>
|
|
53
|
-
factory.createArrayLiteralExpression(array.map(write), true);
|
|
54
|
-
}
|
|
1
|
+
import { type Expression, factory } from "@ttsc/factory";
|
|
2
|
+
|
|
3
|
+
import { ExpressionFactory } from "./ExpressionFactory";
|
|
4
|
+
import { IdentifierFactory } from "./IdentifierFactory";
|
|
5
|
+
|
|
6
|
+
const PASSTHROUGH_KINDS = new Set<string>([
|
|
7
|
+
"ArrowFunction",
|
|
8
|
+
"CallExpression",
|
|
9
|
+
"Identifier",
|
|
10
|
+
]);
|
|
11
|
+
|
|
12
|
+
const isNode = (value: unknown): value is Expression =>
|
|
13
|
+
typeof value === "object" &&
|
|
14
|
+
value !== null &&
|
|
15
|
+
typeof (value as { kind?: unknown }).kind === "string";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Recursive value-to-AST-literal builder. Hands back already-AST inputs
|
|
19
|
+
* unchanged (so callers can mix factory output with raw JS values inside the
|
|
20
|
+
* same object/array), and emits the appropriate literal node otherwise.
|
|
21
|
+
*/
|
|
22
|
+
export namespace LiteralFactory {
|
|
23
|
+
export const write = (input: any): Expression => {
|
|
24
|
+
if (input === null) return factory.createNull();
|
|
25
|
+
if (isNode(input) && PASSTHROUGH_KINDS.has(input.kind)) return input;
|
|
26
|
+
if (Array.isArray(input)) return writeArray(input);
|
|
27
|
+
if (typeof input === "object") return writeObject(input as object);
|
|
28
|
+
if (typeof input === "boolean")
|
|
29
|
+
return input ? factory.createTrue() : factory.createFalse();
|
|
30
|
+
if (typeof input === "number") return ExpressionFactory.number(input);
|
|
31
|
+
if (typeof input === "string") return factory.createStringLiteral(input);
|
|
32
|
+
if (typeof input === "bigint")
|
|
33
|
+
return factory.createStringLiteral(input.toString());
|
|
34
|
+
if (typeof input === "function")
|
|
35
|
+
return factory.createIdentifier("undefined");
|
|
36
|
+
throw new TypeError("LiteralFactory.write: unsupported input type.");
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const writeObject = (obj: object): Expression =>
|
|
40
|
+
factory.createObjectLiteralExpression(
|
|
41
|
+
Object.entries(obj)
|
|
42
|
+
.filter(([, value]) => value !== undefined)
|
|
43
|
+
.map(([key, value]) =>
|
|
44
|
+
factory.createPropertyAssignment(
|
|
45
|
+
IdentifierFactory.identifier(key),
|
|
46
|
+
write(value),
|
|
47
|
+
),
|
|
48
|
+
),
|
|
49
|
+
true,
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
const writeArray = (array: readonly any[]): Expression =>
|
|
53
|
+
factory.createArrayLiteralExpression(array.map(write), true);
|
|
54
|
+
}
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Expression,
|
|
3
|
-
NodeFlags,
|
|
4
|
-
type TypeNode,
|
|
5
|
-
type VariableStatement,
|
|
6
|
-
factory,
|
|
7
|
-
} from "@ttsc/factory";
|
|
8
|
-
|
|
9
|
-
import { TypeFactory } from "./TypeFactory";
|
|
10
|
-
|
|
11
|
-
/** Variable-statement helpers. `constant` emits `const`, `mut` emits `let`. */
|
|
12
|
-
export namespace StatementFactory {
|
|
13
|
-
export const mut = (props: {
|
|
14
|
-
name: string;
|
|
15
|
-
type?: TypeNode | undefined;
|
|
16
|
-
initializer?: Expression | undefined;
|
|
17
|
-
}): VariableStatement =>
|
|
18
|
-
factory.createVariableStatement(
|
|
19
|
-
undefined,
|
|
20
|
-
factory.createVariableDeclarationList(
|
|
21
|
-
[
|
|
22
|
-
factory.createVariableDeclaration(
|
|
23
|
-
props.name,
|
|
24
|
-
undefined,
|
|
25
|
-
props.type !== undefined
|
|
26
|
-
? props.type
|
|
27
|
-
: props.initializer === undefined
|
|
28
|
-
? TypeFactory.keyword("any")
|
|
29
|
-
: undefined,
|
|
30
|
-
props.initializer,
|
|
31
|
-
),
|
|
32
|
-
],
|
|
33
|
-
NodeFlags.Let,
|
|
34
|
-
),
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
export const constant = (props: {
|
|
38
|
-
name: string;
|
|
39
|
-
type?: TypeNode | undefined;
|
|
40
|
-
value?: Expression | undefined;
|
|
41
|
-
}): VariableStatement =>
|
|
42
|
-
factory.createVariableStatement(
|
|
43
|
-
undefined,
|
|
44
|
-
factory.createVariableDeclarationList(
|
|
45
|
-
[
|
|
46
|
-
factory.createVariableDeclaration(
|
|
47
|
-
props.name,
|
|
48
|
-
undefined,
|
|
49
|
-
props.type,
|
|
50
|
-
props.value,
|
|
51
|
-
),
|
|
52
|
-
],
|
|
53
|
-
NodeFlags.Const,
|
|
54
|
-
),
|
|
55
|
-
);
|
|
56
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
type Expression,
|
|
3
|
+
NodeFlags,
|
|
4
|
+
type TypeNode,
|
|
5
|
+
type VariableStatement,
|
|
6
|
+
factory,
|
|
7
|
+
} from "@ttsc/factory";
|
|
8
|
+
|
|
9
|
+
import { TypeFactory } from "./TypeFactory";
|
|
10
|
+
|
|
11
|
+
/** Variable-statement helpers. `constant` emits `const`, `mut` emits `let`. */
|
|
12
|
+
export namespace StatementFactory {
|
|
13
|
+
export const mut = (props: {
|
|
14
|
+
name: string;
|
|
15
|
+
type?: TypeNode | undefined;
|
|
16
|
+
initializer?: Expression | undefined;
|
|
17
|
+
}): VariableStatement =>
|
|
18
|
+
factory.createVariableStatement(
|
|
19
|
+
undefined,
|
|
20
|
+
factory.createVariableDeclarationList(
|
|
21
|
+
[
|
|
22
|
+
factory.createVariableDeclaration(
|
|
23
|
+
props.name,
|
|
24
|
+
undefined,
|
|
25
|
+
props.type !== undefined
|
|
26
|
+
? props.type
|
|
27
|
+
: props.initializer === undefined
|
|
28
|
+
? TypeFactory.keyword("any")
|
|
29
|
+
: undefined,
|
|
30
|
+
props.initializer,
|
|
31
|
+
),
|
|
32
|
+
],
|
|
33
|
+
NodeFlags.Let,
|
|
34
|
+
),
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
export const constant = (props: {
|
|
38
|
+
name: string;
|
|
39
|
+
type?: TypeNode | undefined;
|
|
40
|
+
value?: Expression | undefined;
|
|
41
|
+
}): VariableStatement =>
|
|
42
|
+
factory.createVariableStatement(
|
|
43
|
+
undefined,
|
|
44
|
+
factory.createVariableDeclarationList(
|
|
45
|
+
[
|
|
46
|
+
factory.createVariableDeclaration(
|
|
47
|
+
props.name,
|
|
48
|
+
undefined,
|
|
49
|
+
props.type,
|
|
50
|
+
props.value,
|
|
51
|
+
),
|
|
52
|
+
],
|
|
53
|
+
NodeFlags.Const,
|
|
54
|
+
),
|
|
55
|
+
);
|
|
56
|
+
}
|