@tsonic/frontend 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/{src/dependency-graph.ts → dist/dependency-graph.d.ts} +3 -11
- package/dist/dependency-graph.d.ts.map +1 -0
- package/dist/dependency-graph.js +9 -0
- package/dist/dependency-graph.js.map +1 -0
- package/dist/dotnet-metadata.d.ts +71 -0
- package/dist/dotnet-metadata.d.ts.map +1 -0
- package/dist/dotnet-metadata.js +78 -0
- package/dist/dotnet-metadata.js.map +1 -0
- package/dist/graph/builder.d.ts +10 -0
- package/dist/graph/builder.d.ts.map +1 -0
- package/dist/graph/builder.js +54 -0
- package/dist/graph/builder.js.map +1 -0
- package/dist/graph/circular.d.ts +10 -0
- package/dist/graph/circular.d.ts.map +1 -0
- package/dist/graph/circular.js +40 -0
- package/dist/graph/circular.js.map +1 -0
- package/dist/graph/extraction/exports.d.ts +10 -0
- package/dist/graph/extraction/exports.d.ts.map +1 -0
- package/dist/graph/extraction/exports.js +46 -0
- package/dist/graph/extraction/exports.js.map +1 -0
- package/dist/graph/extraction/imports.d.ts +11 -0
- package/dist/graph/extraction/imports.d.ts.map +1 -0
- package/dist/graph/extraction/imports.js +63 -0
- package/dist/graph/extraction/imports.js.map +1 -0
- package/dist/graph/extraction/index.d.ts +7 -0
- package/dist/graph/extraction/index.d.ts.map +1 -0
- package/{src/graph/extraction/index.ts → dist/graph/extraction/index.js} +1 -1
- package/dist/graph/extraction/index.js.map +1 -0
- package/dist/graph/extraction/orchestrator.d.ts +11 -0
- package/dist/graph/extraction/orchestrator.d.ts.map +1 -0
- package/dist/graph/extraction/orchestrator.js +78 -0
- package/dist/graph/extraction/orchestrator.js.map +1 -0
- package/dist/graph/extraction.d.ts +6 -0
- package/dist/graph/extraction.d.ts.map +1 -0
- package/{src/graph/extraction.ts → dist/graph/extraction.js} +2 -6
- package/dist/graph/extraction.js.map +1 -0
- package/dist/graph/helpers.d.ts +17 -0
- package/dist/graph/helpers.d.ts.map +1 -0
- package/dist/graph/helpers.js +40 -0
- package/dist/graph/helpers.js.map +1 -0
- package/{src/graph/index.ts → dist/graph/index.d.ts} +3 -11
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +8 -0
- package/dist/graph/index.js.map +1 -0
- package/{src/graph/types.ts → dist/graph/types.d.ts} +4 -5
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +5 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/binding-resolution.test.d.ts +5 -0
- package/dist/ir/binding-resolution.test.d.ts.map +1 -0
- package/dist/ir/binding-resolution.test.js +513 -0
- package/dist/ir/binding-resolution.test.js.map +1 -0
- package/dist/ir/builder/exports.d.ts +10 -0
- package/dist/ir/builder/exports.d.ts.map +1 -0
- package/dist/ir/builder/exports.js +75 -0
- package/dist/ir/builder/exports.js.map +1 -0
- package/dist/ir/builder/helpers.d.ts +13 -0
- package/dist/ir/builder/helpers.d.ts.map +1 -0
- package/dist/ir/builder/helpers.js +23 -0
- package/dist/ir/builder/helpers.js.map +1 -0
- package/dist/ir/builder/imports.d.ts +18 -0
- package/dist/ir/builder/imports.d.ts.map +1 -0
- package/dist/ir/builder/imports.js +121 -0
- package/dist/ir/builder/imports.js.map +1 -0
- package/{src/ir/builder/index.ts → dist/ir/builder/index.d.ts} +1 -1
- package/dist/ir/builder/index.d.ts.map +1 -0
- package/dist/ir/builder/index.js +9 -0
- package/dist/ir/builder/index.js.map +1 -0
- package/dist/ir/builder/orchestrator.d.ts +18 -0
- package/dist/ir/builder/orchestrator.d.ts.map +1 -0
- package/dist/ir/builder/orchestrator.js +121 -0
- package/dist/ir/builder/orchestrator.js.map +1 -0
- package/dist/ir/builder/statements.d.ts +14 -0
- package/dist/ir/builder/statements.d.ts.map +1 -0
- package/dist/ir/builder/statements.js +43 -0
- package/dist/ir/builder/statements.js.map +1 -0
- package/dist/ir/builder/types.d.ts +8 -0
- package/dist/ir/builder/types.d.ts.map +1 -0
- package/dist/ir/builder/types.js +5 -0
- package/dist/ir/builder/types.js.map +1 -0
- package/dist/ir/builder/validation.d.ts +10 -0
- package/dist/ir/builder/validation.d.ts.map +1 -0
- package/dist/ir/builder/validation.js +86 -0
- package/dist/ir/builder/validation.js.map +1 -0
- package/{src/ir/builder.ts → dist/ir/builder.d.ts} +2 -5
- package/dist/ir/builder.d.ts.map +1 -0
- package/dist/ir/builder.js +10 -0
- package/dist/ir/builder.js.map +1 -0
- package/dist/ir/builder.test.d.ts +5 -0
- package/dist/ir/builder.test.d.ts.map +1 -0
- package/dist/ir/builder.test.js +493 -0
- package/dist/ir/builder.test.js.map +1 -0
- package/dist/ir/converters/expressions/access.d.ts +10 -0
- package/dist/ir/converters/expressions/access.d.ts.map +1 -0
- package/dist/ir/converters/expressions/access.js +85 -0
- package/dist/ir/converters/expressions/access.js.map +1 -0
- package/dist/ir/converters/expressions/calls.d.ts +14 -0
- package/dist/ir/converters/expressions/calls.d.ts.map +1 -0
- package/dist/ir/converters/expressions/calls.js +104 -0
- package/dist/ir/converters/expressions/calls.js.map +1 -0
- package/dist/ir/converters/expressions/collections.d.ts +14 -0
- package/dist/ir/converters/expressions/collections.d.ts.map +1 -0
- package/dist/ir/converters/expressions/collections.js +70 -0
- package/dist/ir/converters/expressions/collections.js.map +1 -0
- package/dist/ir/converters/expressions/functions.d.ts +14 -0
- package/dist/ir/converters/expressions/functions.d.ts.map +1 -0
- package/dist/ir/converters/expressions/functions.js +42 -0
- package/dist/ir/converters/expressions/functions.js.map +1 -0
- package/dist/ir/converters/expressions/helpers.d.ts +43 -0
- package/dist/ir/converters/expressions/helpers.d.ts.map +1 -0
- package/dist/ir/converters/expressions/helpers.js +210 -0
- package/dist/ir/converters/expressions/helpers.js.map +1 -0
- package/dist/ir/converters/expressions/index.d.ts +12 -0
- package/dist/ir/converters/expressions/index.d.ts.map +1 -0
- package/dist/ir/converters/expressions/index.js +20 -0
- package/dist/ir/converters/expressions/index.js.map +1 -0
- package/dist/ir/converters/expressions/literals.d.ts +10 -0
- package/dist/ir/converters/expressions/literals.d.ts.map +1 -0
- package/dist/ir/converters/expressions/literals.js +17 -0
- package/dist/ir/converters/expressions/literals.js.map +1 -0
- package/dist/ir/converters/expressions/operators.d.ts +18 -0
- package/dist/ir/converters/expressions/operators.d.ts.map +1 -0
- package/dist/ir/converters/expressions/operators.js +111 -0
- package/dist/ir/converters/expressions/operators.js.map +1 -0
- package/dist/ir/converters/expressions/other.d.ts +14 -0
- package/dist/ir/converters/expressions/other.d.ts.map +1 -0
- package/dist/ir/converters/expressions/other.js +44 -0
- package/dist/ir/converters/expressions/other.js.map +1 -0
- package/dist/ir/converters/statements/control/blocks.d.ts +10 -0
- package/dist/ir/converters/statements/control/blocks.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/blocks.js +16 -0
- package/dist/ir/converters/statements/control/blocks.js.map +1 -0
- package/dist/ir/converters/statements/control/conditionals.d.ts +18 -0
- package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/conditionals.js +46 -0
- package/dist/ir/converters/statements/control/conditionals.js.map +1 -0
- package/dist/ir/converters/statements/control/exceptions.d.ts +14 -0
- package/dist/ir/converters/statements/control/exceptions.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/exceptions.js +33 -0
- package/dist/ir/converters/statements/control/exceptions.js.map +1 -0
- package/dist/ir/converters/statements/control/index.d.ts +8 -0
- package/dist/ir/converters/statements/control/index.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/index.js +8 -0
- package/dist/ir/converters/statements/control/index.js.map +1 -0
- package/dist/ir/converters/statements/control/loops.d.ts +22 -0
- package/dist/ir/converters/statements/control/loops.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/loops.js +75 -0
- package/dist/ir/converters/statements/control/loops.js.map +1 -0
- package/dist/ir/converters/statements/control.d.ts +6 -0
- package/dist/ir/converters/statements/control.d.ts.map +1 -0
- package/dist/ir/converters/statements/control.js +6 -0
- package/dist/ir/converters/statements/control.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/constructors.d.ts +14 -0
- package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/constructors.js +91 -0
- package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -0
- package/{src/ir/converters/statements/declarations/classes/index.ts → dist/ir/converters/statements/declarations/classes/index.d.ts} +2 -5
- package/dist/ir/converters/statements/declarations/classes/index.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/index.js +9 -0
- package/dist/ir/converters/statements/declarations/classes/index.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/methods.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/methods.js +39 -0
- package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/orchestrator.js +123 -0
- package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts +13 -0
- package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/override-detection.js +79 -0
- package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/properties.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/properties.js +42 -0
- package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes.d.ts +6 -0
- package/dist/ir/converters/statements/declarations/classes.d.ts.map +1 -0
- package/{src/ir/converters/statements/declarations/classes.ts → dist/ir/converters/statements/declarations/classes.js} +1 -1
- package/dist/ir/converters/statements/declarations/classes.js.map +1 -0
- package/dist/ir/converters/statements/declarations/enums.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/enums.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/enums.js +24 -0
- package/dist/ir/converters/statements/declarations/enums.js.map +1 -0
- package/dist/ir/converters/statements/declarations/functions.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/functions.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/functions.js +28 -0
- package/dist/ir/converters/statements/declarations/functions.js.map +1 -0
- package/dist/ir/converters/statements/declarations/index.d.ts +11 -0
- package/dist/ir/converters/statements/declarations/index.d.ts.map +1 -0
- package/{src/ir/converters/statements/declarations/index.ts → dist/ir/converters/statements/declarations/index.js} +2 -5
- package/dist/ir/converters/statements/declarations/index.js.map +1 -0
- package/dist/ir/converters/statements/declarations/interfaces.d.ts +15 -0
- package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/interfaces.js +96 -0
- package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -0
- package/dist/ir/converters/statements/declarations/registry.d.ts +24 -0
- package/dist/ir/converters/statements/declarations/registry.d.ts.map +1 -0
- package/{src/ir/converters/statements/declarations/registry.ts → dist/ir/converters/statements/declarations/registry.js} +9 -16
- package/dist/ir/converters/statements/declarations/registry.js.map +1 -0
- package/dist/ir/converters/statements/declarations/type-aliases.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/type-aliases.js +19 -0
- package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -0
- package/dist/ir/converters/statements/declarations/variables.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/variables.js +45 -0
- package/dist/ir/converters/statements/declarations/variables.js.map +1 -0
- package/dist/ir/converters/statements/declarations.d.ts +6 -0
- package/dist/ir/converters/statements/declarations.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations.js +6 -0
- package/dist/ir/converters/statements/declarations.js.map +1 -0
- package/dist/ir/converters/statements/helpers.d.ts +34 -0
- package/dist/ir/converters/statements/helpers.d.ts.map +1 -0
- package/dist/ir/converters/statements/helpers.js +137 -0
- package/dist/ir/converters/statements/helpers.js.map +1 -0
- package/dist/ir/converters/statements/index.d.ts +7 -0
- package/dist/ir/converters/statements/index.d.ts.map +1 -0
- package/dist/ir/converters/statements/index.js +10 -0
- package/dist/ir/converters/statements/index.js.map +1 -0
- package/dist/ir/expression-converter.d.ts +13 -0
- package/dist/ir/expression-converter.d.ts.map +1 -0
- package/dist/ir/expression-converter.js +167 -0
- package/dist/ir/expression-converter.js.map +1 -0
- package/dist/ir/generic-validator.d.ts +38 -0
- package/dist/ir/generic-validator.d.ts.map +1 -0
- package/dist/ir/generic-validator.js +69 -0
- package/dist/ir/generic-validator.js.map +1 -0
- package/dist/ir/hierarchical-bindings-e2e.test.d.ts +6 -0
- package/dist/ir/hierarchical-bindings-e2e.test.d.ts.map +1 -0
- package/dist/ir/hierarchical-bindings-e2e.test.js +124 -0
- package/dist/ir/hierarchical-bindings-e2e.test.js.map +1 -0
- package/{src/ir/index.ts → dist/ir/index.d.ts} +1 -1
- package/dist/ir/index.d.ts.map +1 -0
- package/dist/ir/index.js +6 -0
- package/dist/ir/index.js.map +1 -0
- package/dist/ir/statement-converter.d.ts +14 -0
- package/dist/ir/statement-converter.d.ts.map +1 -0
- package/dist/ir/statement-converter.js +100 -0
- package/dist/ir/statement-converter.js.map +1 -0
- package/dist/ir/type-converter/arrays.d.ts +10 -0
- package/dist/ir/type-converter/arrays.d.ts.map +1 -0
- package/dist/ir/type-converter/arrays.js +13 -0
- package/dist/ir/type-converter/arrays.js.map +1 -0
- package/dist/ir/type-converter/clr-type-resolver.d.ts +15 -0
- package/dist/ir/type-converter/clr-type-resolver.d.ts.map +1 -0
- package/dist/ir/type-converter/clr-type-resolver.js +120 -0
- package/dist/ir/type-converter/clr-type-resolver.js.map +1 -0
- package/dist/ir/type-converter/converter.d.ts +6 -0
- package/dist/ir/type-converter/converter.d.ts.map +1 -0
- package/dist/ir/type-converter/converter.js +6 -0
- package/dist/ir/type-converter/converter.js.map +1 -0
- package/dist/ir/type-converter/functions.d.ts +10 -0
- package/dist/ir/type-converter/functions.d.ts.map +1 -0
- package/dist/ir/type-converter/functions.js +15 -0
- package/dist/ir/type-converter/functions.js.map +1 -0
- package/dist/ir/type-converter/index.d.ts +7 -0
- package/dist/ir/type-converter/index.d.ts.map +1 -0
- package/{src/ir/type-converter/index.ts → dist/ir/type-converter/index.js} +2 -6
- package/dist/ir/type-converter/index.js.map +1 -0
- package/dist/ir/type-converter/inference.d.ts +20 -0
- package/dist/ir/type-converter/inference.d.ts.map +1 -0
- package/dist/ir/type-converter/inference.js +104 -0
- package/dist/ir/type-converter/inference.js.map +1 -0
- package/dist/ir/type-converter/literals.d.ts +10 -0
- package/dist/ir/type-converter/literals.d.ts.map +1 -0
- package/dist/ir/type-converter/literals.js +31 -0
- package/dist/ir/type-converter/literals.js.map +1 -0
- package/dist/ir/type-converter/objects.d.ts +16 -0
- package/dist/ir/type-converter/objects.d.ts.map +1 -0
- package/dist/ir/type-converter/objects.js +81 -0
- package/dist/ir/type-converter/objects.js.map +1 -0
- package/dist/ir/type-converter/orchestrator.d.ts +13 -0
- package/dist/ir/type-converter/orchestrator.d.ts.map +1 -0
- package/dist/ir/type-converter/orchestrator.js +59 -0
- package/dist/ir/type-converter/orchestrator.js.map +1 -0
- package/dist/ir/type-converter/patterns.d.ts +10 -0
- package/dist/ir/type-converter/patterns.d.ts.map +1 -0
- package/dist/ir/type-converter/patterns.js +66 -0
- package/dist/ir/type-converter/patterns.js.map +1 -0
- package/dist/ir/type-converter/primitives.d.ts +18 -0
- package/dist/ir/type-converter/primitives.d.ts.map +1 -0
- package/dist/ir/type-converter/primitives.js +47 -0
- package/dist/ir/type-converter/primitives.js.map +1 -0
- package/dist/ir/type-converter/references.d.ts +11 -0
- package/dist/ir/type-converter/references.d.ts.map +1 -0
- package/dist/ir/type-converter/references.js +51 -0
- package/dist/ir/type-converter/references.js.map +1 -0
- package/dist/ir/type-converter/unions-intersections.d.ts +14 -0
- package/dist/ir/type-converter/unions-intersections.d.ts.map +1 -0
- package/dist/ir/type-converter/unions-intersections.js +22 -0
- package/dist/ir/type-converter/unions-intersections.js.map +1 -0
- package/dist/ir/type-converter.d.ts +6 -0
- package/dist/ir/type-converter.d.ts.map +1 -0
- package/dist/ir/type-converter.js +6 -0
- package/dist/ir/type-converter.js.map +1 -0
- package/dist/ir/types/expressions.d.ts +164 -0
- package/dist/ir/types/expressions.d.ts.map +1 -0
- package/dist/ir/types/expressions.js +5 -0
- package/dist/ir/types/expressions.js.map +1 -0
- package/dist/ir/types/guards.d.ts +8 -0
- package/dist/ir/types/guards.d.ts.map +1 -0
- package/dist/ir/types/guards.js +31 -0
- package/dist/ir/types/guards.js.map +1 -0
- package/dist/ir/types/helpers.d.ts +65 -0
- package/dist/ir/types/helpers.d.ts.map +1 -0
- package/dist/ir/types/helpers.js +5 -0
- package/dist/ir/types/helpers.js.map +1 -0
- package/dist/ir/types/index.d.ts +11 -0
- package/dist/ir/types/index.d.ts.map +1 -0
- package/dist/ir/types/index.js +7 -0
- package/dist/ir/types/index.js.map +1 -0
- package/dist/ir/types/ir-types.d.ts +69 -0
- package/dist/ir/types/ir-types.d.ts.map +1 -0
- package/dist/ir/types/ir-types.js +5 -0
- package/dist/ir/types/ir-types.js.map +1 -0
- package/dist/ir/types/module.d.ts +56 -0
- package/dist/ir/types/module.d.ts.map +1 -0
- package/dist/ir/types/module.js +5 -0
- package/dist/ir/types/module.js.map +1 -0
- package/dist/ir/types/statements.d.ts +182 -0
- package/dist/ir/types/statements.d.ts.map +1 -0
- package/dist/ir/types/statements.js +5 -0
- package/dist/ir/types/statements.js.map +1 -0
- package/dist/ir/types.d.ts +7 -0
- package/dist/ir/types.d.ts.map +1 -0
- package/dist/ir/types.js +7 -0
- package/dist/ir/types.js.map +1 -0
- package/dist/metadata/bindings-loader.d.ts +41 -0
- package/dist/metadata/bindings-loader.d.ts.map +1 -0
- package/dist/metadata/bindings-loader.js +308 -0
- package/dist/metadata/bindings-loader.js.map +1 -0
- package/dist/metadata/bindings-loader.test.d.ts +5 -0
- package/dist/metadata/bindings-loader.test.d.ts.map +1 -0
- package/dist/metadata/bindings-loader.test.js +117 -0
- package/dist/metadata/bindings-loader.test.js.map +1 -0
- package/{src/metadata/index.ts → dist/metadata/index.d.ts} +2 -9
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/index.js +7 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/library-loader.d.ts +42 -0
- package/dist/metadata/library-loader.d.ts.map +1 -0
- package/dist/metadata/library-loader.js +126 -0
- package/dist/metadata/library-loader.js.map +1 -0
- package/dist/metadata/loader.d.ts +26 -0
- package/dist/metadata/loader.d.ts.map +1 -0
- package/dist/metadata/loader.js +333 -0
- package/dist/metadata/loader.js.map +1 -0
- package/dist/metadata/loader.test.d.ts +5 -0
- package/dist/metadata/loader.test.d.ts.map +1 -0
- package/dist/metadata/loader.test.js +119 -0
- package/dist/metadata/loader.test.js.map +1 -0
- package/dist/program/bindings.d.ts +111 -0
- package/dist/program/bindings.d.ts.map +1 -0
- package/dist/program/bindings.js +167 -0
- package/dist/program/bindings.js.map +1 -0
- package/dist/program/bindings.test.d.ts +5 -0
- package/dist/program/bindings.test.d.ts.map +1 -0
- package/dist/program/bindings.test.js +435 -0
- package/dist/program/bindings.test.js.map +1 -0
- package/dist/program/config.d.ts +9 -0
- package/dist/program/config.d.ts.map +1 -0
- package/dist/program/config.js +29 -0
- package/dist/program/config.js.map +1 -0
- package/dist/program/creation.d.ts +17 -0
- package/dist/program/creation.d.ts.map +1 -0
- package/dist/program/creation.js +180 -0
- package/dist/program/creation.js.map +1 -0
- package/dist/program/dependency-graph.d.ts +19 -0
- package/dist/program/dependency-graph.d.ts.map +1 -0
- package/dist/program/dependency-graph.js +166 -0
- package/dist/program/dependency-graph.js.map +1 -0
- package/dist/program/diagnostics.d.ts +23 -0
- package/dist/program/diagnostics.d.ts.map +1 -0
- package/dist/program/diagnostics.js +65 -0
- package/dist/program/diagnostics.js.map +1 -0
- package/{src/program/index.ts → dist/program/index.d.ts} +3 -10
- package/dist/program/index.d.ts.map +1 -0
- package/dist/program/index.js +11 -0
- package/dist/program/index.js.map +1 -0
- package/dist/program/metadata.d.ts +10 -0
- package/dist/program/metadata.d.ts.map +1 -0
- package/dist/program/metadata.js +56 -0
- package/dist/program/metadata.js.map +1 -0
- package/dist/program/queries.d.ts +10 -0
- package/dist/program/queries.d.ts.map +1 -0
- package/dist/program/queries.js +12 -0
- package/dist/program/queries.js.map +1 -0
- package/dist/program/types.d.ts +35 -0
- package/dist/program/types.d.ts.map +1 -0
- package/dist/program/types.js +5 -0
- package/dist/program/types.js.map +1 -0
- package/{src/program.ts → dist/program.d.ts} +2 -7
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +6 -0
- package/dist/program.js.map +1 -0
- package/dist/resolver/dotnet-import-resolver.d.ts +74 -0
- package/dist/resolver/dotnet-import-resolver.d.ts.map +1 -0
- package/dist/resolver/dotnet-import-resolver.js +183 -0
- package/dist/resolver/dotnet-import-resolver.js.map +1 -0
- package/dist/resolver/import-resolution.d.ts +20 -0
- package/dist/resolver/import-resolution.d.ts.map +1 -0
- package/dist/resolver/import-resolution.js +102 -0
- package/dist/resolver/import-resolution.js.map +1 -0
- package/dist/resolver/index.d.ts +10 -0
- package/dist/resolver/index.d.ts.map +1 -0
- package/dist/resolver/index.js +9 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/namespace.d.ts +20 -0
- package/dist/resolver/namespace.d.ts.map +1 -0
- package/dist/resolver/namespace.js +35 -0
- package/dist/resolver/namespace.js.map +1 -0
- package/dist/resolver/namespace.test.d.ts +2 -0
- package/dist/resolver/namespace.test.d.ts.map +1 -0
- package/dist/resolver/namespace.test.js +42 -0
- package/dist/resolver/namespace.test.js.map +1 -0
- package/dist/resolver/naming.d.ts +12 -0
- package/dist/resolver/naming.d.ts.map +1 -0
- package/dist/resolver/naming.js +30 -0
- package/dist/resolver/naming.js.map +1 -0
- package/dist/resolver/path-resolution.d.ts +8 -0
- package/dist/resolver/path-resolution.d.ts.map +1 -0
- package/dist/resolver/path-resolution.js +16 -0
- package/dist/resolver/path-resolution.js.map +1 -0
- package/dist/resolver/types.d.ts +13 -0
- package/dist/resolver/types.d.ts.map +1 -0
- package/dist/resolver/types.js +5 -0
- package/dist/resolver/types.js.map +1 -0
- package/dist/resolver.d.ts +7 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +6 -0
- package/dist/resolver.js.map +1 -0
- package/dist/resolver.test.d.ts +5 -0
- package/dist/resolver.test.d.ts.map +1 -0
- package/dist/resolver.test.js +93 -0
- package/dist/resolver.test.js.map +1 -0
- package/dist/symbol-table/builder.d.ts +10 -0
- package/dist/symbol-table/builder.d.ts.map +1 -0
- package/dist/symbol-table/builder.js +105 -0
- package/dist/symbol-table/builder.js.map +1 -0
- package/dist/symbol-table/creation.d.ts +13 -0
- package/dist/symbol-table/creation.d.ts.map +1 -0
- package/dist/symbol-table/creation.js +36 -0
- package/dist/symbol-table/creation.js.map +1 -0
- package/dist/symbol-table/helpers.d.ts +9 -0
- package/dist/symbol-table/helpers.d.ts.map +1 -0
- package/dist/symbol-table/helpers.js +15 -0
- package/dist/symbol-table/helpers.js.map +1 -0
- package/{src/symbol-table/index.ts → dist/symbol-table/index.d.ts} +2 -6
- package/dist/symbol-table/index.d.ts.map +1 -0
- package/dist/symbol-table/index.js +8 -0
- package/dist/symbol-table/index.js.map +1 -0
- package/dist/symbol-table/queries.d.ts +17 -0
- package/dist/symbol-table/queries.d.ts.map +1 -0
- package/dist/symbol-table/queries.js +27 -0
- package/dist/symbol-table/queries.js.map +1 -0
- package/dist/symbol-table/types.d.ts +18 -0
- package/dist/symbol-table/types.d.ts.map +1 -0
- package/dist/symbol-table/types.js +5 -0
- package/dist/symbol-table/types.js.map +1 -0
- package/{src/symbol-table.ts → dist/symbol-table.d.ts} +2 -9
- package/dist/symbol-table.d.ts.map +1 -0
- package/dist/symbol-table.js +6 -0
- package/dist/symbol-table.js.map +1 -0
- package/dist/types/bindings.d.ts +153 -0
- package/dist/types/bindings.d.ts.map +1 -0
- package/dist/types/bindings.js +14 -0
- package/dist/types/bindings.js.map +1 -0
- package/dist/types/diagnostic.d.ts +30 -0
- package/dist/types/diagnostic.d.ts.map +1 -0
- package/dist/types/diagnostic.js +37 -0
- package/dist/types/diagnostic.js.map +1 -0
- package/dist/types/diagnostic.test.d.ts +5 -0
- package/dist/types/diagnostic.test.d.ts.map +1 -0
- package/dist/types/diagnostic.test.js +94 -0
- package/dist/types/diagnostic.test.js.map +1 -0
- package/dist/types/explicit-views.d.ts +97 -0
- package/dist/types/explicit-views.d.ts.map +1 -0
- package/dist/types/explicit-views.js +163 -0
- package/dist/types/explicit-views.js.map +1 -0
- package/dist/types/explicit-views.test.d.ts +5 -0
- package/dist/types/explicit-views.test.d.ts.map +1 -0
- package/dist/types/explicit-views.test.js +67 -0
- package/dist/types/explicit-views.test.js.map +1 -0
- package/dist/types/metadata.d.ts +196 -0
- package/dist/types/metadata.d.ts.map +1 -0
- package/dist/types/metadata.js +10 -0
- package/dist/types/metadata.js.map +1 -0
- package/dist/types/module.d.ts +51 -0
- package/dist/types/module.d.ts.map +1 -0
- package/dist/types/module.js +28 -0
- package/dist/types/module.js.map +1 -0
- package/dist/types/nested-types.d.ts +111 -0
- package/dist/types/nested-types.d.ts.map +1 -0
- package/dist/types/nested-types.js +176 -0
- package/dist/types/nested-types.js.map +1 -0
- package/dist/types/nested-types.test.d.ts +5 -0
- package/dist/types/nested-types.test.d.ts.map +1 -0
- package/dist/types/nested-types.test.js +135 -0
- package/dist/types/nested-types.test.js.map +1 -0
- package/dist/types/parameter-modifiers.d.ts +55 -0
- package/dist/types/parameter-modifiers.d.ts.map +1 -0
- package/dist/types/parameter-modifiers.js +144 -0
- package/dist/types/parameter-modifiers.js.map +1 -0
- package/dist/types/ref-parameters.d.ts +123 -0
- package/dist/types/ref-parameters.d.ts.map +1 -0
- package/dist/types/ref-parameters.js +203 -0
- package/dist/types/ref-parameters.js.map +1 -0
- package/dist/types/ref-parameters.test.d.ts +5 -0
- package/dist/types/ref-parameters.test.d.ts.map +1 -0
- package/dist/types/ref-parameters.test.js +147 -0
- package/dist/types/ref-parameters.test.js.map +1 -0
- package/dist/types/result.d.ts +26 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +19 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/result.test.d.ts +5 -0
- package/dist/types/result.test.d.ts.map +1 -0
- package/dist/types/result.test.js +121 -0
- package/dist/types/result.test.js.map +1 -0
- package/dist/types/support-types.d.ts +103 -0
- package/dist/types/support-types.d.ts.map +1 -0
- package/dist/types/support-types.js +220 -0
- package/dist/types/support-types.js.map +1 -0
- package/dist/types/support-types.test.d.ts +5 -0
- package/dist/types/support-types.test.d.ts.map +1 -0
- package/dist/types/support-types.test.js +50 -0
- package/dist/types/support-types.test.js.map +1 -0
- package/dist/types/test-debug.d.ts.map +1 -0
- package/dist/types/test-debug.js.map +1 -0
- package/dist/types/test-harness.d.ts +34 -0
- package/dist/types/test-harness.d.ts.map +1 -0
- package/dist/types/test-harness.js +127 -0
- package/dist/types/test-harness.js.map +1 -0
- package/dist/validation/aot-safety.d.ts +24 -0
- package/dist/validation/aot-safety.d.ts.map +1 -0
- package/dist/validation/aot-safety.js +114 -0
- package/dist/validation/aot-safety.js.map +1 -0
- package/dist/validation/exports.d.ts +11 -0
- package/dist/validation/exports.d.ts.map +1 -0
- package/dist/validation/exports.js +56 -0
- package/dist/validation/exports.js.map +1 -0
- package/dist/validation/features.d.ts +11 -0
- package/dist/validation/features.d.ts.map +1 -0
- package/dist/validation/features.js +36 -0
- package/dist/validation/features.js.map +1 -0
- package/dist/validation/generics.d.ts +11 -0
- package/dist/validation/generics.d.ts.map +1 -0
- package/dist/validation/generics.js +31 -0
- package/dist/validation/generics.js.map +1 -0
- package/dist/validation/helpers.d.ts +15 -0
- package/dist/validation/helpers.d.ts.map +1 -0
- package/dist/validation/helpers.js +18 -0
- package/dist/validation/helpers.js.map +1 -0
- package/dist/validation/imports.d.ts +15 -0
- package/dist/validation/imports.d.ts.map +1 -0
- package/dist/validation/imports.js +42 -0
- package/dist/validation/imports.js.map +1 -0
- package/dist/validation/index.d.ts +11 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/{src/validation/index.ts → dist/validation/index.js} +1 -1
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/orchestrator.d.ts +15 -0
- package/dist/validation/orchestrator.d.ts.map +1 -0
- package/dist/validation/orchestrator.js +30 -0
- package/dist/validation/orchestrator.js.map +1 -0
- package/dist/validation/static-safety.d.ts +23 -0
- package/dist/validation/static-safety.d.ts.map +1 -0
- package/dist/validation/static-safety.js +165 -0
- package/dist/validation/static-safety.js.map +1 -0
- package/dist/validator.d.ts +6 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +6 -0
- package/dist/validator.js.map +1 -0
- package/dist/validator.test.d.ts +11 -0
- package/dist/validator.test.d.ts.map +1 -0
- package/dist/validator.test.js +340 -0
- package/dist/validator.test.js.map +1 -0
- package/package.json +4 -1
- package/src/dotnet-metadata.ts +0 -121
- package/src/graph/builder.ts +0 -81
- package/src/graph/circular.ts +0 -58
- package/src/graph/extraction/exports.ts +0 -55
- package/src/graph/extraction/imports.ts +0 -81
- package/src/graph/extraction/orchestrator.ts +0 -99
- package/src/graph/helpers.ts +0 -51
- package/src/index.ts +0 -80
- package/src/ir/binding-resolution.test.ts +0 -585
- package/src/ir/builder/exports.ts +0 -78
- package/src/ir/builder/helpers.ts +0 -27
- package/src/ir/builder/imports.ts +0 -153
- package/src/ir/builder/orchestrator.ts +0 -178
- package/src/ir/builder/statements.ts +0 -55
- package/src/ir/builder/types.ts +0 -8
- package/src/ir/builder/validation.ts +0 -129
- package/src/ir/builder.test.ts +0 -581
- package/src/ir/converters/expressions/access.ts +0 -99
- package/src/ir/converters/expressions/calls.ts +0 -137
- package/src/ir/converters/expressions/collections.ts +0 -84
- package/src/ir/converters/expressions/functions.ts +0 -62
- package/src/ir/converters/expressions/helpers.ts +0 -264
- package/src/ir/converters/expressions/index.ts +0 -43
- package/src/ir/converters/expressions/literals.ts +0 -22
- package/src/ir/converters/expressions/operators.ts +0 -147
- package/src/ir/converters/expressions/other.ts +0 -60
- package/src/ir/converters/statements/control/blocks.ts +0 -22
- package/src/ir/converters/statements/control/conditionals.ts +0 -67
- package/src/ir/converters/statements/control/exceptions.ts +0 -43
- package/src/ir/converters/statements/control/index.ts +0 -17
- package/src/ir/converters/statements/control/loops.ts +0 -99
- package/src/ir/converters/statements/control.ts +0 -17
- package/src/ir/converters/statements/declarations/classes/constructors.ts +0 -120
- package/src/ir/converters/statements/declarations/classes/methods.ts +0 -61
- package/src/ir/converters/statements/declarations/classes/orchestrator.ts +0 -166
- package/src/ir/converters/statements/declarations/classes/override-detection.ts +0 -116
- package/src/ir/converters/statements/declarations/classes/properties.ts +0 -63
- package/src/ir/converters/statements/declarations/enums.ts +0 -29
- package/src/ir/converters/statements/declarations/functions.ts +0 -39
- package/src/ir/converters/statements/declarations/interfaces.ts +0 -131
- package/src/ir/converters/statements/declarations/type-aliases.ts +0 -25
- package/src/ir/converters/statements/declarations/variables.ts +0 -60
- package/src/ir/converters/statements/declarations.ts +0 -16
- package/src/ir/converters/statements/helpers.ts +0 -174
- package/src/ir/converters/statements/index.ts +0 -40
- package/src/ir/expression-converter.ts +0 -207
- package/src/ir/generic-validator.ts +0 -100
- package/src/ir/hierarchical-bindings-e2e.test.ts +0 -163
- package/src/ir/statement-converter.ts +0 -128
- package/src/ir/type-converter/arrays.ts +0 -20
- package/src/ir/type-converter/converter.ts +0 -10
- package/src/ir/type-converter/functions.ts +0 -22
- package/src/ir/type-converter/inference.ts +0 -122
- package/src/ir/type-converter/literals.ts +0 -40
- package/src/ir/type-converter/objects.ts +0 -107
- package/src/ir/type-converter/orchestrator.ts +0 -85
- package/src/ir/type-converter/patterns.ts +0 -73
- package/src/ir/type-converter/primitives.ts +0 -57
- package/src/ir/type-converter/references.ts +0 -64
- package/src/ir/type-converter/unions-intersections.ts +0 -34
- package/src/ir/type-converter.ts +0 -13
- package/src/ir/types/expressions.ts +0 -215
- package/src/ir/types/guards.ts +0 -39
- package/src/ir/types/helpers.ts +0 -135
- package/src/ir/types/index.ts +0 -108
- package/src/ir/types/ir-types.ts +0 -96
- package/src/ir/types/module.ts +0 -57
- package/src/ir/types/statements.ts +0 -238
- package/src/ir/types.ts +0 -97
- package/src/metadata/bindings-loader.test.ts +0 -144
- package/src/metadata/bindings-loader.ts +0 -357
- package/src/metadata/library-loader.ts +0 -153
- package/src/metadata/loader.test.ts +0 -156
- package/src/metadata/loader.ts +0 -382
- package/src/program/bindings.test.ts +0 -512
- package/src/program/bindings.ts +0 -253
- package/src/program/config.ts +0 -30
- package/src/program/creation.ts +0 -249
- package/src/program/dependency-graph.ts +0 -245
- package/src/program/diagnostics.ts +0 -103
- package/src/program/metadata.ts +0 -68
- package/src/program/queries.ts +0 -18
- package/src/program/types.ts +0 -38
- package/src/resolver/dotnet-import-resolver.ts +0 -226
- package/src/resolver/import-resolution.ts +0 -177
- package/src/resolver/index.ts +0 -18
- package/src/resolver/namespace.test.ts +0 -86
- package/src/resolver/namespace.ts +0 -42
- package/src/resolver/naming.ts +0 -38
- package/src/resolver/path-resolution.ts +0 -22
- package/src/resolver/types.ts +0 -15
- package/src/resolver.test.ts +0 -155
- package/src/resolver.ts +0 -14
- package/src/symbol-table/builder.ts +0 -114
- package/src/symbol-table/creation.ts +0 -42
- package/src/symbol-table/helpers.ts +0 -18
- package/src/symbol-table/queries.ts +0 -42
- package/src/symbol-table/types.ts +0 -28
- package/src/types/bindings.ts +0 -172
- package/src/types/diagnostic.test.ts +0 -164
- package/src/types/diagnostic.ts +0 -153
- package/src/types/explicit-views.test.ts +0 -113
- package/src/types/explicit-views.ts +0 -218
- package/src/types/metadata.ts +0 -229
- package/src/types/module.ts +0 -99
- package/src/types/nested-types.test.ts +0 -194
- package/src/types/nested-types.ts +0 -215
- package/src/types/parameter-modifiers.ts +0 -173
- package/src/types/ref-parameters.test.ts +0 -192
- package/src/types/ref-parameters.ts +0 -268
- package/src/types/result.test.ts +0 -157
- package/src/types/result.ts +0 -48
- package/src/types/support-types.test.ts +0 -81
- package/src/types/support-types.ts +0 -288
- package/src/types/test-harness.ts +0 -180
- package/src/validation/exports.ts +0 -98
- package/src/validation/features.ts +0 -89
- package/src/validation/generics.ts +0 -40
- package/src/validation/helpers.ts +0 -31
- package/src/validation/imports.ts +0 -97
- package/src/validation/orchestrator.ts +0 -51
- package/src/validation/static-safety.ts +0 -267
- package/src/validator.test.ts +0 -468
- package/src/validator.ts +0 -15
- package/tsconfig.json +0 -13
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ref/Out Parameter Handling - Generate C# ref/out/in keywords from TSByRef wrapper.
|
|
3
|
+
*
|
|
4
|
+
* C# supports pass-by-reference parameters (ref, out, in) which don't have direct
|
|
5
|
+
* JavaScript equivalents. TypeScript code uses TSByRef<T> wrapper:
|
|
6
|
+
*
|
|
7
|
+
* TypeScript: const result = { value: 0 }; TryParse("42", result);
|
|
8
|
+
* C#: int result; TryParse("42", out result);
|
|
9
|
+
*
|
|
10
|
+
* @see spec/ref-out-parameters.md for complete documentation
|
|
11
|
+
*/
|
|
12
|
+
import * as ts from "typescript";
|
|
13
|
+
import type { ParameterMetadata } from "./metadata.js";
|
|
14
|
+
/**
|
|
15
|
+
* Parameter modifier for C# emission.
|
|
16
|
+
*/
|
|
17
|
+
export type ParameterModifier = "ref" | "out" | "in" | "none";
|
|
18
|
+
/**
|
|
19
|
+
* Information about a ref/out/in parameter.
|
|
20
|
+
*/
|
|
21
|
+
export type RefParameterInfo = {
|
|
22
|
+
readonly isRef: boolean;
|
|
23
|
+
readonly isOut: boolean;
|
|
24
|
+
readonly isIn: boolean;
|
|
25
|
+
readonly modifier: ParameterModifier;
|
|
26
|
+
readonly wrappedType: ts.Type;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Get ref/out/in information from parameter metadata.
|
|
30
|
+
*
|
|
31
|
+
* @param paramMetadata - Parameter metadata from .metadata.json
|
|
32
|
+
* @returns Parameter modifier to use in C# emission
|
|
33
|
+
*/
|
|
34
|
+
export declare const getParameterModifier: (paramMetadata: ParameterMetadata) => ParameterModifier;
|
|
35
|
+
/**
|
|
36
|
+
* Check if parameter requires TSByRef wrapper based on metadata.
|
|
37
|
+
*
|
|
38
|
+
* @param paramMetadata - Parameter metadata from .metadata.json
|
|
39
|
+
* @returns True if parameter should use TSByRef<T> in TypeScript
|
|
40
|
+
*/
|
|
41
|
+
export declare const requiresTSByRef: (paramMetadata: ParameterMetadata) => boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Get ref parameter info from TypeScript type and metadata.
|
|
44
|
+
*
|
|
45
|
+
* @param paramType - TypeScript parameter type
|
|
46
|
+
* @param paramMetadata - Parameter metadata from .metadata.json
|
|
47
|
+
* @param checker - TypeScript type checker
|
|
48
|
+
* @returns Ref parameter info if applicable, undefined otherwise
|
|
49
|
+
*/
|
|
50
|
+
export declare const getRefParameterInfo: (paramType: ts.Type, paramMetadata: ParameterMetadata, checker: ts.TypeChecker) => RefParameterInfo | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Extract variable name from TSByRef argument expression.
|
|
53
|
+
*
|
|
54
|
+
* TypeScript: TryParse("42", result) // where result = { value: 0 }
|
|
55
|
+
* C#: TryParse("42", out result)
|
|
56
|
+
*
|
|
57
|
+
* @param argumentNode - Argument AST node
|
|
58
|
+
* @returns Variable identifier name, or undefined if not extractable
|
|
59
|
+
*/
|
|
60
|
+
export declare const extractRefArgumentVariable: (argumentNode: ts.Expression) => string | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Check if argument expression is a TSByRef wrapper object literal.
|
|
63
|
+
*
|
|
64
|
+
* Detects: { value: 0 } or { value: initialValue }
|
|
65
|
+
*
|
|
66
|
+
* @param argumentNode - Argument AST node
|
|
67
|
+
* @returns True if argument is object literal with 'value' property
|
|
68
|
+
*/
|
|
69
|
+
export declare const isTSByRefObjectLiteral: (argumentNode: ts.Expression) => boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Generate C# parameter declaration with modifier.
|
|
72
|
+
*
|
|
73
|
+
* @param modifier - Parameter modifier (ref/out/in/none)
|
|
74
|
+
* @param typeName - C# type name
|
|
75
|
+
* @param paramName - Parameter name
|
|
76
|
+
* @returns C# parameter declaration
|
|
77
|
+
*/
|
|
78
|
+
export declare const generateCSharpParameter: (modifier: ParameterModifier, typeName: string, paramName: string) => string;
|
|
79
|
+
/**
|
|
80
|
+
* Generate C# argument with modifier for method call.
|
|
81
|
+
*
|
|
82
|
+
* @param modifier - Parameter modifier (ref/out/in/none)
|
|
83
|
+
* @param argumentExpression - C# argument expression
|
|
84
|
+
* @returns C# argument with modifier
|
|
85
|
+
*/
|
|
86
|
+
export declare const generateCSharpArgument: (modifier: ParameterModifier, argumentExpression: string) => string;
|
|
87
|
+
/**
|
|
88
|
+
* Check if variable declaration is needed for out parameter.
|
|
89
|
+
*
|
|
90
|
+
* For out parameters in TypeScript:
|
|
91
|
+
* const result = { value: 0 }; // Declaration
|
|
92
|
+
* TryParse("42", result); // Usage
|
|
93
|
+
*
|
|
94
|
+
* For out parameters in C#:
|
|
95
|
+
* TryParse("42", out int result); // Inline declaration
|
|
96
|
+
*
|
|
97
|
+
* @param argumentNode - Argument AST node
|
|
98
|
+
* @returns True if variable should be declared before the call
|
|
99
|
+
*/
|
|
100
|
+
export declare const needsOutVariableDeclaration: (argumentNode: ts.Expression) => boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Extract initial value from TSByRef object literal.
|
|
103
|
+
*
|
|
104
|
+
* { value: 42 } → 42
|
|
105
|
+
* { value: getDefault() } → getDefault()
|
|
106
|
+
*
|
|
107
|
+
* @param argumentNode - Argument AST node (must be object literal)
|
|
108
|
+
* @returns Initial value expression, or undefined if no initializer
|
|
109
|
+
*/
|
|
110
|
+
export declare const extractTSByRefInitialValue: (argumentNode: ts.Expression) => ts.Expression | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Determine if ref/out parameter should use inline declaration in C#.
|
|
113
|
+
*
|
|
114
|
+
* C# 7.0+ supports inline out var:
|
|
115
|
+
* if (int.TryParse("42", out var result)) { ... }
|
|
116
|
+
*
|
|
117
|
+
* We use this when the TypeScript code declares the wrapper inline.
|
|
118
|
+
*
|
|
119
|
+
* @param argumentNode - Argument AST node
|
|
120
|
+
* @returns True if should use inline declaration
|
|
121
|
+
*/
|
|
122
|
+
export declare const shouldUseInlineDeclaration: (argumentNode: ts.Expression) => boolean;
|
|
123
|
+
//# sourceMappingURL=ref-parameters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref-parameters.d.ts","sourceRoot":"","sources":["../../src/types/ref-parameters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC;CAC/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,eAAe,iBAAiB,KAC/B,iBAWF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,eAAe,iBAAiB,KAAG,OAIlE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,EAAE,CAAC,IAAI,EAClB,eAAe,iBAAiB,EAChC,SAAS,EAAE,CAAC,WAAW,KACtB,gBAAgB,GAAG,SAmBrB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,GACrC,cAAc,EAAE,CAAC,UAAU,KAC1B,MAAM,GAAG,SAaX,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,cAAc,EAAE,CAAC,UAAU,KAC1B,OAqBF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAClC,UAAU,iBAAiB,EAC3B,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,MAKF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,iBAAiB,EAC3B,oBAAoB,MAAM,KACzB,MAKF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,GACtC,cAAc,EAAE,CAAC,UAAU,KAC1B,OAYF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,GACrC,cAAc,EAAE,CAAC,UAAU,KAC1B,EAAE,CAAC,UAAU,GAAG,SAgBlB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,GACrC,cAAc,EAAE,CAAC,UAAU,KAC1B,OAGF,CAAC"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ref/Out Parameter Handling - Generate C# ref/out/in keywords from TSByRef wrapper.
|
|
3
|
+
*
|
|
4
|
+
* C# supports pass-by-reference parameters (ref, out, in) which don't have direct
|
|
5
|
+
* JavaScript equivalents. TypeScript code uses TSByRef<T> wrapper:
|
|
6
|
+
*
|
|
7
|
+
* TypeScript: const result = { value: 0 }; TryParse("42", result);
|
|
8
|
+
* C#: int result; TryParse("42", out result);
|
|
9
|
+
*
|
|
10
|
+
* @see spec/ref-out-parameters.md for complete documentation
|
|
11
|
+
*/
|
|
12
|
+
import * as ts from "typescript";
|
|
13
|
+
import { isTSByRef, getTSByRefWrappedType } from "./support-types.js";
|
|
14
|
+
/**
|
|
15
|
+
* Get ref/out/in information from parameter metadata.
|
|
16
|
+
*
|
|
17
|
+
* @param paramMetadata - Parameter metadata from .metadata.json
|
|
18
|
+
* @returns Parameter modifier to use in C# emission
|
|
19
|
+
*/
|
|
20
|
+
export const getParameterModifier = (paramMetadata) => {
|
|
21
|
+
if (paramMetadata.isOut) {
|
|
22
|
+
return "out";
|
|
23
|
+
}
|
|
24
|
+
if (paramMetadata.isRef) {
|
|
25
|
+
return "ref";
|
|
26
|
+
}
|
|
27
|
+
if (paramMetadata.isIn) {
|
|
28
|
+
return "in";
|
|
29
|
+
}
|
|
30
|
+
return "none";
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Check if parameter requires TSByRef wrapper based on metadata.
|
|
34
|
+
*
|
|
35
|
+
* @param paramMetadata - Parameter metadata from .metadata.json
|
|
36
|
+
* @returns True if parameter should use TSByRef<T> in TypeScript
|
|
37
|
+
*/
|
|
38
|
+
export const requiresTSByRef = (paramMetadata) => {
|
|
39
|
+
return (paramMetadata.isRef || paramMetadata.isOut || (paramMetadata.isIn ?? false));
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Get ref parameter info from TypeScript type and metadata.
|
|
43
|
+
*
|
|
44
|
+
* @param paramType - TypeScript parameter type
|
|
45
|
+
* @param paramMetadata - Parameter metadata from .metadata.json
|
|
46
|
+
* @param checker - TypeScript type checker
|
|
47
|
+
* @returns Ref parameter info if applicable, undefined otherwise
|
|
48
|
+
*/
|
|
49
|
+
export const getRefParameterInfo = (paramType, paramMetadata, checker) => {
|
|
50
|
+
// Check if type is TSByRef<T>
|
|
51
|
+
if (!isTSByRef(paramType, checker)) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
// Extract wrapped type
|
|
55
|
+
const wrappedType = getTSByRefWrappedType(paramType, checker);
|
|
56
|
+
if (!wrappedType) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
isRef: paramMetadata.isRef,
|
|
61
|
+
isOut: paramMetadata.isOut,
|
|
62
|
+
isIn: paramMetadata.isIn ?? false,
|
|
63
|
+
modifier: getParameterModifier(paramMetadata),
|
|
64
|
+
wrappedType,
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Extract variable name from TSByRef argument expression.
|
|
69
|
+
*
|
|
70
|
+
* TypeScript: TryParse("42", result) // where result = { value: 0 }
|
|
71
|
+
* C#: TryParse("42", out result)
|
|
72
|
+
*
|
|
73
|
+
* @param argumentNode - Argument AST node
|
|
74
|
+
* @returns Variable identifier name, or undefined if not extractable
|
|
75
|
+
*/
|
|
76
|
+
export const extractRefArgumentVariable = (argumentNode) => {
|
|
77
|
+
// Handle simple identifier
|
|
78
|
+
if (ts.isIdentifier(argumentNode)) {
|
|
79
|
+
return argumentNode.text;
|
|
80
|
+
}
|
|
81
|
+
// Handle property access (unlikely for ref params, but possible)
|
|
82
|
+
if (ts.isPropertyAccessExpression(argumentNode)) {
|
|
83
|
+
return argumentNode.name.text;
|
|
84
|
+
}
|
|
85
|
+
// Cannot extract variable name from complex expressions
|
|
86
|
+
return undefined;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Check if argument expression is a TSByRef wrapper object literal.
|
|
90
|
+
*
|
|
91
|
+
* Detects: { value: 0 } or { value: initialValue }
|
|
92
|
+
*
|
|
93
|
+
* @param argumentNode - Argument AST node
|
|
94
|
+
* @returns True if argument is object literal with 'value' property
|
|
95
|
+
*/
|
|
96
|
+
export const isTSByRefObjectLiteral = (argumentNode) => {
|
|
97
|
+
if (!ts.isObjectLiteralExpression(argumentNode)) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
// Check if object has exactly one property named 'value'
|
|
101
|
+
const properties = argumentNode.properties;
|
|
102
|
+
if (properties.length !== 1) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
const prop = properties[0];
|
|
106
|
+
if (!prop || !ts.isPropertyAssignment(prop)) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
if (!ts.isIdentifier(prop.name)) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
return prop.name.text === "value";
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Generate C# parameter declaration with modifier.
|
|
116
|
+
*
|
|
117
|
+
* @param modifier - Parameter modifier (ref/out/in/none)
|
|
118
|
+
* @param typeName - C# type name
|
|
119
|
+
* @param paramName - Parameter name
|
|
120
|
+
* @returns C# parameter declaration
|
|
121
|
+
*/
|
|
122
|
+
export const generateCSharpParameter = (modifier, typeName, paramName) => {
|
|
123
|
+
if (modifier === "none") {
|
|
124
|
+
return `${typeName} ${paramName}`;
|
|
125
|
+
}
|
|
126
|
+
return `${modifier} ${typeName} ${paramName}`;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Generate C# argument with modifier for method call.
|
|
130
|
+
*
|
|
131
|
+
* @param modifier - Parameter modifier (ref/out/in/none)
|
|
132
|
+
* @param argumentExpression - C# argument expression
|
|
133
|
+
* @returns C# argument with modifier
|
|
134
|
+
*/
|
|
135
|
+
export const generateCSharpArgument = (modifier, argumentExpression) => {
|
|
136
|
+
if (modifier === "none") {
|
|
137
|
+
return argumentExpression;
|
|
138
|
+
}
|
|
139
|
+
return `${modifier} ${argumentExpression}`;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Check if variable declaration is needed for out parameter.
|
|
143
|
+
*
|
|
144
|
+
* For out parameters in TypeScript:
|
|
145
|
+
* const result = { value: 0 }; // Declaration
|
|
146
|
+
* TryParse("42", result); // Usage
|
|
147
|
+
*
|
|
148
|
+
* For out parameters in C#:
|
|
149
|
+
* TryParse("42", out int result); // Inline declaration
|
|
150
|
+
*
|
|
151
|
+
* @param argumentNode - Argument AST node
|
|
152
|
+
* @returns True if variable should be declared before the call
|
|
153
|
+
*/
|
|
154
|
+
export const needsOutVariableDeclaration = (argumentNode) => {
|
|
155
|
+
// If argument is already a simple identifier, it's already declared
|
|
156
|
+
if (ts.isIdentifier(argumentNode)) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
// If argument is an object literal { value: ... }, we need to declare the variable
|
|
160
|
+
if (isTSByRefObjectLiteral(argumentNode)) {
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
return false;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Extract initial value from TSByRef object literal.
|
|
167
|
+
*
|
|
168
|
+
* { value: 42 } → 42
|
|
169
|
+
* { value: getDefault() } → getDefault()
|
|
170
|
+
*
|
|
171
|
+
* @param argumentNode - Argument AST node (must be object literal)
|
|
172
|
+
* @returns Initial value expression, or undefined if no initializer
|
|
173
|
+
*/
|
|
174
|
+
export const extractTSByRefInitialValue = (argumentNode) => {
|
|
175
|
+
if (!ts.isObjectLiteralExpression(argumentNode)) {
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
const properties = argumentNode.properties;
|
|
179
|
+
if (properties.length !== 1) {
|
|
180
|
+
return undefined;
|
|
181
|
+
}
|
|
182
|
+
const prop = properties[0];
|
|
183
|
+
if (!prop || !ts.isPropertyAssignment(prop)) {
|
|
184
|
+
return undefined;
|
|
185
|
+
}
|
|
186
|
+
return prop.initializer;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Determine if ref/out parameter should use inline declaration in C#.
|
|
190
|
+
*
|
|
191
|
+
* C# 7.0+ supports inline out var:
|
|
192
|
+
* if (int.TryParse("42", out var result)) { ... }
|
|
193
|
+
*
|
|
194
|
+
* We use this when the TypeScript code declares the wrapper inline.
|
|
195
|
+
*
|
|
196
|
+
* @param argumentNode - Argument AST node
|
|
197
|
+
* @returns True if should use inline declaration
|
|
198
|
+
*/
|
|
199
|
+
export const shouldUseInlineDeclaration = (argumentNode) => {
|
|
200
|
+
// Use inline declaration if argument is an object literal
|
|
201
|
+
return isTSByRefObjectLiteral(argumentNode);
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=ref-parameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref-parameters.js","sourceRoot":"","sources":["../../src/types/ref-parameters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref-parameters.test.d.ts","sourceRoot":"","sources":["../../src/types/ref-parameters.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for ref/out parameter handling
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it } from "mocha";
|
|
5
|
+
import { strict as assert } from "assert";
|
|
6
|
+
import { getParameterModifier, requiresTSByRef, generateCSharpParameter, generateCSharpArgument, } from "./ref-parameters.js";
|
|
7
|
+
describe("Ref Parameters", () => {
|
|
8
|
+
describe("getParameterModifier", () => {
|
|
9
|
+
it("should return 'out' for out parameter", () => {
|
|
10
|
+
const param = {
|
|
11
|
+
name: "result",
|
|
12
|
+
type: "System.Int32",
|
|
13
|
+
isRef: false,
|
|
14
|
+
isOut: true,
|
|
15
|
+
isParams: false,
|
|
16
|
+
};
|
|
17
|
+
const modifier = getParameterModifier(param);
|
|
18
|
+
assert.equal(modifier, "out");
|
|
19
|
+
});
|
|
20
|
+
it("should return 'ref' for ref parameter", () => {
|
|
21
|
+
const param = {
|
|
22
|
+
name: "value",
|
|
23
|
+
type: "System.Int32",
|
|
24
|
+
isRef: true,
|
|
25
|
+
isOut: false,
|
|
26
|
+
isParams: false,
|
|
27
|
+
};
|
|
28
|
+
const modifier = getParameterModifier(param);
|
|
29
|
+
assert.equal(modifier, "ref");
|
|
30
|
+
});
|
|
31
|
+
it("should return 'in' for in parameter", () => {
|
|
32
|
+
const param = {
|
|
33
|
+
name: "data",
|
|
34
|
+
type: "LargeStruct",
|
|
35
|
+
isRef: false,
|
|
36
|
+
isOut: false,
|
|
37
|
+
isIn: true,
|
|
38
|
+
isParams: false,
|
|
39
|
+
};
|
|
40
|
+
const modifier = getParameterModifier(param);
|
|
41
|
+
assert.equal(modifier, "in");
|
|
42
|
+
});
|
|
43
|
+
it("should return 'none' for regular parameter", () => {
|
|
44
|
+
const param = {
|
|
45
|
+
name: "input",
|
|
46
|
+
type: "System.String",
|
|
47
|
+
isRef: false,
|
|
48
|
+
isOut: false,
|
|
49
|
+
isParams: false,
|
|
50
|
+
};
|
|
51
|
+
const modifier = getParameterModifier(param);
|
|
52
|
+
assert.equal(modifier, "none");
|
|
53
|
+
});
|
|
54
|
+
it("should prioritize 'out' over 'ref'", () => {
|
|
55
|
+
// This should not happen in valid metadata, but test defensive behavior
|
|
56
|
+
const param = {
|
|
57
|
+
name: "weird",
|
|
58
|
+
type: "System.Int32",
|
|
59
|
+
isRef: true,
|
|
60
|
+
isOut: true,
|
|
61
|
+
isParams: false,
|
|
62
|
+
};
|
|
63
|
+
const modifier = getParameterModifier(param);
|
|
64
|
+
assert.equal(modifier, "out");
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe("requiresTSByRef", () => {
|
|
68
|
+
it("should return true for out parameter", () => {
|
|
69
|
+
const param = {
|
|
70
|
+
name: "result",
|
|
71
|
+
type: "System.Int32",
|
|
72
|
+
isRef: false,
|
|
73
|
+
isOut: true,
|
|
74
|
+
isParams: false,
|
|
75
|
+
};
|
|
76
|
+
assert.ok(requiresTSByRef(param));
|
|
77
|
+
});
|
|
78
|
+
it("should return true for ref parameter", () => {
|
|
79
|
+
const param = {
|
|
80
|
+
name: "value",
|
|
81
|
+
type: "System.Int32",
|
|
82
|
+
isRef: true,
|
|
83
|
+
isOut: false,
|
|
84
|
+
isParams: false,
|
|
85
|
+
};
|
|
86
|
+
assert.ok(requiresTSByRef(param));
|
|
87
|
+
});
|
|
88
|
+
it("should return true for in parameter", () => {
|
|
89
|
+
const param = {
|
|
90
|
+
name: "data",
|
|
91
|
+
type: "LargeStruct",
|
|
92
|
+
isRef: false,
|
|
93
|
+
isOut: false,
|
|
94
|
+
isIn: true,
|
|
95
|
+
isParams: false,
|
|
96
|
+
};
|
|
97
|
+
assert.ok(requiresTSByRef(param));
|
|
98
|
+
});
|
|
99
|
+
it("should return false for regular parameter", () => {
|
|
100
|
+
const param = {
|
|
101
|
+
name: "input",
|
|
102
|
+
type: "System.String",
|
|
103
|
+
isRef: false,
|
|
104
|
+
isOut: false,
|
|
105
|
+
isParams: false,
|
|
106
|
+
};
|
|
107
|
+
assert.ok(!requiresTSByRef(param));
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
describe("generateCSharpParameter", () => {
|
|
111
|
+
it("should generate out parameter", () => {
|
|
112
|
+
const param = generateCSharpParameter("out", "int", "result");
|
|
113
|
+
assert.equal(param, "out int result");
|
|
114
|
+
});
|
|
115
|
+
it("should generate ref parameter", () => {
|
|
116
|
+
const param = generateCSharpParameter("ref", "string", "value");
|
|
117
|
+
assert.equal(param, "ref string value");
|
|
118
|
+
});
|
|
119
|
+
it("should generate in parameter", () => {
|
|
120
|
+
const param = generateCSharpParameter("in", "LargeStruct", "data");
|
|
121
|
+
assert.equal(param, "in LargeStruct data");
|
|
122
|
+
});
|
|
123
|
+
it("should generate regular parameter without keyword", () => {
|
|
124
|
+
const param = generateCSharpParameter("none", "string", "input");
|
|
125
|
+
assert.equal(param, "string input");
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe("generateCSharpArgument", () => {
|
|
129
|
+
it("should generate out argument", () => {
|
|
130
|
+
const arg = generateCSharpArgument("out", "result");
|
|
131
|
+
assert.equal(arg, "out result");
|
|
132
|
+
});
|
|
133
|
+
it("should generate ref argument", () => {
|
|
134
|
+
const arg = generateCSharpArgument("ref", "value");
|
|
135
|
+
assert.equal(arg, "ref value");
|
|
136
|
+
});
|
|
137
|
+
it("should generate in argument", () => {
|
|
138
|
+
const arg = generateCSharpArgument("in", "data");
|
|
139
|
+
assert.equal(arg, "in data");
|
|
140
|
+
});
|
|
141
|
+
it("should generate regular argument without keyword", () => {
|
|
142
|
+
const arg = generateCSharpArgument("none", "input");
|
|
143
|
+
assert.equal(arg, "input");
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
//# sourceMappingURL=ref-parameters.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref-parameters.test.js","sourceRoot":"","sources":["../../src/types/ref-parameters.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result type for functional error handling
|
|
3
|
+
*/
|
|
4
|
+
export type Result<T, E> = {
|
|
5
|
+
readonly ok: true;
|
|
6
|
+
readonly value: T;
|
|
7
|
+
} | {
|
|
8
|
+
readonly ok: false;
|
|
9
|
+
readonly error: E;
|
|
10
|
+
};
|
|
11
|
+
export declare const ok: <T, E>(value: T) => Result<T, E>;
|
|
12
|
+
export declare const error: <T, E>(error: E) => Result<T, E>;
|
|
13
|
+
export declare const map: <T, U, E>(result: Result<T, E>, fn: (value: T) => U) => Result<U, E>;
|
|
14
|
+
export declare const flatMap: <T, U, E>(result: Result<T, E>, fn: (value: T) => Result<U, E>) => Result<U, E>;
|
|
15
|
+
export declare const mapError: <T, E, F>(result: Result<T, E>, fn: (error: E) => F) => Result<T, F>;
|
|
16
|
+
export declare const unwrapOr: <T, E>(result: Result<T, E>, defaultValue: T) => T;
|
|
17
|
+
export declare const unwrapOrElse: <T, E>(result: Result<T, E>, fn: (error: E) => T) => T;
|
|
18
|
+
export declare const isOk: <T, E>(result: Result<T, E>) => result is {
|
|
19
|
+
readonly ok: true;
|
|
20
|
+
readonly value: T;
|
|
21
|
+
};
|
|
22
|
+
export declare const isError: <T, E>(result: Result<T, E>) => result is {
|
|
23
|
+
readonly ok: false;
|
|
24
|
+
readonly error: E;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IACnB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9C,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAG7C,CAAC;AAEH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAGhD,CAAC;AAEH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EACzB,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAgD,CAAC;AAE/D,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAC7B,MAAM,CAAC,CAAC,EAAE,CAAC,CAA4C,CAAC;AAE3D,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9B,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAmD,CAAC;AAElE,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,KAAG,CAC9B,CAAC;AAE1C,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,EAC/B,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAClB,CAAkD,CAAC;AAEtD,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EACvB,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KACnB,MAAM,IAAI;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAe,CAAC;AAEnE,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAC1B,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KACnB,MAAM,IAAI;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAgB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result type for functional error handling
|
|
3
|
+
*/
|
|
4
|
+
export const ok = (value) => ({
|
|
5
|
+
ok: true,
|
|
6
|
+
value,
|
|
7
|
+
});
|
|
8
|
+
export const error = (error) => ({
|
|
9
|
+
ok: false,
|
|
10
|
+
error,
|
|
11
|
+
});
|
|
12
|
+
export const map = (result, fn) => (result.ok ? ok(fn(result.value)) : result);
|
|
13
|
+
export const flatMap = (result, fn) => (result.ok ? fn(result.value) : result);
|
|
14
|
+
export const mapError = (result, fn) => (result.ok ? result : error(fn(result.error)));
|
|
15
|
+
export const unwrapOr = (result, defaultValue) => result.ok ? result.value : defaultValue;
|
|
16
|
+
export const unwrapOrElse = (result, fn) => (result.ok ? result.value : fn(result.error));
|
|
17
|
+
export const isOk = (result) => result.ok;
|
|
18
|
+
export const isError = (result) => !result.ok;
|
|
19
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAO,KAAQ,EAAgB,EAAE,CAAC,CAAC;IACnD,EAAE,EAAE,IAAI;IACR,KAAK;CACN,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAO,KAAQ,EAAgB,EAAE,CAAC,CAAC;IACtD,EAAE,EAAE,KAAK;IACT,KAAK;CACN,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,MAAoB,EACpB,EAAmB,EACL,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAoB,EACpB,EAA8B,EAChB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,MAAoB,EACpB,EAAmB,EACL,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAO,MAAoB,EAAE,YAAe,EAAK,EAAE,CACzE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,MAAoB,EACpB,EAAmB,EAChB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,MAAoB,EACgC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AAEnE,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAoB,EACiC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.test.d.ts","sourceRoot":"","sources":["../../src/types/result.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|