goscript 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +41 -0
  2. package/builtin/builtin.ts +368 -348
  3. package/compiler/compile_expr.go +3 -37
  4. package/compiler/index.test.ts +29 -0
  5. package/compiler/index.ts +85 -0
  6. package/dist/builtin/builtin.d.ts +168 -0
  7. package/dist/builtin/builtin.js +372 -0
  8. package/dist/builtin/builtin.js.map +1 -0
  9. package/dist/compiler/index.d.ts +26 -0
  10. package/dist/compiler/index.js +64 -0
  11. package/dist/compiler/index.js.map +1 -0
  12. package/package.json +68 -3
  13. package/.aider-prompt +0 -11
  14. package/compliance/COMPLIANCE.md +0 -133
  15. package/compliance/compliance.go +0 -313
  16. package/compliance/compliance_test.go +0 -57
  17. package/compliance/tests/array_literal/array_literal.go +0 -15
  18. package/compliance/tests/array_literal/array_literal.gs.ts +0 -19
  19. package/compliance/tests/array_literal/expected.log +0 -3
  20. package/compliance/tests/async_basic/async_basic.go +0 -26
  21. package/compliance/tests/async_basic/async_basic.gs.ts +0 -30
  22. package/compliance/tests/async_basic/expected.log +0 -1
  23. package/compliance/tests/basic_arithmetic/basic_arithmetic.go +0 -15
  24. package/compliance/tests/basic_arithmetic/basic_arithmetic.gs.ts +0 -19
  25. package/compliance/tests/basic_arithmetic/expected.log +0 -5
  26. package/compliance/tests/boolean_logic/boolean_logic.go +0 -13
  27. package/compliance/tests/boolean_logic/boolean_logic.gs.ts +0 -17
  28. package/compliance/tests/boolean_logic/expected.log +0 -3
  29. package/compliance/tests/channel_basic/channel_basic.go +0 -12
  30. package/compliance/tests/channel_basic/channel_basic.gs.ts +0 -18
  31. package/compliance/tests/channel_basic/expected.log +0 -1
  32. package/compliance/tests/composite_literal_assignment/composite_literal_assignment.go +0 -20
  33. package/compliance/tests/composite_literal_assignment/composite_literal_assignment.gs.ts +0 -27
  34. package/compliance/tests/composite_literal_assignment/expected.log +0 -2
  35. package/compliance/tests/constants/constants.go +0 -18
  36. package/compliance/tests/constants/constants.gs.ts +0 -22
  37. package/compliance/tests/constants/expected.log +0 -3
  38. package/compliance/tests/copy_independence/copy_independence.go +0 -29
  39. package/compliance/tests/copy_independence/copy_independence.gs.ts +0 -36
  40. package/compliance/tests/copy_independence/expected.log +0 -4
  41. package/compliance/tests/float64/expected.log +0 -6
  42. package/compliance/tests/float64/float64.go +0 -28
  43. package/compliance/tests/float64/float64.gs.ts +0 -32
  44. package/compliance/tests/for_loop_basic/expected.log +0 -5
  45. package/compliance/tests/for_loop_basic/for_loop_basic.go +0 -9
  46. package/compliance/tests/for_loop_basic/for_loop_basic.gs.ts +0 -13
  47. package/compliance/tests/for_loop_condition_only/expected.log +0 -5
  48. package/compliance/tests/for_loop_condition_only/main.go +0 -9
  49. package/compliance/tests/for_loop_condition_only/main.gs.ts +0 -13
  50. package/compliance/tests/for_range/expected.log +0 -9
  51. package/compliance/tests/for_range/for_range.go +0 -26
  52. package/compliance/tests/for_range/for_range.gs.ts +0 -45
  53. package/compliance/tests/for_range_index_use/expected.log +0 -6
  54. package/compliance/tests/for_range_index_use/for_range_index_use.go +0 -11
  55. package/compliance/tests/for_range_index_use/for_range_index_use.gs.ts +0 -18
  56. package/compliance/tests/func_literal/expected.log +0 -1
  57. package/compliance/tests/func_literal/func_literal.go +0 -10
  58. package/compliance/tests/func_literal/func_literal.gs.ts +0 -15
  59. package/compliance/tests/function_call_result_assignment/expected.log +0 -2
  60. package/compliance/tests/function_call_result_assignment/function_call_result_assignment.go +0 -24
  61. package/compliance/tests/function_call_result_assignment/function_call_result_assignment.gs.ts +0 -31
  62. package/compliance/tests/if_statement/expected.log +0 -1
  63. package/compliance/tests/if_statement/if_statement.go +0 -11
  64. package/compliance/tests/if_statement/if_statement.gs.ts +0 -15
  65. package/compliance/tests/interface_to_interface_type_assertion/expected.log +0 -1
  66. package/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.go +0 -30
  67. package/compliance/tests/interface_to_interface_type_assertion/interface_to_interface_type_assertion.gs.ts +0 -41
  68. package/compliance/tests/interface_type_assertion/expected.log +0 -1
  69. package/compliance/tests/interface_type_assertion/interface_type_assertion.go +0 -26
  70. package/compliance/tests/interface_type_assertion/interface_type_assertion.gs.ts +0 -36
  71. package/compliance/tests/map_support/expected.log +0 -13
  72. package/compliance/tests/map_support/map_support.go +0 -89
  73. package/compliance/tests/map_support/map_support.gs.ts +0 -102
  74. package/compliance/tests/method_call_on_pointer_receiver/expected.log +0 -1
  75. package/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.go +0 -19
  76. package/compliance/tests/method_call_on_pointer_receiver/method_call_on_pointer_receiver.gs.ts +0 -27
  77. package/compliance/tests/method_call_on_pointer_via_value/expected.log +0 -1
  78. package/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.go +0 -29
  79. package/compliance/tests/method_call_on_pointer_via_value/method_call_on_pointer_via_value.gs.ts +0 -38
  80. package/compliance/tests/method_call_on_value_receiver/expected.log +0 -1
  81. package/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.go +0 -16
  82. package/compliance/tests/method_call_on_value_receiver/method_call_on_value_receiver.gs.ts +0 -24
  83. package/compliance/tests/method_call_on_value_via_pointer/expected.log +0 -2
  84. package/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.go +0 -30
  85. package/compliance/tests/method_call_on_value_via_pointer/method_call_on_value_via_pointer.gs.ts +0 -38
  86. package/compliance/tests/multiple_return_values/expected.log +0 -6
  87. package/compliance/tests/multiple_return_values/multiple_return_values.go +0 -19
  88. package/compliance/tests/multiple_return_values/multiple_return_values.gs.ts +0 -23
  89. package/compliance/tests/pointer_assignment_no_copy/expected.log +0 -2
  90. package/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.go +0 -28
  91. package/compliance/tests/pointer_assignment_no_copy/pointer_assignment_no_copy.gs.ts +0 -35
  92. package/compliance/tests/pointer_composite_literal_assignment/expected.log +0 -3
  93. package/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.go +0 -23
  94. package/compliance/tests/pointer_composite_literal_assignment/pointer_composite_literal_assignment.gs.ts +0 -30
  95. package/compliance/tests/pointer_deref_multiassign/expected.log +0 -0
  96. package/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.go +0 -17
  97. package/compliance/tests/pointer_deref_multiassign/pointer_deref_multiassign.gs.ts +0 -27
  98. package/compliance/tests/pointer_initialization/expected.log +0 -1
  99. package/compliance/tests/pointer_initialization/pointer_initialization.go +0 -16
  100. package/compliance/tests/pointer_initialization/pointer_initialization.gs.ts +0 -22
  101. package/compliance/tests/select_receive_on_closed_channel_no_default/expected.log +0 -1
  102. package/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.go +0 -15
  103. package/compliance/tests/select_receive_on_closed_channel_no_default/select_receive_on_closed_channel_no_default.gs.ts +0 -31
  104. package/compliance/tests/select_send_on_full_buffered_channel_with_default/expected.log +0 -1
  105. package/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.go +0 -13
  106. package/compliance/tests/select_send_on_full_buffered_channel_with_default/select_send_on_full_buffered_channel_with_default.gs.ts +0 -35
  107. package/compliance/tests/select_statement/expected.log +0 -9
  108. package/compliance/tests/select_statement/select_statement.go +0 -109
  109. package/compliance/tests/select_statement/select_statement.gs.ts +0 -239
  110. package/compliance/tests/simple/expected.log +0 -1
  111. package/compliance/tests/simple/simple.go +0 -5
  112. package/compliance/tests/simple/simple.gs.ts +0 -9
  113. package/compliance/tests/simple_deref_assignment/expected.log +0 -2
  114. package/compliance/tests/simple_deref_assignment/simple_deref_assignment.go +0 -19
  115. package/compliance/tests/simple_deref_assignment/simple_deref_assignment.gs.ts +0 -26
  116. package/compliance/tests/slices/expected.log +0 -7
  117. package/compliance/tests/slices/slices.go +0 -22
  118. package/compliance/tests/slices/slices.gs.ts +0 -26
  119. package/compliance/tests/string_rune_conversion/expected.log +0 -3
  120. package/compliance/tests/string_rune_conversion/string_rune_conversion.go +0 -16
  121. package/compliance/tests/string_rune_conversion/string_rune_conversion.gs.ts +0 -22
  122. package/compliance/tests/struct_field_access/expected.log +0 -2
  123. package/compliance/tests/struct_field_access/struct_field_access.go +0 -13
  124. package/compliance/tests/struct_field_access/struct_field_access.gs.ts +0 -20
  125. package/compliance/tests/struct_value_init_clone/expected.log +0 -5
  126. package/compliance/tests/struct_value_init_clone/struct_value_init_clone.go +0 -28
  127. package/compliance/tests/struct_value_init_clone/struct_value_init_clone.gs.ts +0 -35
  128. package/compliance/tests/switch_statement/expected.log +0 -14
  129. package/compliance/tests/switch_statement/switch_statement.go +0 -59
  130. package/compliance/tests/switch_statement/switch_statement.gs.ts +0 -85
  131. package/compliance/tests/value_type_copy_behavior/expected.log +0 -3
  132. package/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.go +0 -25
  133. package/compliance/tests/value_type_copy_behavior/value_type_copy_behavior.gs.ts +0 -34
  134. package/design/DESIGN.md +0 -599
  135. package/example/simple/build.bash +0 -10
  136. package/example/simple/go.mod +0 -23
  137. package/example/simple/go.sum +0 -39
  138. package/example/simple/main.go +0 -138
  139. package/example/simple/main.gs.ts +0 -133
  140. package/example/simple/main.ts +0 -3
  141. package/example/simple/main_test.go +0 -59
  142. package/example/simple/main_tools.go +0 -5
  143. package/example/simple/package.json +0 -7
  144. package/example/simple/run.bash +0 -6
  145. package/example/simple/tsconfig.json +0 -28
  146. package/example/simple/yarn.lock +0 -8
  147. package/output/output.go +0 -10
  148. package/tsconfig.json +0 -10
  149. package/types/tokens.go +0 -65
  150. package/types/types.go +0 -46
package/README.md CHANGED
@@ -93,6 +93,47 @@ func main() {
93
93
 
94
94
  This example initializes the compiler, creates a compiler instance, and then calls `CompilePackages` to translate the specified Go package into TypeScript files in the output directory.
95
95
 
96
+ ### TypeScript API
97
+
98
+ You can also use GoScript programmatically within your Node.js projects.
99
+
100
+ **Installation:**
101
+
102
+ ```bash
103
+ npm install goscript
104
+ # or
105
+ yarn add goscript
106
+ ```
107
+
108
+ **Usage:**
109
+
110
+ ```typescript
111
+ import { compile } from 'goscript';
112
+ import * as path from 'path';
113
+
114
+ async function runCompilation() {
115
+ const exampleDir = path.resolve(__dirname, 'path/to/your/go/project'); // Adjust path accordingly
116
+ const outputDir = path.join(exampleDir, 'ts_output');
117
+
118
+ try {
119
+ await compile({
120
+ pkg: '.', // Compile the package in the exampleDir
121
+ dir: exampleDir,
122
+ output: outputDir,
123
+ // Optional: specify path to goscript CLI if not in PATH or using go run
124
+ // goscriptPath: '/path/to/goscript/executable'
125
+ });
126
+ console.log(`Compilation successful! Output in ${outputDir}`);
127
+ } catch (error) {
128
+ console.error('Compilation failed:', error);
129
+ }
130
+ }
131
+
132
+ runCompilation();
133
+ ```
134
+
135
+ This example imports the `compile` function, configures it to compile a Go package located in `exampleDir`, and outputs the TypeScript files to `outputDir`.
136
+
96
137
  ## Roadmap
97
138
 
98
139
  Check [the compliance tests](./compliance/COMPLIANCE.md) for implementation progress.