frontend-hamroun 1.2.79 → 1.2.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +129 -1513
- package/bin/cli.js +505 -144
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.client.cjs +2 -0
- package/dist/index.client.cjs.map +1 -0
- package/dist/index.client.js +26 -0
- package/dist/index.client.js.map +1 -0
- package/dist/index.js +298 -1
- package/dist/index.js.map +1 -0
- package/dist/jsx-runtime.cjs +2 -0
- package/dist/jsx-runtime.cjs.map +1 -0
- package/dist/jsx-runtime.js +93 -1
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/renderer-Bo9zkUZ_.js +52 -0
- package/dist/renderer-Bo9zkUZ_.js.map +1 -0
- package/dist/renderer-Din1y3YM.cjs +2 -0
- package/dist/renderer-Din1y3YM.cjs.map +1 -0
- package/dist/server-renderer-CqIpQ-od.cjs +2 -0
- package/dist/server-renderer-CqIpQ-od.cjs.map +1 -0
- package/dist/server-renderer-QHt45Ip2.js +255 -0
- package/dist/server-renderer-QHt45Ip2.js.map +1 -0
- package/dist/server-renderer.cjs +2 -0
- package/dist/server-renderer.cjs.map +1 -0
- package/dist/server-renderer.js +5 -1
- package/dist/server-renderer.js.map +1 -0
- package/package.json +77 -120
- package/templates/basic-app/build.js +22 -0
- package/templates/basic-app/bun.lock +196 -0
- package/templates/basic-app/dev.js +27 -0
- package/templates/basic-app/docs/rapport_pfe.aux +27 -27
- package/templates/basic-app/docs/rapport_pfe.out +10 -10
- package/templates/basic-app/docs/rapport_pfe.toc +14 -14
- package/templates/basic-app/esbuild.config.js +28 -0
- package/templates/basic-app/index.html +1 -1
- package/templates/{fullstack-app → basic-app}/package-lock.json +4185 -5094
- package/templates/basic-app/package.json +29 -28
- package/templates/basic-app/server.js +24 -0
- package/templates/basic-app/src/App.tsx +26 -0
- package/templates/basic-app/src/client.tsx +11 -0
- package/templates/basic-app/src/components/Counter.tsx +18 -0
- package/templates/basic-app/src/jsx-shim.ts +4 -0
- package/templates/basic-app/src/main.tsx +0 -1
- package/templates/basic-app/src/server.ts +52 -0
- package/templates/basic-app/tsconfig.server.json +11 -0
- package/templates/fullstack-app/build/main.css +874 -874
- package/templates/fullstack-app/build/main.css.map +7 -7
- package/templates/fullstack-app/build/main.js +967 -967
- package/templates/fullstack-app/build/main.js.map +7 -7
- package/templates/fullstack-app/public/styles.css +768 -768
- package/templates/go/example.go +99 -154
- package/templates/go-wasm-app/babel.config.js +2 -8
- package/templates/go-wasm-app/package.json +12 -21
- package/templates/go-wasm-app/public/wasm/wasm_exec.js +561 -561
- package/templates/go-wasm-app/public/wasm/wasm_exec_node.js +39 -39
- package/templates/go-wasm-app/server.js +510 -59
- package/templates/go-wasm-app/src/app.js +2 -22
- package/templates/go-wasm-app/src/wasm/example.go +75 -75
- package/templates/go-wasm-app/vite.config.js +5 -16
- package/templates/ssr-template/server.js +2 -2
- package/templates/ssr-template/vite.config.js +5 -16
- package/dist/Counter.d.ts +0 -0
- package/dist/batch/package.json +0 -16
- package/dist/client-router/package.json +0 -16
- package/dist/component/package.json +0 -16
- package/dist/context/package.json +0 -16
- package/dist/event-bus/package.json +0 -16
- package/dist/forms/package.json +0 -16
- package/dist/hooks/package.json +0 -16
- package/dist/hooks-0728361a.cjs +0 -1
- package/dist/hooks-b58f947c.js +0 -133
- package/dist/hooks.js +0 -1
- package/dist/hooks.mjs +0 -13
- package/dist/index.mjs +0 -137
- package/dist/jsx-runtime/package.json +0 -16
- package/dist/jsx-runtime.mjs +0 -64
- package/dist/lifecycle-events/package.json +0 -16
- package/dist/package.json +0 -71
- package/dist/render-component/package.json +0 -16
- package/dist/renderer/package.json +0 -16
- package/dist/renderer.js +0 -1
- package/dist/renderer.mjs +0 -27
- package/dist/router/package.json +0 -16
- package/dist/server/package.json +0 -17
- package/dist/server/src/batch.d.ts +0 -3
- package/dist/server/src/batch.js +0 -23
- package/dist/server/src/batch.js.map +0 -1
- package/dist/server/src/client-router.d.ts +0 -60
- package/dist/server/src/client-router.js +0 -210
- package/dist/server/src/client-router.js.map +0 -1
- package/dist/server/src/component.d.ts +0 -14
- package/dist/server/src/component.js +0 -106
- package/dist/server/src/component.js.map +0 -1
- package/dist/server/src/context.d.ts +0 -13
- package/dist/server/src/context.js +0 -21
- package/dist/server/src/context.js.map +0 -1
- package/dist/server/src/event-bus.d.ts +0 -23
- package/dist/server/src/event-bus.js +0 -75
- package/dist/server/src/event-bus.js.map +0 -1
- package/dist/server/src/forms.d.ts +0 -40
- package/dist/server/src/forms.js +0 -148
- package/dist/server/src/forms.js.map +0 -1
- package/dist/server/src/hooks.d.ts +0 -12
- package/dist/server/src/hooks.js +0 -170
- package/dist/server/src/hooks.js.map +0 -1
- package/dist/server/src/index.client.d.ts +0 -12
- package/dist/server/src/index.client.js +0 -14
- package/dist/server/src/index.client.js.map +0 -1
- package/dist/server/src/index.d.ts +0 -88
- package/dist/server/src/index.js +0 -79
- package/dist/server/src/index.js.map +0 -1
- package/dist/server/src/jsx-runtime/jsx-dev-runtime.d.ts +0 -1
- package/dist/server/src/jsx-runtime/jsx-dev-runtime.js +0 -2
- package/dist/server/src/jsx-runtime/jsx-dev-runtime.js.map +0 -1
- package/dist/server/src/jsx-runtime/jsx-runtime.d.ts +0 -4
- package/dist/server/src/jsx-runtime/jsx-runtime.js +0 -41
- package/dist/server/src/jsx-runtime/jsx-runtime.js.map +0 -1
- package/dist/server/src/jsx-runtime.d.ts +0 -20
- package/dist/server/src/jsx-runtime.js +0 -105
- package/dist/server/src/jsx-runtime.js.map +0 -1
- package/dist/server/src/lifecycle-events.d.ts +0 -108
- package/dist/server/src/lifecycle-events.js +0 -177
- package/dist/server/src/lifecycle-events.js.map +0 -1
- package/dist/server/src/renderComponent.d.ts +0 -13
- package/dist/server/src/renderComponent.js +0 -30
- package/dist/server/src/renderComponent.js.map +0 -1
- package/dist/server/src/renderer.d.ts +0 -2
- package/dist/server/src/renderer.js +0 -31
- package/dist/server/src/renderer.js.map +0 -1
- package/dist/server/src/router.d.ts +0 -55
- package/dist/server/src/router.js +0 -166
- package/dist/server/src/router.js.map +0 -1
- package/dist/server/src/server/api-router.d.ts +0 -15
- package/dist/server/src/server/api-router.js +0 -111
- package/dist/server/src/server/api-router.js.map +0 -1
- package/dist/server/src/server/auth.d.ts +0 -32
- package/dist/server/src/server/auth.js +0 -80
- package/dist/server/src/server/auth.js.map +0 -1
- package/dist/server/src/server/database.d.ts +0 -24
- package/dist/server/src/server/database.js +0 -135
- package/dist/server/src/server/database.js.map +0 -1
- package/dist/server/src/server/index.d.ts +0 -116
- package/dist/server/src/server/index.js +0 -508
- package/dist/server/src/server/index.js.map +0 -1
- package/dist/server/src/server/middleware.d.ts +0 -11
- package/dist/server/src/server/middleware.js +0 -46
- package/dist/server/src/server/middleware.js.map +0 -1
- package/dist/server/src/server/server.d.ts +0 -9
- package/dist/server/src/server/server.js +0 -87
- package/dist/server/src/server/server.js.map +0 -1
- package/dist/server/src/server/templates.d.ts +0 -30
- package/dist/server/src/server/templates.js +0 -208
- package/dist/server/src/server/templates.js.map +0 -1
- package/dist/server/src/server/types.d.ts +0 -38
- package/dist/server/src/server/types.js +0 -4
- package/dist/server/src/server/types.js.map +0 -1
- package/dist/server/src/server/utils.d.ts +0 -70
- package/dist/server/src/server/utils.js +0 -156
- package/dist/server/src/server/utils.js.map +0 -1
- package/dist/server/src/server/wasm.d.ts +0 -9
- package/dist/server/src/server/wasm.js +0 -117
- package/dist/server/src/server/wasm.js.map +0 -1
- package/dist/server/src/server-renderer.d.ts +0 -5
- package/dist/server/src/server-renderer.js +0 -106
- package/dist/server/src/server-renderer.js.map +0 -1
- package/dist/server/src/server-types.d.ts +0 -42
- package/dist/server/src/server-types.js +0 -6
- package/dist/server/src/server-types.js.map +0 -1
- package/dist/server/src/store.d.ts +0 -41
- package/dist/server/src/store.js +0 -99
- package/dist/server/src/store.js.map +0 -1
- package/dist/server/src/types.d.ts +0 -19
- package/dist/server/src/types.js +0 -2
- package/dist/server/src/types.js.map +0 -1
- package/dist/server/src/utils.d.ts +0 -46
- package/dist/server/src/utils.js +0 -144
- package/dist/server/src/utils.js.map +0 -1
- package/dist/server/src/vdom.d.ts +0 -8
- package/dist/server/src/vdom.js +0 -22
- package/dist/server/src/vdom.js.map +0 -1
- package/dist/server/src/wasm.d.ts +0 -36
- package/dist/server/src/wasm.js +0 -159
- package/dist/server/src/wasm.js.map +0 -1
- package/dist/server/tsconfig.server.tsbuildinfo +0 -1
- package/dist/server-renderer/package.json +0 -16
- package/dist/server-renderer.mjs +0 -64
- package/dist/store/package.json +0 -16
- package/dist/types/package.json +0 -16
- package/dist/utils/package.json +0 -16
- package/dist/vdom/package.json +0 -16
- package/dist/wasm/package.json +0 -16
- package/dist/wasm.js +0 -1
- package/dist/wasm.mjs +0 -103
- package/templates/basic-app/docs/rapport_pfe.log +0 -399
- package/templates/complete-app/client.js +0 -58
- package/templates/complete-app/package-lock.json +0 -2536
- package/templates/complete-app/package.json +0 -17
- package/templates/complete-app/pages/about.js +0 -119
- package/templates/complete-app/pages/index.js +0 -157
- package/templates/complete-app/pages/wasm-demo.js +0 -290
- package/templates/complete-app/public/client.js +0 -80
- package/templates/complete-app/public/index.html +0 -47
- package/templates/complete-app/public/styles.css +0 -579
- package/templates/complete-app/readme.md +0 -188
- package/templates/complete-app/server.js +0 -417
- package/templates/complete-app/server.ts +0 -275
- package/templates/complete-app/src/App.tsx +0 -59
- package/templates/complete-app/src/client.ts +0 -61
- package/templates/complete-app/src/client.tsx +0 -18
- package/templates/complete-app/src/pages/index.tsx +0 -51
- package/templates/complete-app/src/server.ts +0 -218
- package/templates/complete-app/tsconfig.json +0 -22
- package/templates/complete-app/tsconfig.server.json +0 -19
- package/templates/complete-app/vite.config.js +0 -57
- package/templates/complete-app/vite.config.ts +0 -30
- package/templates/go-wasm-app/build.config.js +0 -62
- package/templates/go-wasm-app/build.js +0 -218
- package/templates/go-wasm-app/package-lock.json +0 -3732
package/templates/go/example.go
CHANGED
@@ -4,202 +4,147 @@
|
|
4
4
|
package main
|
5
5
|
|
6
6
|
import (
|
7
|
+
"encoding/json"
|
7
8
|
"fmt"
|
8
|
-
"strconv"
|
9
|
-
"strings"
|
10
9
|
"syscall/js"
|
11
10
|
)
|
12
11
|
|
13
|
-
//
|
14
|
-
func
|
15
|
-
// Set up global functions that will be accessible from JavaScript
|
16
|
-
js.Global().Set("goAdd", js.FuncOf(goAdd))
|
17
|
-
js.Global().Set("goSubtract", js.FuncOf(goSubtract))
|
18
|
-
js.Global().Set("goMultiply", js.FuncOf(goMultiply))
|
19
|
-
js.Global().Set("goDivide", js.FuncOf(goDivide))
|
20
|
-
js.Global().Set("goReverseString", js.FuncOf(goReverseString))
|
21
|
-
js.Global().Set("goCalculateFactorial", js.FuncOf(goCalculateFactorial))
|
22
|
-
js.Global().Set("goProcessArray", js.FuncOf(goProcessArray))
|
23
|
-
|
24
|
-
// Keep the Go program running until the context is done
|
25
|
-
// This is necessary for WebAssembly modules
|
26
|
-
<-make(chan bool)
|
27
|
-
}
|
28
|
-
|
29
|
-
// goAdd adds two numbers and returns the result
|
30
|
-
func goAdd(this js.Value, args []js.Value) interface{} {
|
12
|
+
// Basic arithmetic functions
|
13
|
+
func add(this js.Value, args []js.Value) interface{} {
|
31
14
|
if len(args) != 2 {
|
32
|
-
return
|
33
|
-
"error": "Expected 2 arguments: number, number",
|
34
|
-
}
|
35
|
-
}
|
36
|
-
|
37
|
-
// Parse string arguments as numbers
|
38
|
-
a, errA := strconv.ParseFloat(args[0].String(), 64)
|
39
|
-
b, errB := strconv.ParseFloat(args[1].String(), 64)
|
40
|
-
|
41
|
-
// Check for parsing errors
|
42
|
-
if errA != nil || errB != nil {
|
43
|
-
return map[string]interface{}{
|
44
|
-
"error": "Arguments must be valid numbers",
|
45
|
-
}
|
15
|
+
return js.ValueOf("Error: add requires 2 arguments")
|
46
16
|
}
|
47
17
|
|
48
|
-
|
49
|
-
|
18
|
+
a := args[0].Int()
|
19
|
+
b := args[1].Int()
|
20
|
+
return js.ValueOf(a + b)
|
50
21
|
}
|
51
22
|
|
52
|
-
|
53
|
-
func goSubtract(this js.Value, args []js.Value) interface{} {
|
23
|
+
func subtract(this js.Value, args []js.Value) interface{} {
|
54
24
|
if len(args) != 2 {
|
55
|
-
return
|
56
|
-
"error": "Expected 2 arguments: number, number",
|
57
|
-
}
|
58
|
-
}
|
59
|
-
|
60
|
-
// Parse string arguments as numbers
|
61
|
-
a, errA := strconv.ParseFloat(args[0].String(), 64)
|
62
|
-
b, errB := strconv.ParseFloat(args[1].String(), 64)
|
63
|
-
|
64
|
-
// Check for parsing errors
|
65
|
-
if errA != nil || errB != nil {
|
66
|
-
return map[string]interface{}{
|
67
|
-
"error": "Arguments must be valid numbers",
|
68
|
-
}
|
25
|
+
return js.ValueOf("Error: subtract requires 2 arguments")
|
69
26
|
}
|
70
27
|
|
71
|
-
|
72
|
-
|
28
|
+
a := args[0].Int()
|
29
|
+
b := args[1].Int()
|
30
|
+
return js.ValueOf(a - b)
|
73
31
|
}
|
74
32
|
|
75
|
-
|
76
|
-
func goMultiply(this js.Value, args []js.Value) interface{} {
|
33
|
+
func multiply(this js.Value, args []js.Value) interface{} {
|
77
34
|
if len(args) != 2 {
|
78
|
-
return
|
79
|
-
"error": "Expected 2 arguments: number, number",
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
|
-
// Parse string arguments as numbers
|
84
|
-
a, errA := strconv.ParseFloat(args[0].String(), 64)
|
85
|
-
b, errB := strconv.ParseFloat(args[1].String(), 64)
|
86
|
-
|
87
|
-
// Check for parsing errors
|
88
|
-
if errA != nil || errB != nil {
|
89
|
-
return map[string]interface{}{
|
90
|
-
"error": "Arguments must be valid numbers",
|
91
|
-
}
|
35
|
+
return js.ValueOf("Error: multiply requires 2 arguments")
|
92
36
|
}
|
93
37
|
|
94
|
-
|
95
|
-
|
38
|
+
a := args[0].Int()
|
39
|
+
b := args[1].Int()
|
40
|
+
return js.ValueOf(a * b)
|
96
41
|
}
|
97
42
|
|
98
|
-
//
|
99
|
-
func
|
100
|
-
if len(args)
|
101
|
-
return
|
102
|
-
"error": "Expected 2 arguments: number, number",
|
103
|
-
}
|
104
|
-
}
|
105
|
-
|
106
|
-
// Parse string arguments as numbers
|
107
|
-
a, errA := strconv.ParseFloat(args[0].String(), 64)
|
108
|
-
b, errB := strconv.ParseFloat(args[1].String(), 64)
|
109
|
-
|
110
|
-
// Check for parsing errors
|
111
|
-
if errA != nil || errB != nil {
|
112
|
-
return map[string]interface{}{
|
113
|
-
"error": "Arguments must be valid numbers",
|
114
|
-
}
|
43
|
+
// String operations
|
44
|
+
func concat(this js.Value, args []js.Value) interface{} {
|
45
|
+
if len(args) < 1 {
|
46
|
+
return js.ValueOf("")
|
115
47
|
}
|
116
48
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
"error": "Division by zero is not allowed",
|
121
|
-
}
|
49
|
+
result := ""
|
50
|
+
for _, arg := range args {
|
51
|
+
result += arg.String()
|
122
52
|
}
|
123
|
-
|
124
|
-
// Return the result
|
125
|
-
return fmt.Sprintf("%g", a/b)
|
53
|
+
return js.ValueOf(result)
|
126
54
|
}
|
127
55
|
|
128
|
-
//
|
129
|
-
func
|
56
|
+
// JSON operations
|
57
|
+
func parseJSON(this js.Value, args []js.Value) interface{} {
|
130
58
|
if len(args) != 1 {
|
131
|
-
return
|
132
|
-
"error": "Expected 1 argument: string",
|
133
|
-
}
|
59
|
+
return js.ValueOf("Error: parseJSON requires 1 argument")
|
134
60
|
}
|
135
61
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
runes[i], runes[j] = runes[j], runes[i]
|
62
|
+
jsonStr := args[0].String()
|
63
|
+
var result interface{}
|
64
|
+
err := json.Unmarshal([]byte(jsonStr), &result)
|
65
|
+
if err != nil {
|
66
|
+
return js.ValueOf("Error parsing JSON: " + err.Error())
|
142
67
|
}
|
143
68
|
|
144
|
-
|
69
|
+
// Convert result to JS value
|
70
|
+
return mapToJSValue(result)
|
145
71
|
}
|
146
72
|
|
147
|
-
//
|
148
|
-
func
|
149
|
-
|
150
|
-
|
151
|
-
|
73
|
+
// Helper functions for JSON conversion
|
74
|
+
func mapToJSValue(value interface{}) js.Value {
|
75
|
+
switch v := value.(type) {
|
76
|
+
case map[string]interface{}:
|
77
|
+
result := js.Global().Get("Object").New()
|
78
|
+
for key, val := range v {
|
79
|
+
result.Set(key, mapToJSValue(val))
|
152
80
|
}
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
// Check for parsing errors
|
159
|
-
if err != nil {
|
160
|
-
return map[string]interface{}{
|
161
|
-
"error": "Argument must be a valid integer",
|
81
|
+
return result
|
82
|
+
case []interface{}:
|
83
|
+
result := js.Global().Get("Array").New(len(v))
|
84
|
+
for i, val := range v {
|
85
|
+
result.SetIndex(i, mapToJSValue(val))
|
162
86
|
}
|
87
|
+
return result
|
88
|
+
case string:
|
89
|
+
return js.ValueOf(v)
|
90
|
+
case float64:
|
91
|
+
return js.ValueOf(v)
|
92
|
+
case bool:
|
93
|
+
return js.ValueOf(v)
|
94
|
+
case nil:
|
95
|
+
return js.ValueOf(nil)
|
96
|
+
default:
|
97
|
+
return js.ValueOf(fmt.Sprint(v))
|
163
98
|
}
|
99
|
+
}
|
164
100
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
}
|
101
|
+
// Special utility functions for string handling between Go and JS
|
102
|
+
func __stringToGo(this js.Value, args []js.Value) interface{} {
|
103
|
+
if len(args) != 1 {
|
104
|
+
return js.ValueOf(-1)
|
170
105
|
}
|
106
|
+
return args[0] // Pass through
|
107
|
+
}
|
171
108
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
result *= i
|
109
|
+
func __stringFromGo(this js.Value, args []js.Value) interface{} {
|
110
|
+
if len(args) != 1 {
|
111
|
+
return js.ValueOf("")
|
176
112
|
}
|
177
|
-
|
178
|
-
return fmt.Sprintf("%d", result)
|
113
|
+
return args[0] // Pass through
|
179
114
|
}
|
180
115
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
return map[string]interface{}{
|
185
|
-
"error": "Expected 1 argument: comma-separated string",
|
186
|
-
}
|
116
|
+
func __objectToGo(this js.Value, args []js.Value) interface{} {
|
117
|
+
if len(args) != 1 {
|
118
|
+
return js.ValueOf(-1)
|
187
119
|
}
|
120
|
+
return args[0] // Pass through
|
121
|
+
}
|
188
122
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
// Process each part
|
194
|
-
var results []string
|
195
|
-
for _, part := range parts {
|
196
|
-
// Trim whitespace
|
197
|
-
trimmed := strings.TrimSpace(part)
|
198
|
-
|
199
|
-
// Convert to uppercase and add to results
|
200
|
-
results = append(results, strings.ToUpper(trimmed))
|
123
|
+
func __objectFromGo(this js.Value, args []js.Value) interface{} {
|
124
|
+
if len(args) != 1 {
|
125
|
+
return js.ValueOf("")
|
201
126
|
}
|
127
|
+
return args[0] // Pass through
|
128
|
+
}
|
202
129
|
|
203
|
-
|
204
|
-
|
130
|
+
func main() {
|
131
|
+
fmt.Println("Go WebAssembly module initialized")
|
132
|
+
|
133
|
+
// Register functions to make available to JavaScript
|
134
|
+
js.Global().Set("goAdd", js.FuncOf(add))
|
135
|
+
js.Global().Set("goSubtract", js.FuncOf(subtract))
|
136
|
+
js.Global().Set("goMultiply", js.FuncOf(multiply))
|
137
|
+
js.Global().Set("goConcat", js.FuncOf(concat))
|
138
|
+
js.Global().Set("goParseJSON", js.FuncOf(parseJSON))
|
139
|
+
|
140
|
+
// Register special utility functions for frontend-hamroun integration
|
141
|
+
js.Global().Set("__stringToGo", js.FuncOf(__stringToGo))
|
142
|
+
js.Global().Set("__stringFromGo", js.FuncOf(__stringFromGo))
|
143
|
+
js.Global().Set("__objectToGo", js.FuncOf(__objectToGo))
|
144
|
+
js.Global().Set("__objectFromGo", js.FuncOf(__objectFromGo))
|
145
|
+
|
146
|
+
// Keep the program running
|
147
|
+
c := make(chan struct{}, 0)
|
148
|
+
fmt.Println("Go WebAssembly module ready")
|
149
|
+
<-c
|
205
150
|
}
|
@@ -1,11 +1,9 @@
|
|
1
|
-
|
1
|
+
export default {
|
2
2
|
presets: [
|
3
3
|
['@babel/preset-env', {
|
4
4
|
targets: {
|
5
5
|
node: 'current'
|
6
|
-
}
|
7
|
-
// Enable dynamic imports for both ESM and CommonJS
|
8
|
-
modules: false
|
6
|
+
}
|
9
7
|
}]
|
10
8
|
],
|
11
9
|
plugins: [
|
@@ -15,7 +13,3 @@ const config = {
|
|
15
13
|
}]
|
16
14
|
]
|
17
15
|
};
|
18
|
-
|
19
|
-
// Support both ESM and CommonJS
|
20
|
-
export default config;
|
21
|
-
module.exports = config;
|
@@ -1,32 +1,23 @@
|
|
1
1
|
{
|
2
2
|
"name": "go-wasm-app",
|
3
3
|
"version": "1.0.0",
|
4
|
-
"
|
5
|
-
"
|
4
|
+
"description": "WebAssembly integration with Go for Frontend Hamroun with SSR",
|
5
|
+
"type": "module",
|
6
|
+
"main": "server.js",
|
6
7
|
"scripts": {
|
7
|
-
"
|
8
|
-
"
|
9
|
-
"build:wasm
|
10
|
-
"
|
11
|
-
"
|
8
|
+
"build:wasm": "node build-wasm.js",
|
9
|
+
"prepare": "node -e \"if (!require('fs').existsSync('public/wasm')) { require('fs').mkdirSync('public/wasm', {recursive: true}); }\"",
|
10
|
+
"dev": "npm run build:wasm && node --watch server.js",
|
11
|
+
"build": "npm run build:wasm && node -e \"require('fs').mkdirSync('dist', {recursive: true}); require('fs-extra').copySync('public', 'dist')\"",
|
12
|
+
"start": "cross-env NODE_ENV=production node server.js"
|
12
13
|
},
|
13
14
|
"dependencies": {
|
14
15
|
"express": "^4.18.2",
|
15
|
-
"frontend-hamroun": "
|
16
|
+
"frontend-hamroun": "^1.2.71",
|
17
|
+
"fs-extra": "^10.0.0"
|
16
18
|
},
|
17
19
|
"devDependencies": {
|
18
|
-
"
|
19
|
-
"
|
20
|
-
"nodemon": "^3.0.1",
|
21
|
-
"vitest": "^0.34.6"
|
22
|
-
},
|
23
|
-
"engines": {
|
24
|
-
"node": ">=16.0.0"
|
25
|
-
},
|
26
|
-
"exports": {
|
27
|
-
".": {
|
28
|
-
"import": "./dist/assets/client.mjs",
|
29
|
-
"require": "./dist/assets/client.js"
|
30
|
-
}
|
20
|
+
"@babel/core": "^7.22.9",
|
21
|
+
"cross-env": "^7.0.3"
|
31
22
|
}
|
32
23
|
}
|