@tsonic/emitter 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -0
- package/dist/adapter-generator.d.ts +28 -0
- package/dist/adapter-generator.d.ts.map +1 -0
- package/dist/adapter-generator.js +83 -0
- package/dist/adapter-generator.js.map +1 -0
- package/dist/array.test.d.ts +6 -0
- package/dist/array.test.d.ts.map +1 -0
- package/dist/array.test.js +274 -0
- package/dist/array.test.js.map +1 -0
- package/dist/async-investigation.test.d.ts +5 -0
- package/dist/async-investigation.test.d.ts.map +1 -0
- package/dist/async-investigation.test.js +239 -0
- package/dist/async-investigation.test.js.map +1 -0
- package/dist/constants.d.ts +15 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +22 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/exports.d.ts +10 -0
- package/dist/core/exports.d.ts.map +1 -0
- package/dist/core/exports.js +28 -0
- package/dist/core/exports.js.map +1 -0
- package/dist/core/imports.d.ts +26 -0
- package/dist/core/imports.d.ts.map +1 -0
- package/dist/core/imports.js +189 -0
- package/dist/core/imports.js.map +1 -0
- package/dist/core/imports.test.d.ts +6 -0
- package/dist/core/imports.test.d.ts.map +1 -0
- package/dist/core/imports.test.js +76 -0
- package/dist/core/imports.test.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/{src/core/index.ts → dist/core/index.js} +1 -1
- package/dist/core/index.js.map +1 -0
- package/dist/core/module-emitter/assembly.d.ts +21 -0
- package/dist/core/module-emitter/assembly.d.ts.map +1 -0
- package/dist/core/module-emitter/assembly.js +58 -0
- package/dist/core/module-emitter/assembly.js.map +1 -0
- package/dist/core/module-emitter/header.d.ts +10 -0
- package/dist/core/module-emitter/header.d.ts.map +1 -0
- package/dist/core/module-emitter/header.js +13 -0
- package/dist/core/module-emitter/header.js.map +1 -0
- package/{src/core/module-emitter/index.ts → dist/core/module-emitter/index.d.ts} +3 -10
- package/dist/core/module-emitter/index.d.ts.map +1 -0
- package/dist/core/module-emitter/index.js +10 -0
- package/dist/core/module-emitter/index.js.map +1 -0
- package/dist/core/module-emitter/namespace.d.ts +14 -0
- package/dist/core/module-emitter/namespace.d.ts.map +1 -0
- package/dist/core/module-emitter/namespace.js +26 -0
- package/dist/core/module-emitter/namespace.js.map +1 -0
- package/dist/core/module-emitter/orchestrator.d.ts +10 -0
- package/dist/core/module-emitter/orchestrator.d.ts.map +1 -0
- package/dist/core/module-emitter/orchestrator.js +58 -0
- package/dist/core/module-emitter/orchestrator.js.map +1 -0
- package/dist/core/module-emitter/separation.d.ts +14 -0
- package/dist/core/module-emitter/separation.d.ts.map +1 -0
- package/dist/core/module-emitter/separation.js +27 -0
- package/dist/core/module-emitter/separation.js.map +1 -0
- package/dist/core/module-emitter/static-container.d.ts +18 -0
- package/dist/core/module-emitter/static-container.d.ts.map +1 -0
- package/dist/core/module-emitter/static-container.js +49 -0
- package/dist/core/module-emitter/static-container.js.map +1 -0
- package/dist/core/module-emitter.d.ts +6 -0
- package/dist/core/module-emitter.d.ts.map +1 -0
- package/{src/core/module-emitter.ts → dist/core/module-emitter.js} +1 -1
- package/dist/core/module-emitter.js.map +1 -0
- package/dist/core/module-emitter.test.d.ts +6 -0
- package/dist/core/module-emitter.test.d.ts.map +1 -0
- package/dist/core/module-emitter.test.js +147 -0
- package/dist/core/module-emitter.test.js.map +1 -0
- package/dist/core/module-map.d.ts +35 -0
- package/dist/core/module-map.d.ts.map +1 -0
- package/dist/core/module-map.js +170 -0
- package/dist/core/module-map.js.map +1 -0
- package/dist/core/options.d.ts +9 -0
- package/dist/core/options.d.ts.map +1 -0
- package/dist/core/options.js +14 -0
- package/dist/core/options.js.map +1 -0
- package/dist/core/type-params.d.ts +9 -0
- package/dist/core/type-params.d.ts.map +1 -0
- package/dist/core/type-params.js +31 -0
- package/dist/core/type-params.js.map +1 -0
- package/dist/emitter-types/context.d.ts +29 -0
- package/dist/emitter-types/context.d.ts.map +1 -0
- package/dist/emitter-types/context.js +68 -0
- package/dist/emitter-types/context.js.map +1 -0
- package/dist/emitter-types/core.d.ts +129 -0
- package/dist/emitter-types/core.d.ts.map +1 -0
- package/dist/emitter-types/core.js +5 -0
- package/dist/emitter-types/core.js.map +1 -0
- package/dist/emitter-types/csharp-types.d.ts +27 -0
- package/dist/emitter-types/csharp-types.d.ts.map +1 -0
- package/dist/emitter-types/csharp-types.js +5 -0
- package/dist/emitter-types/csharp-types.js.map +1 -0
- package/dist/emitter-types/formatting.d.ts +9 -0
- package/dist/emitter-types/formatting.d.ts.map +1 -0
- package/dist/emitter-types/formatting.js +11 -0
- package/dist/emitter-types/formatting.js.map +1 -0
- package/dist/emitter-types/fqn.d.ts +53 -0
- package/dist/emitter-types/fqn.d.ts.map +1 -0
- package/dist/emitter-types/fqn.js +65 -0
- package/dist/emitter-types/fqn.js.map +1 -0
- package/dist/emitter-types/index.d.ts +9 -0
- package/dist/emitter-types/index.d.ts.map +1 -0
- package/dist/emitter-types/index.js +7 -0
- package/dist/emitter-types/index.js.map +1 -0
- package/dist/emitter.d.ts +27 -0
- package/dist/emitter.d.ts.map +1 -0
- package/dist/emitter.js +80 -0
- package/dist/emitter.js.map +1 -0
- package/dist/expression-emitter.d.ts +15 -0
- package/dist/expression-emitter.d.ts.map +1 -0
- package/dist/expression-emitter.js +67 -0
- package/dist/expression-emitter.js.map +1 -0
- package/dist/expressions/access.d.ts +12 -0
- package/dist/expressions/access.d.ts.map +1 -0
- package/dist/expressions/access.js +77 -0
- package/dist/expressions/access.js.map +1 -0
- package/dist/expressions/calls.d.ts +18 -0
- package/dist/expressions/calls.d.ts.map +1 -0
- package/dist/expressions/calls.js +207 -0
- package/dist/expressions/calls.js.map +1 -0
- package/dist/expressions/collections.d.ts +24 -0
- package/dist/expressions/collections.d.ts.map +1 -0
- package/dist/expressions/collections.js +254 -0
- package/dist/expressions/collections.js.map +1 -0
- package/dist/expressions/functions.d.ts +18 -0
- package/dist/expressions/functions.d.ts.map +1 -0
- package/dist/expressions/functions.js +60 -0
- package/dist/expressions/functions.js.map +1 -0
- package/dist/expressions/identifiers.d.ts +22 -0
- package/dist/expressions/identifiers.d.ts.map +1 -0
- package/dist/expressions/identifiers.js +99 -0
- package/dist/expressions/identifiers.js.map +1 -0
- package/dist/expressions/index.d.ts +12 -0
- package/dist/expressions/index.d.ts.map +1 -0
- package/{src/expressions/index.ts → dist/expressions/index.js} +3 -21
- package/dist/expressions/index.js.map +1 -0
- package/dist/expressions/index.test.d.ts +6 -0
- package/dist/expressions/index.test.d.ts.map +1 -0
- package/dist/expressions/index.test.js +480 -0
- package/dist/expressions/index.test.js.map +1 -0
- package/dist/expressions/literals.d.ts +31 -0
- package/dist/expressions/literals.d.ts.map +1 -0
- package/dist/expressions/literals.js +116 -0
- package/dist/expressions/literals.js.map +1 -0
- package/dist/expressions/operators.d.ts +52 -0
- package/dist/expressions/operators.d.ts.map +1 -0
- package/dist/expressions/operators.js +166 -0
- package/dist/expressions/operators.js.map +1 -0
- package/dist/expressions/other.d.ts +24 -0
- package/dist/expressions/other.d.ts.map +1 -0
- package/dist/expressions/other.js +43 -0
- package/dist/expressions/other.js.map +1 -0
- package/dist/generator-exchange.d.ts +11 -0
- package/dist/generator-exchange.d.ts.map +1 -0
- package/dist/generator-exchange.js +92 -0
- package/dist/generator-exchange.js.map +1 -0
- package/dist/generator.test.d.ts +6 -0
- package/dist/generator.test.d.ts.map +1 -0
- package/dist/generator.test.js +177 -0
- package/dist/generator.test.js.map +1 -0
- package/dist/golden-tests/config-parser.d.ts +9 -0
- package/dist/golden-tests/config-parser.d.ts.map +1 -0
- package/dist/golden-tests/config-parser.js +57 -0
- package/dist/golden-tests/config-parser.js.map +1 -0
- package/dist/golden-tests/discovery.d.ts +9 -0
- package/dist/golden-tests/discovery.d.ts.map +1 -0
- package/dist/golden-tests/discovery.js +51 -0
- package/dist/golden-tests/discovery.js.map +1 -0
- package/{src/golden-tests/index.ts → dist/golden-tests/index.d.ts} +1 -1
- package/dist/golden-tests/index.d.ts.map +1 -0
- package/dist/golden-tests/index.js +9 -0
- package/dist/golden-tests/index.js.map +1 -0
- package/dist/golden-tests/registration.d.ts +9 -0
- package/dist/golden-tests/registration.d.ts.map +1 -0
- package/dist/golden-tests/registration.js +23 -0
- package/dist/golden-tests/registration.js.map +1 -0
- package/dist/golden-tests/runner.d.ts +13 -0
- package/dist/golden-tests/runner.d.ts.map +1 -0
- package/dist/golden-tests/runner.js +99 -0
- package/dist/golden-tests/runner.js.map +1 -0
- package/dist/golden-tests/tree-builder.d.ts +9 -0
- package/dist/golden-tests/tree-builder.d.ts.map +1 -0
- package/dist/golden-tests/tree-builder.js +35 -0
- package/dist/golden-tests/tree-builder.js.map +1 -0
- package/dist/golden-tests/types.d.ts +19 -0
- package/dist/golden-tests/types.d.ts.map +1 -0
- package/dist/golden-tests/types.js +5 -0
- package/dist/golden-tests/types.js.map +1 -0
- package/dist/golden.test.d.ts +11 -0
- package/dist/golden.test.d.ts.map +1 -0
- package/{src/golden.test.ts → dist/golden.test.js} +15 -20
- package/dist/golden.test.js.map +1 -0
- package/dist/hierarchical-bindings.test.d.ts +6 -0
- package/dist/hierarchical-bindings.test.d.ts.map +1 -0
- package/dist/hierarchical-bindings.test.js +194 -0
- package/dist/hierarchical-bindings.test.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +2 -7
- package/dist/index.js.map +1 -0
- package/dist/integration.test.d.ts +6 -0
- package/dist/integration.test.d.ts.map +1 -0
- package/dist/integration.test.js +234 -0
- package/dist/integration.test.js.map +1 -0
- package/dist/specialization/call-site-rewriting.test.d.ts +6 -0
- package/dist/specialization/call-site-rewriting.test.d.ts.map +1 -0
- package/dist/specialization/call-site-rewriting.test.js +92 -0
- package/dist/specialization/call-site-rewriting.test.js.map +1 -0
- package/dist/specialization/collection/expressions.d.ts +10 -0
- package/dist/specialization/collection/expressions.d.ts.map +1 -0
- package/dist/specialization/collection/expressions.js +142 -0
- package/dist/specialization/collection/expressions.js.map +1 -0
- package/dist/specialization/collection/index.d.ts +7 -0
- package/dist/specialization/collection/index.d.ts.map +1 -0
- package/{src/specialization/collection/index.ts → dist/specialization/collection/index.js} +1 -1
- package/dist/specialization/collection/index.js.map +1 -0
- package/dist/specialization/collection/orchestrator.d.ts +11 -0
- package/dist/specialization/collection/orchestrator.d.ts.map +1 -0
- package/dist/specialization/collection/orchestrator.js +18 -0
- package/dist/specialization/collection/orchestrator.js.map +1 -0
- package/dist/specialization/collection/statements.d.ts +10 -0
- package/dist/specialization/collection/statements.d.ts.map +1 -0
- package/dist/specialization/collection/statements.js +75 -0
- package/dist/specialization/collection/statements.js.map +1 -0
- package/dist/specialization/collection.d.ts +6 -0
- package/dist/specialization/collection.d.ts.map +1 -0
- package/dist/specialization/collection.js +6 -0
- package/dist/specialization/collection.js.map +1 -0
- package/dist/specialization/generation.d.ts +11 -0
- package/dist/specialization/generation.d.ts.map +1 -0
- package/dist/specialization/generation.js +137 -0
- package/dist/specialization/generation.js.map +1 -0
- package/dist/specialization/generic-classes.test.d.ts +6 -0
- package/dist/specialization/generic-classes.test.d.ts.map +1 -0
- package/dist/specialization/generic-classes.test.js +55 -0
- package/dist/specialization/generic-classes.test.js.map +1 -0
- package/dist/specialization/generic-functions.test.d.ts +6 -0
- package/dist/specialization/generic-functions.test.d.ts.map +1 -0
- package/dist/specialization/generic-functions.test.js +275 -0
- package/dist/specialization/generic-functions.test.js.map +1 -0
- package/dist/specialization/helpers.d.ts +13 -0
- package/dist/specialization/helpers.d.ts.map +1 -0
- package/dist/specialization/helpers.js +33 -0
- package/dist/specialization/helpers.js.map +1 -0
- package/dist/specialization/index.d.ts +10 -0
- package/dist/specialization/index.d.ts.map +1 -0
- package/{src/specialization/index.ts → dist/specialization/index.js} +3 -17
- package/dist/specialization/index.js.map +1 -0
- package/dist/specialization/interfaces.test.d.ts +6 -0
- package/dist/specialization/interfaces.test.d.ts.map +1 -0
- package/dist/specialization/interfaces.test.js +139 -0
- package/dist/specialization/interfaces.test.js.map +1 -0
- package/dist/specialization/naming.d.ts +13 -0
- package/dist/specialization/naming.d.ts.map +1 -0
- package/dist/specialization/naming.js +25 -0
- package/dist/specialization/naming.js.map +1 -0
- package/dist/specialization/substitution.d.ts +17 -0
- package/dist/specialization/substitution.d.ts.map +1 -0
- package/dist/specialization/substitution.js +150 -0
- package/dist/specialization/substitution.js.map +1 -0
- package/dist/specialization/type-aliases.test.d.ts +6 -0
- package/dist/specialization/type-aliases.test.d.ts.map +1 -0
- package/dist/specialization/type-aliases.test.js +124 -0
- package/dist/specialization/type-aliases.test.js.map +1 -0
- package/dist/specialization/types.d.ts +14 -0
- package/dist/specialization/types.d.ts.map +1 -0
- package/dist/specialization/types.js +5 -0
- package/dist/specialization/types.js.map +1 -0
- package/{src/specialization-generator.ts → dist/specialization-generator.d.ts} +4 -15
- package/dist/specialization-generator.d.ts.map +1 -0
- package/dist/specialization-generator.js +11 -0
- package/dist/specialization-generator.js.map +1 -0
- package/dist/statement-emitter.d.ts +13 -0
- package/dist/statement-emitter.d.ts.map +1 -0
- package/dist/statement-emitter.js +67 -0
- package/dist/statement-emitter.js.map +1 -0
- package/dist/statements/blocks.d.ts +40 -0
- package/dist/statements/blocks.d.ts.map +1 -0
- package/dist/statements/blocks.js +86 -0
- package/dist/statements/blocks.js.map +1 -0
- package/{src/statements/classes/helpers.ts → dist/statements/classes/helpers.d.ts} +2 -3
- package/dist/statements/classes/helpers.d.ts.map +1 -0
- package/dist/statements/classes/helpers.js +8 -0
- package/dist/statements/classes/helpers.js.map +1 -0
- package/dist/statements/classes/index.d.ts +9 -0
- package/dist/statements/classes/index.d.ts.map +1 -0
- package/{src/statements/classes/index.ts → dist/statements/classes/index.js} +2 -6
- package/dist/statements/classes/index.js.map +1 -0
- package/dist/statements/classes/inline-types.d.ts +21 -0
- package/dist/statements/classes/inline-types.d.ts.map +1 -0
- package/dist/statements/classes/inline-types.js +50 -0
- package/dist/statements/classes/inline-types.js.map +1 -0
- package/dist/statements/classes/members/constructors.d.ts +12 -0
- package/dist/statements/classes/members/constructors.d.ts.map +1 -0
- package/dist/statements/classes/members/constructors.js +90 -0
- package/dist/statements/classes/members/constructors.js.map +1 -0
- package/dist/statements/classes/members/index.d.ts +8 -0
- package/dist/statements/classes/members/index.d.ts.map +1 -0
- package/{src/statements/classes/members/index.ts → dist/statements/classes/members/index.js} +1 -1
- package/dist/statements/classes/members/index.js.map +1 -0
- package/dist/statements/classes/members/methods.d.ts +12 -0
- package/dist/statements/classes/members/methods.d.ts.map +1 -0
- package/dist/statements/classes/members/methods.js +100 -0
- package/dist/statements/classes/members/methods.js.map +1 -0
- package/dist/statements/classes/members/orchestrator.d.ts +10 -0
- package/dist/statements/classes/members/orchestrator.d.ts.map +1 -0
- package/dist/statements/classes/members/orchestrator.js +24 -0
- package/dist/statements/classes/members/orchestrator.js.map +1 -0
- package/dist/statements/classes/members/properties.d.ts +12 -0
- package/dist/statements/classes/members/properties.d.ts.map +1 -0
- package/dist/statements/classes/members/properties.js +48 -0
- package/dist/statements/classes/members/properties.js.map +1 -0
- package/dist/statements/classes/members.d.ts +6 -0
- package/dist/statements/classes/members.d.ts.map +1 -0
- package/{src/statements/classes/members.ts → dist/statements/classes/members.js} +1 -1
- package/dist/statements/classes/members.js.map +1 -0
- package/dist/statements/classes/parameters.d.ts +10 -0
- package/dist/statements/classes/parameters.d.ts.map +1 -0
- package/dist/statements/classes/parameters.js +50 -0
- package/dist/statements/classes/parameters.js.map +1 -0
- package/dist/statements/classes/properties.d.ts +11 -0
- package/dist/statements/classes/properties.d.ts.map +1 -0
- package/dist/statements/classes/properties.js +74 -0
- package/dist/statements/classes/properties.js.map +1 -0
- package/dist/statements/classes.d.ts +6 -0
- package/dist/statements/classes.d.ts.map +1 -0
- package/dist/statements/classes.js +6 -0
- package/dist/statements/classes.js.map +1 -0
- package/dist/statements/control/conditionals.d.ts +18 -0
- package/dist/statements/control/conditionals.d.ts.map +1 -0
- package/dist/statements/control/conditionals.js +98 -0
- package/dist/statements/control/conditionals.js.map +1 -0
- package/dist/statements/control/exceptions.d.ts +18 -0
- package/dist/statements/control/exceptions.d.ts.map +1 -0
- package/dist/statements/control/exceptions.js +38 -0
- package/dist/statements/control/exceptions.js.map +1 -0
- package/dist/statements/control/index.d.ts +7 -0
- package/dist/statements/control/index.d.ts.map +1 -0
- package/{src/statements/control/index.ts → dist/statements/control/index.js} +2 -6
- package/dist/statements/control/index.js.map +1 -0
- package/dist/statements/control/loops.d.ts +29 -0
- package/dist/statements/control/loops.d.ts.map +1 -0
- package/dist/statements/control/loops.js +186 -0
- package/dist/statements/control/loops.js.map +1 -0
- package/dist/statements/control.d.ts +6 -0
- package/dist/statements/control.d.ts.map +1 -0
- package/dist/statements/control.js +6 -0
- package/dist/statements/control.js.map +1 -0
- package/dist/statements/declarations/classes.d.ts +12 -0
- package/dist/statements/declarations/classes.d.ts.map +1 -0
- package/dist/statements/declarations/classes.js +61 -0
- package/dist/statements/declarations/classes.js.map +1 -0
- package/dist/statements/declarations/enums.d.ts +12 -0
- package/dist/statements/declarations/enums.d.ts.map +1 -0
- package/dist/statements/declarations/enums.js +25 -0
- package/dist/statements/declarations/enums.js.map +1 -0
- package/dist/statements/declarations/functions.d.ts +12 -0
- package/dist/statements/declarations/functions.d.ts.map +1 -0
- package/dist/statements/declarations/functions.js +110 -0
- package/dist/statements/declarations/functions.js.map +1 -0
- package/dist/statements/declarations/index.d.ts +10 -0
- package/dist/statements/declarations/index.d.ts.map +1 -0
- package/{src/statements/declarations/index.ts → dist/statements/declarations/index.js} +1 -1
- package/dist/statements/declarations/index.js.map +1 -0
- package/dist/statements/declarations/interfaces.d.ts +12 -0
- package/dist/statements/declarations/interfaces.d.ts.map +1 -0
- package/dist/statements/declarations/interfaces.js +85 -0
- package/dist/statements/declarations/interfaces.js.map +1 -0
- package/dist/statements/declarations/structs.test.d.ts +5 -0
- package/dist/statements/declarations/structs.test.d.ts.map +1 -0
- package/dist/statements/declarations/structs.test.js +165 -0
- package/dist/statements/declarations/structs.test.js.map +1 -0
- package/dist/statements/declarations/type-aliases.d.ts +12 -0
- package/dist/statements/declarations/type-aliases.d.ts.map +1 -0
- package/dist/statements/declarations/type-aliases.js +80 -0
- package/dist/statements/declarations/type-aliases.js.map +1 -0
- package/dist/statements/declarations/variables.d.ts +12 -0
- package/dist/statements/declarations/variables.d.ts.map +1 -0
- package/dist/statements/declarations/variables.js +120 -0
- package/dist/statements/declarations/variables.js.map +1 -0
- package/dist/statements/declarations.d.ts +6 -0
- package/dist/statements/declarations.d.ts.map +1 -0
- package/dist/statements/declarations.js +6 -0
- package/dist/statements/declarations.js.map +1 -0
- package/dist/statements/index.d.ts +8 -0
- package/dist/statements/index.d.ts.map +1 -0
- package/dist/statements/index.js +12 -0
- package/dist/statements/index.js.map +1 -0
- package/dist/statements/index.test.d.ts +6 -0
- package/dist/statements/index.test.d.ts.map +1 -0
- package/dist/statements/index.test.js +248 -0
- package/dist/statements/index.test.js.map +1 -0
- package/dist/tests/emitter/expression-emission.test.d.ts +6 -0
- package/dist/tests/emitter/expression-emission.test.d.ts.map +1 -0
- package/dist/tests/emitter/expression-emission.test.js +322 -0
- package/dist/tests/emitter/expression-emission.test.js.map +1 -0
- package/dist/tests/emitter/import-handling.test.d.ts +6 -0
- package/dist/tests/emitter/import-handling.test.d.ts.map +1 -0
- package/dist/tests/emitter/import-handling.test.js +76 -0
- package/dist/tests/emitter/import-handling.test.js.map +1 -0
- package/dist/tests/emitter/module-generation.test.d.ts +6 -0
- package/dist/tests/emitter/module-generation.test.d.ts.map +1 -0
- package/dist/tests/emitter/module-generation.test.js +147 -0
- package/dist/tests/emitter/module-generation.test.js.map +1 -0
- package/dist/tests/emitter/statement-emission.test.d.ts +6 -0
- package/dist/tests/emitter/statement-emission.test.d.ts.map +1 -0
- package/dist/tests/emitter/statement-emission.test.js +138 -0
- package/dist/tests/emitter/statement-emission.test.js.map +1 -0
- package/dist/tests/emitter/type-emission.test.d.ts +6 -0
- package/dist/tests/emitter/type-emission.test.d.ts.map +1 -0
- package/dist/tests/emitter/type-emission.test.js +109 -0
- package/dist/tests/emitter/type-emission.test.js.map +1 -0
- package/dist/tests/generics/call-site-rewriting.test.d.ts +6 -0
- package/dist/tests/generics/call-site-rewriting.test.d.ts.map +1 -0
- package/dist/tests/generics/call-site-rewriting.test.js +92 -0
- package/dist/tests/generics/call-site-rewriting.test.js.map +1 -0
- package/dist/tests/generics/generic-classes.test.d.ts +6 -0
- package/dist/tests/generics/generic-classes.test.d.ts.map +1 -0
- package/dist/tests/generics/generic-classes.test.js +55 -0
- package/dist/tests/generics/generic-classes.test.js.map +1 -0
- package/dist/tests/generics/generic-functions.test.d.ts +6 -0
- package/dist/tests/generics/generic-functions.test.d.ts.map +1 -0
- package/dist/tests/generics/generic-functions.test.js +275 -0
- package/dist/tests/generics/generic-functions.test.js.map +1 -0
- package/dist/tests/generics/interfaces.test.d.ts +6 -0
- package/dist/tests/generics/interfaces.test.d.ts.map +1 -0
- package/dist/tests/generics/interfaces.test.js +139 -0
- package/dist/tests/generics/interfaces.test.js.map +1 -0
- package/dist/tests/generics/type-aliases.test.d.ts +6 -0
- package/dist/tests/generics/type-aliases.test.d.ts.map +1 -0
- package/dist/tests/generics/type-aliases.test.js +124 -0
- package/dist/tests/generics/type-aliases.test.js.map +1 -0
- package/dist/tests/hierarchical-bindings-full-pipeline.test.d.ts +6 -0
- package/dist/tests/hierarchical-bindings-full-pipeline.test.d.ts.map +1 -0
- package/dist/tests/hierarchical-bindings-full-pipeline.test.js +202 -0
- package/dist/tests/hierarchical-bindings-full-pipeline.test.js.map +1 -0
- package/dist/tests/ref-out-parameters.test.d.ts +5 -0
- package/dist/tests/ref-out-parameters.test.d.ts.map +1 -0
- package/dist/tests/ref-out-parameters.test.js +136 -0
- package/dist/tests/ref-out-parameters.test.js.map +1 -0
- package/dist/tests/structs/struct-emission.test.d.ts +5 -0
- package/dist/tests/structs/struct-emission.test.d.ts.map +1 -0
- package/dist/tests/structs/struct-emission.test.js +165 -0
- package/dist/tests/structs/struct-emission.test.js.map +1 -0
- package/dist/type-assertion.test.d.ts +6 -0
- package/dist/type-assertion.test.d.ts.map +1 -0
- package/dist/type-assertion.test.js +133 -0
- package/dist/type-assertion.test.js.map +1 -0
- package/dist/type-emitter.d.ts +6 -0
- package/dist/type-emitter.d.ts.map +1 -0
- package/dist/type-emitter.js +6 -0
- package/dist/type-emitter.js.map +1 -0
- package/dist/types/arrays.d.ts +12 -0
- package/dist/types/arrays.d.ts.map +1 -0
- package/dist/types/arrays.js +15 -0
- package/dist/types/arrays.js.map +1 -0
- package/dist/types/dictionaries.d.ts +17 -0
- package/dist/types/dictionaries.d.ts.map +1 -0
- package/dist/types/dictionaries.js +37 -0
- package/dist/types/dictionaries.js.map +1 -0
- package/dist/types/emitter.d.ts +10 -0
- package/dist/types/emitter.d.ts.map +1 -0
- package/dist/types/emitter.js +53 -0
- package/dist/types/emitter.js.map +1 -0
- package/dist/types/functions.d.ts +12 -0
- package/dist/types/functions.d.ts.map +1 -0
- package/dist/types/functions.js +34 -0
- package/dist/types/functions.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/{src/types/index.ts → dist/types/index.js} +1 -1
- package/dist/types/index.js.map +1 -0
- package/dist/types/index.test.d.ts +6 -0
- package/dist/types/index.test.d.ts.map +1 -0
- package/dist/types/index.test.js +109 -0
- package/dist/types/index.test.js.map +1 -0
- package/dist/types/intersections.d.ts +12 -0
- package/dist/types/intersections.d.ts.map +1 -0
- package/dist/types/intersections.js +13 -0
- package/dist/types/intersections.js.map +1 -0
- package/dist/types/literals.d.ts +12 -0
- package/dist/types/literals.d.ts.map +1 -0
- package/dist/types/literals.js +20 -0
- package/dist/types/literals.js.map +1 -0
- package/{src/types/objects.ts → dist/types/objects.d.ts} +4 -11
- package/dist/types/objects.d.ts.map +1 -0
- package/dist/types/objects.js +19 -0
- package/dist/types/objects.js.map +1 -0
- package/dist/types/parameters.d.ts +15 -0
- package/dist/types/parameters.d.ts.map +1 -0
- package/dist/types/parameters.js +69 -0
- package/dist/types/parameters.js.map +1 -0
- package/dist/types/parameters.test.d.ts +5 -0
- package/dist/types/parameters.test.d.ts.map +1 -0
- package/dist/types/parameters.test.js +135 -0
- package/dist/types/parameters.test.js.map +1 -0
- package/dist/types/primitives.d.ts +12 -0
- package/dist/types/primitives.d.ts.map +1 -0
- package/dist/types/primitives.js +17 -0
- package/dist/types/primitives.js.map +1 -0
- package/dist/types/references.d.ts +14 -0
- package/dist/types/references.d.ts.map +1 -0
- package/dist/types/references.js +154 -0
- package/dist/types/references.js.map +1 -0
- package/dist/types/unions.d.ts +12 -0
- package/dist/types/unions.d.ts.map +1 -0
- package/dist/types/unions.js +45 -0
- package/dist/types/unions.js.map +1 -0
- package/dist/types/unions.test.d.ts +6 -0
- package/dist/types/unions.test.d.ts.map +1 -0
- package/dist/types/unions.test.js +367 -0
- package/dist/types/unions.test.js.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/union.test.d.ts +6 -0
- package/dist/union.test.d.ts.map +1 -0
- package/dist/union.test.js +367 -0
- package/dist/union.test.js.map +1 -0
- package/package.json +5 -2
- package/scripts/update-golden-tests.ts +0 -119
- package/src/adapter-generator.ts +0 -112
- package/src/array.test.ts +0 -301
- package/src/constants.ts +0 -32
- package/src/core/exports.ts +0 -36
- package/src/core/imports.test.ts +0 -83
- package/src/core/imports.ts +0 -243
- package/src/core/module-emitter/assembly.ts +0 -83
- package/src/core/module-emitter/header.ts +0 -19
- package/src/core/module-emitter/namespace.ts +0 -39
- package/src/core/module-emitter/orchestrator.ts +0 -98
- package/src/core/module-emitter/separation.ts +0 -41
- package/src/core/module-emitter/static-container.ts +0 -75
- package/src/core/module-emitter.test.ts +0 -154
- package/src/core/module-map.ts +0 -218
- package/src/core/options.ts +0 -16
- package/src/core/type-params.ts +0 -34
- package/src/emitter-types/context.ts +0 -91
- package/src/emitter-types/core.ts +0 -138
- package/src/emitter-types/csharp-types.ts +0 -42
- package/src/emitter-types/formatting.ts +0 -13
- package/src/emitter-types/fqn.ts +0 -81
- package/src/emitter-types/index.ts +0 -31
- package/src/emitter.ts +0 -107
- package/src/expression-emitter.ts +0 -112
- package/src/expressions/access.ts +0 -104
- package/src/expressions/calls.ts +0 -264
- package/src/expressions/collections.ts +0 -354
- package/src/expressions/functions.ts +0 -71
- package/src/expressions/identifiers.ts +0 -125
- package/src/expressions/index.test.ts +0 -515
- package/src/expressions/literals.ts +0 -138
- package/src/expressions/operators.ts +0 -211
- package/src/expressions/other.ts +0 -63
- package/src/generator-exchange.ts +0 -120
- package/src/generator.test.ts +0 -193
- package/src/golden-tests/config-parser.ts +0 -67
- package/src/golden-tests/discovery.ts +0 -61
- package/src/golden-tests/registration.ts +0 -26
- package/src/golden-tests/runner.ts +0 -131
- package/src/golden-tests/tree-builder.ts +0 -43
- package/src/golden-tests/types.ts +0 -21
- package/src/hierarchical-bindings.test.ts +0 -258
- package/src/integration.test.ts +0 -303
- package/src/specialization/call-site-rewriting.test.ts +0 -99
- package/src/specialization/collection/expressions.ts +0 -184
- package/src/specialization/collection/orchestrator.ts +0 -25
- package/src/specialization/collection/statements.ts +0 -91
- package/src/specialization/collection.ts +0 -10
- package/src/specialization/generation.ts +0 -189
- package/src/specialization/generic-classes.test.ts +0 -59
- package/src/specialization/generic-functions.test.ts +0 -292
- package/src/specialization/helpers.ts +0 -39
- package/src/specialization/interfaces.test.ts +0 -151
- package/src/specialization/naming.ts +0 -34
- package/src/specialization/substitution.ts +0 -186
- package/src/specialization/type-aliases.test.ts +0 -134
- package/src/specialization/types.ts +0 -19
- package/src/statement-emitter.ts +0 -117
- package/src/statements/blocks.ts +0 -115
- package/src/statements/classes/inline-types.ts +0 -79
- package/src/statements/classes/members/constructors.ts +0 -123
- package/src/statements/classes/members/methods.ts +0 -137
- package/src/statements/classes/members/orchestrator.ts +0 -33
- package/src/statements/classes/members/properties.ts +0 -62
- package/src/statements/classes/parameters.ts +0 -69
- package/src/statements/classes/properties.ts +0 -95
- package/src/statements/classes.ts +0 -14
- package/src/statements/control/conditionals.ts +0 -134
- package/src/statements/control/exceptions.ts +0 -59
- package/src/statements/control/loops.ts +0 -250
- package/src/statements/control.ts +0 -14
- package/src/statements/declarations/classes.ts +0 -89
- package/src/statements/declarations/enums.ts +0 -32
- package/src/statements/declarations/functions.ts +0 -147
- package/src/statements/declarations/interfaces.ts +0 -116
- package/src/statements/declarations/structs.test.ts +0 -182
- package/src/statements/declarations/type-aliases.ts +0 -104
- package/src/statements/declarations/variables.ts +0 -159
- package/src/statements/declarations.ts +0 -13
- package/src/statements/index.test.ts +0 -258
- package/src/statements/index.ts +0 -43
- package/src/type-assertion.test.ts +0 -143
- package/src/type-emitter.ts +0 -18
- package/src/types/arrays.ts +0 -21
- package/src/types/dictionaries.ts +0 -52
- package/src/types/emitter.ts +0 -76
- package/src/types/functions.ts +0 -45
- package/src/types/index.test.ts +0 -116
- package/src/types/intersections.ts +0 -19
- package/src/types/literals.ts +0 -26
- package/src/types/parameters.test.ts +0 -146
- package/src/types/parameters.ts +0 -95
- package/src/types/primitives.ts +0 -24
- package/src/types/references.ts +0 -187
- package/src/types/unions.test.ts +0 -397
- package/src/types/unions.ts +0 -62
- package/src/types.ts +0 -33
- package/testcases/README.md +0 -213
- package/testcases/arrays/basic/ArrayLiteral.ts +0 -4
- package/testcases/arrays/basic/config.yaml +0 -1
- package/testcases/arrays/destructuring/ArrayDestructure.ts +0 -4
- package/testcases/arrays/destructuring/config.yaml +0 -1
- package/testcases/arrays/methods/ArrayMethods.ts +0 -6
- package/testcases/arrays/methods/config.yaml +0 -1
- package/testcases/arrays/multidimensional/MultiDimensional.ts +0 -10
- package/testcases/arrays/multidimensional/config.yaml +0 -1
- package/testcases/arrays/spread/ArraySpread.ts +0 -3
- package/testcases/arrays/spread/config.yaml +0 -1
- package/testcases/async/basic/AsyncFunction.ts +0 -5
- package/testcases/async/basic/config.yaml +0 -1
- package/testcases/classes/abstract/AbstractClasses.ts +0 -53
- package/testcases/classes/abstract/config.yaml +0 -1
- package/testcases/classes/basic/Person.ts +0 -12
- package/testcases/classes/basic/config.yaml +0 -1
- package/testcases/classes/constructor/User.ts +0 -11
- package/testcases/classes/constructor/config.yaml +0 -1
- package/testcases/classes/field-inference/Counter.ts +0 -11
- package/testcases/classes/field-inference/config.yaml +0 -1
- package/testcases/classes/inheritance/Inheritance.ts +0 -24
- package/testcases/classes/inheritance/config.yaml +0 -1
- package/testcases/classes/static-members/MathHelper.ts +0 -12
- package/testcases/classes/static-members/config.yaml +0 -1
- package/testcases/control-flow/error-handling/ErrorHandling.ts +0 -13
- package/testcases/control-flow/error-handling/config.yaml +0 -1
- package/testcases/control-flow/loops/Loops.ts +0 -21
- package/testcases/control-flow/loops/config.yaml +0 -1
- package/testcases/control-flow/switch/SwitchStatement.ts +0 -15
- package/testcases/control-flow/switch/config.yaml +0 -1
- package/testcases/edge-cases/complex-expressions/ComplexExpressions.ts +0 -10
- package/testcases/edge-cases/complex-expressions/config.yaml +0 -1
- package/testcases/edge-cases/nested-scopes/NestedScopes.ts +0 -10
- package/testcases/edge-cases/nested-scopes/config.yaml +0 -1
- package/testcases/edge-cases/shadowing/Shadowing.ts +0 -16
- package/testcases/edge-cases/shadowing/config.yaml +0 -1
- package/testcases/functions/arrow/ArrowFunction.ts +0 -5
- package/testcases/functions/arrow/config.yaml +0 -1
- package/testcases/functions/basic/Greet.ts +0 -3
- package/testcases/functions/basic/config.yaml +0 -1
- package/testcases/functions/closures/Closures.ts +0 -11
- package/testcases/functions/closures/config.yaml +0 -1
- package/testcases/functions/default-params/DefaultParams.ts +0 -7
- package/testcases/functions/default-params/config.yaml +0 -1
- package/testcases/functions/rest-params/RestParams.ts +0 -7
- package/testcases/functions/rest-params/config.yaml +0 -1
- package/testcases/functions/type-guards/TypeGuards.ts +0 -52
- package/testcases/functions/type-guards/config.yaml +0 -1
- package/testcases/operators/logical/LogicalOperators.ts +0 -11
- package/testcases/operators/logical/config.yaml +0 -1
- package/testcases/operators/nullish-coalescing/NullishCoalescing.ts +0 -7
- package/testcases/operators/nullish-coalescing/config.yaml +0 -1
- package/testcases/operators/optional-chaining/OptionalChaining.ts +0 -15
- package/testcases/operators/optional-chaining/config.yaml +0 -1
- package/testcases/real-world/advanced-generics/advanced-generics.ts +0 -116
- package/testcases/real-world/advanced-generics/config.yaml +0 -1
- package/testcases/real-world/async-ops/async-ops.ts +0 -67
- package/testcases/real-world/async-ops/config.yaml +0 -1
- package/testcases/real-world/business-logic/business-logic.ts +0 -215
- package/testcases/real-world/business-logic/config.yaml +0 -1
- package/testcases/real-world/calculator/calculator.ts +0 -29
- package/testcases/real-world/calculator/config.yaml +0 -1
- package/testcases/real-world/data-structures/config.yaml +0 -1
- package/testcases/real-world/data-structures/data-structures.ts +0 -133
- package/testcases/real-world/functional/config.yaml +0 -1
- package/testcases/real-world/functional/functional.ts +0 -116
- package/testcases/real-world/shapes/config.yaml +0 -1
- package/testcases/real-world/shapes/shapes.ts +0 -87
- package/testcases/real-world/string-utils/config.yaml +0 -1
- package/testcases/real-world/string-utils/string-utils.ts +0 -47
- package/testcases/real-world/todo-list/config.yaml +0 -1
- package/testcases/real-world/todo-list/todo-list.ts +0 -52
- package/testcases/real-world/type-guards/config.yaml +0 -1
- package/testcases/real-world/type-guards/type-guards.ts +0 -71
- package/testcases/structs/basic/Point.ts +0 -9
- package/testcases/structs/basic/config.yaml +0 -1
- package/testcases/types/conditional/ConditionalTypes.ts +0 -35
- package/testcases/types/conditional/config.yaml +0 -1
- package/testcases/types/constants/ModuleConstants.ts +0 -6
- package/testcases/types/constants/config.yaml +0 -1
- package/testcases/types/generics/Generics.ts +0 -15
- package/testcases/types/generics/config.yaml +0 -1
- package/testcases/types/interfaces/Interfaces.ts +0 -14
- package/testcases/types/interfaces/config.yaml +0 -1
- package/testcases/types/mapped/MappedTypes.ts +0 -27
- package/testcases/types/mapped/config.yaml +0 -1
- package/testcases/types/tuples-intersections/TuplesAndIntersections.ts +0 -46
- package/testcases/types/tuples-intersections/config.yaml +0 -1
- package/testcases/types/unions/UnionTypes.ts +0 -11
- package/testcases/types/unions/config.yaml +0 -1
- package/tsconfig.json +0 -14
package/src/core/module-map.ts
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Module map for resolving cross-file imports
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { IrModule, Diagnostic } from "@tsonic/frontend";
|
|
6
|
-
import type {
|
|
7
|
-
ModuleIdentity,
|
|
8
|
-
ModuleMap,
|
|
9
|
-
ExportSource,
|
|
10
|
-
ExportMap,
|
|
11
|
-
} from "../emitter-types/core.js";
|
|
12
|
-
|
|
13
|
-
// Re-export types for backward compatibility
|
|
14
|
-
export type { ModuleIdentity, ModuleMap, ExportSource, ExportMap };
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Normalize a file path for use as module map key
|
|
18
|
-
* - Convert backslashes to forward slashes
|
|
19
|
-
* - Remove .ts extension if present
|
|
20
|
-
* - Normalize . and .. segments
|
|
21
|
-
*/
|
|
22
|
-
export const canonicalizeFilePath = (filePath: string): string => {
|
|
23
|
-
// Normalize slashes
|
|
24
|
-
let normalized = filePath.replace(/\\/g, "/");
|
|
25
|
-
|
|
26
|
-
// Remove .ts extension
|
|
27
|
-
if (normalized.endsWith(".ts")) {
|
|
28
|
-
normalized = normalized.slice(0, -3);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// Split into segments and resolve . and ..
|
|
32
|
-
const segments: string[] = [];
|
|
33
|
-
for (const segment of normalized.split("/")) {
|
|
34
|
-
if (segment === "" || segment === ".") {
|
|
35
|
-
continue; // Skip empty and current directory
|
|
36
|
-
} else if (segment === "..") {
|
|
37
|
-
segments.pop(); // Go up one directory
|
|
38
|
-
} else {
|
|
39
|
-
segments.push(segment);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return segments.join("/");
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Result of building module map
|
|
48
|
-
*/
|
|
49
|
-
export type ModuleMapResult =
|
|
50
|
-
| {
|
|
51
|
-
readonly ok: true;
|
|
52
|
-
readonly value: ModuleMap;
|
|
53
|
-
readonly exportMap: ExportMap;
|
|
54
|
-
}
|
|
55
|
-
| { readonly ok: false; readonly errors: readonly Diagnostic[] };
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Build module map from IR modules.
|
|
59
|
-
* Returns an error if any two files in the same namespace have the same
|
|
60
|
-
* normalized class name (e.g., api-client.ts and apiclient.ts both map to "apiclient").
|
|
61
|
-
*/
|
|
62
|
-
export const buildModuleMap = (
|
|
63
|
-
modules: readonly IrModule[]
|
|
64
|
-
): ModuleMapResult => {
|
|
65
|
-
const map = new Map<string, ModuleIdentity>();
|
|
66
|
-
const errors: Diagnostic[] = [];
|
|
67
|
-
|
|
68
|
-
// Group modules by namespace to detect class name collisions
|
|
69
|
-
const byNamespace = new Map<string, IrModule[]>();
|
|
70
|
-
for (const module of modules) {
|
|
71
|
-
const existing = byNamespace.get(module.namespace) ?? [];
|
|
72
|
-
byNamespace.set(module.namespace, [...existing, module]);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Check for collisions within each namespace
|
|
76
|
-
for (const [namespace, nsModules] of byNamespace) {
|
|
77
|
-
const byClassName = new Map<string, IrModule[]>();
|
|
78
|
-
for (const module of nsModules) {
|
|
79
|
-
const existing = byClassName.get(module.className) ?? [];
|
|
80
|
-
byClassName.set(module.className, [...existing, module]);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Report collisions
|
|
84
|
-
for (const [className, colliding] of byClassName) {
|
|
85
|
-
if (colliding.length > 1) {
|
|
86
|
-
const fileNames = colliding
|
|
87
|
-
.map((m) => `'${m.filePath.split("/").pop()}'`)
|
|
88
|
-
.join(" and ");
|
|
89
|
-
errors.push({
|
|
90
|
-
code: "TSN9001",
|
|
91
|
-
message: `File name collision after normalization: ${fileNames} both map to class '${className}' in namespace '${namespace}'. Rename one file.`,
|
|
92
|
-
severity: "error",
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
if (errors.length > 0) {
|
|
99
|
-
return { ok: false, errors };
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Build the map
|
|
103
|
-
for (const module of modules) {
|
|
104
|
-
const canonicalPath = canonicalizeFilePath(module.filePath);
|
|
105
|
-
map.set(canonicalPath, {
|
|
106
|
-
namespace: module.namespace,
|
|
107
|
-
className: module.className,
|
|
108
|
-
filePath: canonicalPath,
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// Build the export map
|
|
113
|
-
const exportMap = buildExportMap(modules);
|
|
114
|
-
|
|
115
|
-
return { ok: true, value: map, exportMap };
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Build export map from IR modules.
|
|
120
|
-
* Maps (modulePath, exportName) -> actual source for re-exports.
|
|
121
|
-
*/
|
|
122
|
-
const buildExportMap = (modules: readonly IrModule[]): ExportMap => {
|
|
123
|
-
const exportMap = new Map<string, ExportSource>();
|
|
124
|
-
|
|
125
|
-
// First pass: collect all re-exports
|
|
126
|
-
for (const module of modules) {
|
|
127
|
-
const modulePath = canonicalizeFilePath(module.filePath);
|
|
128
|
-
|
|
129
|
-
for (const exp of module.exports) {
|
|
130
|
-
if (exp.kind === "reexport") {
|
|
131
|
-
// Resolve the source module path
|
|
132
|
-
const sourcePath = resolveImportPath(module.filePath, exp.fromModule);
|
|
133
|
-
const key = `${modulePath}:${exp.name}`;
|
|
134
|
-
exportMap.set(key, {
|
|
135
|
-
sourceFile: sourcePath,
|
|
136
|
-
sourceName: exp.originalName,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Second pass: resolve transitive re-exports
|
|
143
|
-
// Keep resolving until no changes (handles chains like A re-exports from B re-exports from C)
|
|
144
|
-
const resolveTransitive = (): boolean => {
|
|
145
|
-
let changed = false;
|
|
146
|
-
|
|
147
|
-
for (const [key, source] of exportMap) {
|
|
148
|
-
const transitiveKey = `${source.sourceFile}:${source.sourceName}`;
|
|
149
|
-
const transitiveSource = exportMap.get(transitiveKey);
|
|
150
|
-
|
|
151
|
-
if (transitiveSource) {
|
|
152
|
-
// This is a transitive re-export - update to point to the actual source
|
|
153
|
-
exportMap.set(key, transitiveSource);
|
|
154
|
-
changed = true;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
return changed;
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
// Resolve transitive re-exports (max 10 iterations to prevent infinite loops)
|
|
162
|
-
for (let i = 0; i < 10 && resolveTransitive(); i++) {
|
|
163
|
-
// Keep resolving
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
return exportMap;
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Resolve a relative import path to a canonical file path
|
|
171
|
-
*/
|
|
172
|
-
export const resolveImportPath = (
|
|
173
|
-
currentFilePath: string,
|
|
174
|
-
importSource: string
|
|
175
|
-
): string => {
|
|
176
|
-
// Normalize current file path
|
|
177
|
-
const currentCanonical = canonicalizeFilePath(currentFilePath);
|
|
178
|
-
|
|
179
|
-
// Get directory of current file
|
|
180
|
-
const lastSlash = currentCanonical.lastIndexOf("/");
|
|
181
|
-
const currentDir = lastSlash >= 0 ? currentCanonical.slice(0, lastSlash) : "";
|
|
182
|
-
|
|
183
|
-
// Normalize import source
|
|
184
|
-
let source = importSource.replace(/\\/g, "/");
|
|
185
|
-
|
|
186
|
-
// Remove .ts extension if present
|
|
187
|
-
if (source.endsWith(".ts")) {
|
|
188
|
-
source = source.slice(0, -3);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// Resolve relative path
|
|
192
|
-
let resolvedPath: string;
|
|
193
|
-
if (source.startsWith("./")) {
|
|
194
|
-
// Same directory or subdirectory
|
|
195
|
-
resolvedPath = currentDir
|
|
196
|
-
? `${currentDir}/${source.slice(2)}`
|
|
197
|
-
: source.slice(2);
|
|
198
|
-
} else if (source.startsWith("../")) {
|
|
199
|
-
// Parent directory
|
|
200
|
-
const parts = currentDir.split("/");
|
|
201
|
-
let remaining = source;
|
|
202
|
-
while (remaining.startsWith("../")) {
|
|
203
|
-
parts.pop();
|
|
204
|
-
remaining = remaining.slice(3);
|
|
205
|
-
}
|
|
206
|
-
resolvedPath =
|
|
207
|
-
parts.length > 0 ? `${parts.join("/")}/${remaining}` : remaining;
|
|
208
|
-
} else if (source.startsWith("/")) {
|
|
209
|
-
// Absolute path (remove leading slash)
|
|
210
|
-
resolvedPath = source.slice(1);
|
|
211
|
-
} else {
|
|
212
|
-
// No ./ or ../, treat as same directory
|
|
213
|
-
resolvedPath = currentDir ? `${currentDir}/${source}` : source;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
// Canonicalize the result
|
|
217
|
-
return canonicalizeFilePath(resolvedPath);
|
|
218
|
-
};
|
package/src/core/options.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Emitter options and defaults
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { EmitterOptions } from "../types.js";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Default emitter options
|
|
9
|
-
*/
|
|
10
|
-
export const defaultOptions: EmitterOptions = {
|
|
11
|
-
rootNamespace: "MyApp",
|
|
12
|
-
includeSourceMaps: false,
|
|
13
|
-
indent: 4,
|
|
14
|
-
maxLineLength: 120,
|
|
15
|
-
includeTimestamp: true,
|
|
16
|
-
};
|
package/src/core/type-params.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type parameter collection
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { IrModule, IrTypeParameter } from "@tsonic/frontend";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Collect all type parameters from declarations in a module
|
|
9
|
-
*/
|
|
10
|
-
export const collectTypeParameters = (
|
|
11
|
-
module: IrModule
|
|
12
|
-
): readonly IrTypeParameter[] => {
|
|
13
|
-
const typeParams: IrTypeParameter[] = [];
|
|
14
|
-
|
|
15
|
-
for (const stmt of module.body) {
|
|
16
|
-
if (stmt.kind === "functionDeclaration" && stmt.typeParameters) {
|
|
17
|
-
typeParams.push(...stmt.typeParameters);
|
|
18
|
-
} else if (stmt.kind === "classDeclaration" && stmt.typeParameters) {
|
|
19
|
-
typeParams.push(...stmt.typeParameters);
|
|
20
|
-
// Also collect from class members
|
|
21
|
-
for (const member of stmt.members) {
|
|
22
|
-
if (member.kind === "methodDeclaration" && member.typeParameters) {
|
|
23
|
-
typeParams.push(...member.typeParameters);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
} else if (stmt.kind === "interfaceDeclaration" && stmt.typeParameters) {
|
|
27
|
-
typeParams.push(...stmt.typeParameters);
|
|
28
|
-
} else if (stmt.kind === "typeAliasDeclaration" && stmt.typeParameters) {
|
|
29
|
-
typeParams.push(...stmt.typeParameters);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return typeParams;
|
|
34
|
-
};
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context creation and manipulation functions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { EmitterOptions, EmitterContext } from "./core.js";
|
|
6
|
-
import {
|
|
7
|
-
loadLibraries,
|
|
8
|
-
buildBindingsRegistry,
|
|
9
|
-
} from "@tsonic/frontend/metadata/index.js";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Create a new emitter context with default values
|
|
13
|
-
*/
|
|
14
|
-
export const createContext = (options: EmitterOptions): EmitterContext => {
|
|
15
|
-
// Load metadata and bindings from library directories
|
|
16
|
-
let metadata: EmitterContext["metadata"] = undefined;
|
|
17
|
-
let bindingsRegistry: EmitterContext["bindingsRegistry"] = undefined;
|
|
18
|
-
|
|
19
|
-
if (options.libraries && options.libraries.length > 0) {
|
|
20
|
-
const librariesResult = loadLibraries(options.libraries);
|
|
21
|
-
if (librariesResult.ok) {
|
|
22
|
-
metadata = librariesResult.value.metadata;
|
|
23
|
-
bindingsRegistry = buildBindingsRegistry(librariesResult.value.bindings);
|
|
24
|
-
} else {
|
|
25
|
-
// TODO: Report diagnostics from librariesResult.error
|
|
26
|
-
// Need to integrate diagnostic reporting infrastructure
|
|
27
|
-
console.warn(
|
|
28
|
-
"[Tsonic] Failed to load libraries:",
|
|
29
|
-
librariesResult.error.map((d) => d.message).join(", ")
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return {
|
|
35
|
-
indentLevel: 0,
|
|
36
|
-
options,
|
|
37
|
-
isStatic: false,
|
|
38
|
-
isAsync: false,
|
|
39
|
-
metadata,
|
|
40
|
-
bindingsRegistry,
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Increase indentation level
|
|
46
|
-
*/
|
|
47
|
-
export const indent = (context: EmitterContext): EmitterContext => ({
|
|
48
|
-
...context,
|
|
49
|
-
indentLevel: context.indentLevel + 1,
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Decrease indentation level
|
|
54
|
-
*/
|
|
55
|
-
export const dedent = (context: EmitterContext): EmitterContext => ({
|
|
56
|
-
...context,
|
|
57
|
-
indentLevel: Math.max(0, context.indentLevel - 1),
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Set static context flag
|
|
62
|
-
*/
|
|
63
|
-
export const withStatic = (
|
|
64
|
-
context: EmitterContext,
|
|
65
|
-
isStatic: boolean
|
|
66
|
-
): EmitterContext => ({
|
|
67
|
-
...context,
|
|
68
|
-
isStatic,
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Set async context flag
|
|
73
|
-
*/
|
|
74
|
-
export const withAsync = (
|
|
75
|
-
context: EmitterContext,
|
|
76
|
-
isAsync: boolean
|
|
77
|
-
): EmitterContext => ({
|
|
78
|
-
...context,
|
|
79
|
-
isAsync,
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Set current class name in context
|
|
84
|
-
*/
|
|
85
|
-
export const withClassName = (
|
|
86
|
-
context: EmitterContext,
|
|
87
|
-
className: string
|
|
88
|
-
): EmitterContext => ({
|
|
89
|
-
...context,
|
|
90
|
-
className,
|
|
91
|
-
});
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core emitter types
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type { MetadataFile } from "@tsonic/frontend/types/metadata.js";
|
|
6
|
-
import type { TypeBinding } from "@tsonic/frontend/types/bindings.js";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Module identity for import resolution
|
|
10
|
-
*/
|
|
11
|
-
export type ModuleIdentity = {
|
|
12
|
-
readonly namespace: string;
|
|
13
|
-
readonly className: string;
|
|
14
|
-
readonly filePath: string;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Module map for resolving cross-file imports
|
|
19
|
-
*/
|
|
20
|
-
export type ModuleMap = ReadonlyMap<string, ModuleIdentity>;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Export source: where an export actually comes from
|
|
24
|
-
* Used to resolve re-exports to their original source
|
|
25
|
-
*/
|
|
26
|
-
export type ExportSource = {
|
|
27
|
-
/** Canonical file path of the actual source */
|
|
28
|
-
readonly sourceFile: string;
|
|
29
|
-
/** Name of the export in the source file */
|
|
30
|
-
readonly sourceName: string;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Map from (moduleFilePath, exportName) to actual source
|
|
35
|
-
* Key format: "moduleFilePath:exportName"
|
|
36
|
-
*/
|
|
37
|
-
export type ExportMap = ReadonlyMap<string, ExportSource>;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Options for C# code generation
|
|
41
|
-
*/
|
|
42
|
-
export type EmitterOptions = {
|
|
43
|
-
/** Root namespace for the application */
|
|
44
|
-
readonly rootNamespace: string;
|
|
45
|
-
/** Whether to include source map comments */
|
|
46
|
-
readonly includeSourceMaps?: boolean;
|
|
47
|
-
/** Indentation style (spaces) */
|
|
48
|
-
readonly indent?: number;
|
|
49
|
-
/** Maximum line length */
|
|
50
|
-
readonly maxLineLength?: number;
|
|
51
|
-
/** Include timestamp in generated files */
|
|
52
|
-
readonly includeTimestamp?: boolean;
|
|
53
|
-
/** Whether this module is an entry point (needs Main method) */
|
|
54
|
-
readonly isEntryPoint?: boolean;
|
|
55
|
-
/** Entry point file path (for batch emit) */
|
|
56
|
-
readonly entryPointPath?: string;
|
|
57
|
-
/** External library paths (contain .metadata and .bindings directories) */
|
|
58
|
-
readonly libraries?: readonly string[];
|
|
59
|
-
/** Runtime mode: "js" uses Tsonic.JSRuntime extensions, "dotnet" uses pure .NET */
|
|
60
|
-
readonly runtime?: "js" | "dotnet";
|
|
61
|
-
/** Module map for resolving cross-file imports (populated during batch emission) */
|
|
62
|
-
readonly moduleMap?: ModuleMap;
|
|
63
|
-
/** Export map for resolving re-exports to actual source (populated during batch emission) */
|
|
64
|
-
readonly exportMap?: ExportMap;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Import binding information for qualifying imported identifiers.
|
|
69
|
-
* Local module imports are always emitted as fully-qualified references
|
|
70
|
-
* to avoid C# name ambiguity.
|
|
71
|
-
*
|
|
72
|
-
* All CLR name resolution is done in the frontend - the emitter just uses
|
|
73
|
-
* the pre-computed clrName directly (no string parsing or type lookup).
|
|
74
|
-
*/
|
|
75
|
-
export type ImportBinding = {
|
|
76
|
-
/** Import kind: type (interface/class), value (function/variable), or namespace (import *) */
|
|
77
|
-
readonly kind: "type" | "value" | "namespace";
|
|
78
|
-
/**
|
|
79
|
-
* Fully-qualified CLR name.
|
|
80
|
-
* - For types: the type's FQN (e.g., "MultiFileTypes.models.User")
|
|
81
|
-
* - For values/namespaces: the container class FQN (e.g., "MultiFileTypes.models.user")
|
|
82
|
-
*/
|
|
83
|
-
readonly clrName: string;
|
|
84
|
-
/** For value imports: the member name inside the container (e.g., "createUser") */
|
|
85
|
-
readonly member?: string;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Context passed through emission process
|
|
90
|
-
*/
|
|
91
|
-
export type EmitterContext = {
|
|
92
|
-
/** Current indentation level */
|
|
93
|
-
readonly indentLevel: number;
|
|
94
|
-
/** Options for emission */
|
|
95
|
-
readonly options: EmitterOptions;
|
|
96
|
-
/** Whether currently in static context */
|
|
97
|
-
readonly isStatic: boolean;
|
|
98
|
-
/** Whether currently in async context */
|
|
99
|
-
readonly isAsync: boolean;
|
|
100
|
-
/** Whether currently emitting an array index (omit .0 from integer literals) */
|
|
101
|
-
readonly isArrayIndex?: boolean;
|
|
102
|
-
/** Current class name (for constructor emission) */
|
|
103
|
-
readonly className?: string;
|
|
104
|
-
/** Whether the current class has a superclass (for virtual/override) */
|
|
105
|
-
readonly hasSuperClass?: boolean;
|
|
106
|
-
/** Whether the module has any inheritance (to decide virtual methods) */
|
|
107
|
-
readonly hasInheritance?: boolean;
|
|
108
|
-
/** Loaded .NET metadata files (for CLR type information) */
|
|
109
|
-
readonly metadata?: ReadonlyArray<MetadataFile>;
|
|
110
|
-
/** Registry mapping TypeScript emit names to type bindings */
|
|
111
|
-
readonly bindingsRegistry?: ReadonlyMap<string, TypeBinding>;
|
|
112
|
-
/** Map of local names to import binding info (for qualifying imported identifiers) */
|
|
113
|
-
readonly importBindings?: ReadonlyMap<string, ImportBinding>;
|
|
114
|
-
/** Set of variable names known to be int (from canonical for-loop counters) */
|
|
115
|
-
readonly intLoopVars?: ReadonlySet<string>;
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Result of emitting C# code
|
|
120
|
-
*/
|
|
121
|
-
export type EmitResult = {
|
|
122
|
-
/** The generated C# code */
|
|
123
|
-
readonly code: string;
|
|
124
|
-
/** Updated context after emission */
|
|
125
|
-
readonly context: EmitterContext;
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Helper type for C# code fragments
|
|
130
|
-
*/
|
|
131
|
-
export type CSharpFragment = {
|
|
132
|
-
/** The code fragment */
|
|
133
|
-
readonly text: string;
|
|
134
|
-
/** Whether this needs parentheses when used in expressions */
|
|
135
|
-
readonly needsParens?: boolean;
|
|
136
|
-
/** Precedence level for operator expressions */
|
|
137
|
-
readonly precedence?: number;
|
|
138
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* C# language-specific types
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* C# access modifiers
|
|
7
|
-
*/
|
|
8
|
-
export type CSharpAccessModifier =
|
|
9
|
-
| "public"
|
|
10
|
-
| "private"
|
|
11
|
-
| "protected"
|
|
12
|
-
| "internal"
|
|
13
|
-
| "protected internal";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* C# class modifiers
|
|
17
|
-
*/
|
|
18
|
-
export type CSharpClassModifier = "static" | "abstract" | "sealed" | "partial";
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* C# method modifiers
|
|
22
|
-
*/
|
|
23
|
-
export type CSharpMethodModifier =
|
|
24
|
-
| "static"
|
|
25
|
-
| "virtual"
|
|
26
|
-
| "override"
|
|
27
|
-
| "abstract"
|
|
28
|
-
| "async"
|
|
29
|
-
| "new"
|
|
30
|
-
| "sealed";
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Represents a C# using statement
|
|
34
|
-
*/
|
|
35
|
-
export type CSharpUsing = {
|
|
36
|
-
/** The namespace to import */
|
|
37
|
-
readonly namespace: string;
|
|
38
|
-
/** Whether this is a static import */
|
|
39
|
-
readonly isStatic?: boolean;
|
|
40
|
-
/** Alias for the import */
|
|
41
|
-
readonly alias?: string;
|
|
42
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Formatting helper functions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { EmitterContext } from "./core.js";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Get indentation string for current level
|
|
9
|
-
*/
|
|
10
|
-
export const getIndent = (context: EmitterContext): string => {
|
|
11
|
-
const spaces = context.options.indent ?? 4;
|
|
12
|
-
return " ".repeat(spaces * context.indentLevel);
|
|
13
|
-
};
|
package/src/emitter-types/fqn.ts
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fully Qualified Name (FQN) rendering utilities
|
|
3
|
-
*
|
|
4
|
-
* All types and members are emitted with global:: prefix to eliminate
|
|
5
|
-
* any ambiguity from C# using statements or namespace resolution.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Render a fully qualified type name with global:: prefix
|
|
10
|
-
* e.g., "System.Collections.Generic.List" → "global::System.Collections.Generic.List"
|
|
11
|
-
*/
|
|
12
|
-
export const renderTypeFQN = (namespace: string, typeName: string): string => {
|
|
13
|
-
return `global::${namespace}.${typeName}`;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Render a fully qualified static member access with global:: prefix
|
|
18
|
-
* e.g., ("System", "Console", "WriteLine") → "global::System.Console.WriteLine"
|
|
19
|
-
*/
|
|
20
|
-
export const renderMemberFQN = (
|
|
21
|
-
namespace: string,
|
|
22
|
-
typeName: string,
|
|
23
|
-
member: string
|
|
24
|
-
): string => {
|
|
25
|
-
return `global::${namespace}.${typeName}.${member}`;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Render a simple namespace-qualified name with global:: prefix
|
|
30
|
-
* e.g., "System.Console" → "global::System.Console"
|
|
31
|
-
*/
|
|
32
|
-
export const renderFQN = (qualifiedName: string): string => {
|
|
33
|
-
return `global::${qualifiedName}`;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Common fully qualified type names used throughout emission
|
|
38
|
-
*/
|
|
39
|
-
export const FQN = {
|
|
40
|
-
// System types
|
|
41
|
-
Object: "global::System.Object",
|
|
42
|
-
String: "global::System.String",
|
|
43
|
-
Int32: "global::System.Int32",
|
|
44
|
-
Int64: "global::System.Int64",
|
|
45
|
-
Double: "global::System.Double",
|
|
46
|
-
Boolean: "global::System.Boolean",
|
|
47
|
-
Void: "void",
|
|
48
|
-
|
|
49
|
-
// System.Collections.Generic
|
|
50
|
-
List: (elementType: string) =>
|
|
51
|
-
`global::System.Collections.Generic.List<${elementType}>`,
|
|
52
|
-
Dictionary: (keyType: string, valueType: string) =>
|
|
53
|
-
`global::System.Collections.Generic.Dictionary<${keyType}, ${valueType}>`,
|
|
54
|
-
IEnumerable: (elementType: string) =>
|
|
55
|
-
`global::System.Collections.Generic.IEnumerable<${elementType}>`,
|
|
56
|
-
|
|
57
|
-
// System.Threading.Tasks
|
|
58
|
-
Task: "global::System.Threading.Tasks.Task",
|
|
59
|
-
TaskOf: (resultType: string) =>
|
|
60
|
-
`global::System.Threading.Tasks.Task<${resultType}>`,
|
|
61
|
-
|
|
62
|
-
// Tsonic.Runtime
|
|
63
|
-
TsonicRuntime: {
|
|
64
|
-
DynamicObject: "global::Tsonic.Runtime.DynamicObject",
|
|
65
|
-
Union: (types: string) => `global::Tsonic.Runtime.Union<${types}>`,
|
|
66
|
-
},
|
|
67
|
-
|
|
68
|
-
// Tsonic.JSRuntime
|
|
69
|
-
TsonicJSRuntime: {
|
|
70
|
-
Array: "global::Tsonic.JSRuntime.Array",
|
|
71
|
-
String: "global::Tsonic.JSRuntime.String",
|
|
72
|
-
Number: "global::Tsonic.JSRuntime.Number",
|
|
73
|
-
Math: "global::Tsonic.JSRuntime.Math",
|
|
74
|
-
Console: "global::Tsonic.JSRuntime.Console",
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
// System.Func delegates
|
|
78
|
-
Func: (typeArgs: string) => `global::System.Func<${typeArgs}>`,
|
|
79
|
-
Action: "global::System.Action",
|
|
80
|
-
ActionOf: (typeArgs: string) => `global::System.Action<${typeArgs}>`,
|
|
81
|
-
} as const;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Emitter types - Public API
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export type {
|
|
6
|
-
EmitterOptions,
|
|
7
|
-
EmitterContext,
|
|
8
|
-
EmitResult,
|
|
9
|
-
CSharpFragment,
|
|
10
|
-
ImportBinding,
|
|
11
|
-
ModuleIdentity,
|
|
12
|
-
ModuleMap,
|
|
13
|
-
ExportSource,
|
|
14
|
-
ExportMap,
|
|
15
|
-
} from "./core.js";
|
|
16
|
-
export type {
|
|
17
|
-
CSharpAccessModifier,
|
|
18
|
-
CSharpClassModifier,
|
|
19
|
-
CSharpMethodModifier,
|
|
20
|
-
CSharpUsing,
|
|
21
|
-
} from "./csharp-types.js";
|
|
22
|
-
export {
|
|
23
|
-
createContext,
|
|
24
|
-
indent,
|
|
25
|
-
dedent,
|
|
26
|
-
withStatic,
|
|
27
|
-
withAsync,
|
|
28
|
-
withClassName,
|
|
29
|
-
} from "./context.js";
|
|
30
|
-
export { getIndent } from "./formatting.js";
|
|
31
|
-
export { renderTypeFQN, renderMemberFQN, renderFQN, FQN } from "./fqn.js";
|