spiceflow 0.0.7 → 1.0.1

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 (151) hide show
  1. package/README.md +1 -171
  2. package/dist/client/errors.d.ts +7 -0
  3. package/dist/client/errors.d.ts.map +1 -0
  4. package/dist/client/errors.js +18 -0
  5. package/dist/client/errors.js.map +1 -0
  6. package/dist/client/index.d.ts +15 -0
  7. package/dist/client/index.d.ts.map +1 -0
  8. package/dist/client/index.js +376 -0
  9. package/dist/client/index.js.map +1 -0
  10. package/dist/client/types.d.ts +87 -0
  11. package/dist/client/types.d.ts.map +1 -0
  12. package/dist/client/types.js +2 -0
  13. package/dist/client/types.js.map +1 -0
  14. package/dist/client/utils.d.ts +2 -0
  15. package/dist/client/utils.d.ts.map +1 -0
  16. package/dist/client/utils.js +9 -0
  17. package/dist/client/utils.js.map +1 -0
  18. package/dist/client/ws.d.ts +15 -0
  19. package/dist/client/ws.d.ts.map +1 -0
  20. package/dist/client/ws.js +51 -0
  21. package/dist/client/ws.js.map +1 -0
  22. package/dist/client.test.d.ts +2 -0
  23. package/dist/client.test.d.ts.map +1 -0
  24. package/dist/client.test.js +237 -0
  25. package/dist/client.test.js.map +1 -0
  26. package/dist/elysia-fork/context.d.ts +87 -0
  27. package/dist/elysia-fork/context.d.ts.map +1 -0
  28. package/dist/elysia-fork/context.js +2 -0
  29. package/dist/elysia-fork/context.js.map +1 -0
  30. package/dist/elysia-fork/error.d.ts +246 -0
  31. package/dist/elysia-fork/error.d.ts.map +1 -0
  32. package/dist/elysia-fork/error.js +195 -0
  33. package/dist/elysia-fork/error.js.map +1 -0
  34. package/dist/elysia-fork/types.d.ts +570 -0
  35. package/dist/elysia-fork/types.d.ts.map +1 -0
  36. package/dist/elysia-fork/types.js +3 -0
  37. package/dist/elysia-fork/types.js.map +1 -0
  38. package/dist/elysia-fork/utils.d.ts +134 -0
  39. package/dist/elysia-fork/utils.d.ts.map +1 -0
  40. package/dist/elysia-fork/utils.js +70 -0
  41. package/dist/elysia-fork/utils.js.map +1 -0
  42. package/dist/index.d.ts +2 -7
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +1 -22
  45. package/dist/index.js.map +1 -1
  46. package/dist/spiceflow.d.ts +237 -0
  47. package/dist/spiceflow.d.ts.map +1 -0
  48. package/dist/spiceflow.js +484 -0
  49. package/dist/spiceflow.js.map +1 -0
  50. package/dist/spiceflow.test.d.ts +2 -0
  51. package/dist/spiceflow.test.d.ts.map +1 -0
  52. package/dist/spiceflow.test.js +225 -0
  53. package/dist/spiceflow.test.js.map +1 -0
  54. package/dist/stream.test.d.ts +2 -0
  55. package/dist/stream.test.d.ts.map +1 -0
  56. package/dist/stream.test.js +286 -0
  57. package/dist/stream.test.js.map +1 -0
  58. package/dist/types.d.ts +1 -0
  59. package/dist/types.d.ts.map +1 -0
  60. package/dist/types.js +2 -0
  61. package/dist/types.js.map +1 -0
  62. package/dist/utils.d.ts +4 -20
  63. package/dist/utils.d.ts.map +1 -1
  64. package/dist/utils.js +17 -46
  65. package/dist/utils.js.map +1 -1
  66. package/package.json +12 -37
  67. package/src/client/errors.ts +21 -0
  68. package/src/client/index.ts +541 -0
  69. package/src/client/types.ts +233 -0
  70. package/src/client/utils.ts +7 -0
  71. package/src/client/ws.ts +99 -0
  72. package/src/client.test.ts +235 -0
  73. package/src/elysia-fork/context.ts +196 -0
  74. package/src/elysia-fork/error.ts +293 -0
  75. package/src/elysia-fork/types.ts +1353 -0
  76. package/src/elysia-fork/utils.ts +85 -0
  77. package/src/index.ts +2 -34
  78. package/src/spiceflow.test.ts +290 -0
  79. package/src/spiceflow.ts +1251 -0
  80. package/src/stream.test.ts +342 -0
  81. package/src/types.ts +0 -0
  82. package/src/utils.ts +21 -70
  83. package/context.d.ts +0 -2
  84. package/context.js +0 -1
  85. package/dist/babel.test.d.ts +0 -2
  86. package/dist/babel.test.d.ts.map +0 -1
  87. package/dist/babel.test.js +0 -27
  88. package/dist/babel.test.js.map +0 -1
  89. package/dist/babelDebugOutputs.d.ts +0 -9
  90. package/dist/babelDebugOutputs.d.ts.map +0 -1
  91. package/dist/babelDebugOutputs.js +0 -34
  92. package/dist/babelDebugOutputs.js.map +0 -1
  93. package/dist/babelTransformRpc.d.ts +0 -19
  94. package/dist/babelTransformRpc.d.ts.map +0 -1
  95. package/dist/babelTransformRpc.js +0 -285
  96. package/dist/babelTransformRpc.js.map +0 -1
  97. package/dist/browser.d.ts +0 -8
  98. package/dist/browser.d.ts.map +0 -1
  99. package/dist/browser.js +0 -126
  100. package/dist/browser.js.map +0 -1
  101. package/dist/build.d.ts +0 -13
  102. package/dist/build.d.ts.map +0 -1
  103. package/dist/build.js +0 -230
  104. package/dist/build.js.map +0 -1
  105. package/dist/cli.d.ts +0 -3
  106. package/dist/cli.d.ts.map +0 -1
  107. package/dist/cli.js +0 -111
  108. package/dist/cli.js.map +0 -1
  109. package/dist/context-internal.d.ts +0 -20
  110. package/dist/context-internal.d.ts.map +0 -1
  111. package/dist/context-internal.js +0 -16
  112. package/dist/context-internal.js.map +0 -1
  113. package/dist/context.d.ts +0 -2
  114. package/dist/context.d.ts.map +0 -1
  115. package/dist/context.js +0 -2
  116. package/dist/context.js.map +0 -1
  117. package/dist/expose.d.ts +0 -6
  118. package/dist/expose.d.ts.map +0 -1
  119. package/dist/expose.js +0 -32
  120. package/dist/expose.js.map +0 -1
  121. package/dist/headers.d.ts +0 -2
  122. package/dist/headers.d.ts.map +0 -1
  123. package/dist/headers.js +0 -18
  124. package/dist/headers.js.map +0 -1
  125. package/dist/jsonRpc.d.ts +0 -32
  126. package/dist/jsonRpc.d.ts.map +0 -1
  127. package/dist/jsonRpc.js +0 -3
  128. package/dist/jsonRpc.js.map +0 -1
  129. package/dist/server.d.ts +0 -32
  130. package/dist/server.d.ts.map +0 -1
  131. package/dist/server.js +0 -292
  132. package/dist/server.js.map +0 -1
  133. package/headers.d.ts +0 -2
  134. package/headers.js +0 -1
  135. package/sdk-template/package.json +0 -22
  136. package/sdk-template/src/index.ts +0 -2
  137. package/sdk-template/src/v1/example.ts +0 -5
  138. package/sdk-template/src/v1/generator.ts +0 -12
  139. package/sdk-template/tsconfig.json +0 -16
  140. package/src/babel.test.ts +0 -35
  141. package/src/babelDebugOutputs.ts +0 -56
  142. package/src/babelTransformRpc.ts +0 -394
  143. package/src/browser.ts +0 -141
  144. package/src/build.ts +0 -298
  145. package/src/cli.ts +0 -132
  146. package/src/context-internal.ts +0 -36
  147. package/src/context.ts +0 -5
  148. package/src/expose.ts +0 -34
  149. package/src/headers.ts +0 -19
  150. package/src/jsonRpc.ts +0 -43
  151. package/src/server.ts +0 -384
@@ -0,0 +1,342 @@
1
+ import { describe, it, expect } from 'vitest'
2
+
3
+ import { createParser } from 'eventsource-parser'
4
+
5
+ import { Spiceflow } from './spiceflow'
6
+
7
+ import { req, sleep } from './utils'
8
+
9
+ function textEventStream(items: string[]) {
10
+ return items
11
+ .map((item) => `event: message\ndata: ${JSON.stringify(item)}\n\n`)
12
+ .join('')
13
+ }
14
+
15
+ function parseTextEventStreamItem(item: string) {
16
+ const data = item.split('data: ')[1].split('\n')[0]
17
+ return JSON.parse(data)
18
+ }
19
+
20
+ describe('Stream', () => {
21
+ it('handle stream', async () => {
22
+ const expected = ['a', 'b', 'c']
23
+
24
+ const app = new Spiceflow().get('/', async function* () {
25
+ yield 'a'
26
+ await sleep(10)
27
+
28
+ yield 'b'
29
+ await sleep(10)
30
+
31
+ yield 'c'
32
+ })
33
+
34
+ const response = await app
35
+ .handle(req('/'))
36
+ .then((x) => x.body)
37
+ .then((x) => {
38
+ if (!x) return
39
+
40
+ const reader = x?.getReader()
41
+
42
+ let acc = ''
43
+ const { promise, resolve } = Promise.withResolvers()
44
+
45
+ reader.read().then(function pump({ done, value }): unknown {
46
+ if (done) return resolve(acc)
47
+
48
+ expect(parseTextEventStreamItem(value.toString())).toBe(
49
+ expected.shift()!
50
+ )
51
+
52
+ acc += value.toString()
53
+ return reader.read().then(pump)
54
+ })
55
+
56
+ return promise
57
+ })
58
+
59
+ expect(expected).toHaveLength(0)
60
+ expect(response).toBe(textEventStream(['a', 'b', 'c']))
61
+ })
62
+ it('handle errors after yield', async () => {
63
+ const app = new Spiceflow().get('/', async function* () {
64
+ yield 'a'
65
+ await sleep(10)
66
+
67
+ throw new Error('an error')
68
+ })
69
+
70
+ const response = await app.handle(req('/')).then((x) => x.text())
71
+
72
+ expect(response).toBe(
73
+ 'event: message\ndata: "a"\n\nevent: error\ndata: "an error"\n\n'
74
+ )
75
+ })
76
+
77
+ it('handle errors before yield when aot is false', async () => {
78
+ const app = new Spiceflow()
79
+ .onError(({ error }) => {
80
+ return new Response(error.message)
81
+ })
82
+ .get('/', async function* () {
83
+ throw new Error('an error xxxx')
84
+ })
85
+
86
+ const response = await app.handle(req('/')).then((x) => x.text())
87
+
88
+ expect(response).toContain('an error')
89
+ })
90
+
91
+ it.todo('handle errors before yield when aot is true', async () => {
92
+ const app = new Spiceflow()
93
+ .onError(({ error }) => {
94
+ return new Response(error.message)
95
+ })
96
+ .get('/', async function* () {
97
+ throw new Error('an error')
98
+ })
99
+
100
+ const response = await app.handle(req('/')).then((x) => x.text())
101
+
102
+ expect(response).toContain('an error')
103
+ })
104
+
105
+ it.todo('handle errors before yield with onError', async () => {
106
+ const expected = 'error expected'
107
+ const app = new Spiceflow()
108
+ .onError(({}) => {
109
+ return new Response(expected)
110
+ })
111
+ .get('/', async function* () {
112
+ throw new Error('an error')
113
+ })
114
+
115
+ const response = await app.handle(req('/')).then((x) => x.text())
116
+
117
+ expect(response).toBe(expected)
118
+ })
119
+
120
+ it('stop stream on canceled request', async () => {
121
+ const expected = ['a', 'b']
122
+
123
+ const app = new Spiceflow().get('/', async function* () {
124
+ yield 'a'
125
+ await sleep(10)
126
+
127
+ yield 'b'
128
+ await sleep(10)
129
+
130
+ yield 'c'
131
+ })
132
+
133
+ const controller = new AbortController()
134
+
135
+ setTimeout(() => {
136
+ controller.abort()
137
+ }, 15)
138
+
139
+ const response = await app
140
+ .handle(
141
+ new Request('http://e.ly', {
142
+ signal: controller.signal
143
+ })
144
+ )
145
+ .then((x) => x.body)
146
+ .then((x) => {
147
+ if (!x) return
148
+
149
+ const reader = x?.getReader()
150
+
151
+ let acc = ''
152
+ const { promise, resolve } = Promise.withResolvers()
153
+
154
+ reader.read().then(function pump({ done, value }): unknown {
155
+ if (done) {
156
+ return resolve(acc)
157
+ }
158
+
159
+ expect(parseTextEventStreamItem(value.toString())).toBe(
160
+ expected.shift()!
161
+ )
162
+
163
+ acc += value.toString()
164
+ return reader.read().then(pump)
165
+ })
166
+
167
+ return promise
168
+ })
169
+
170
+ expect(expected).toHaveLength(0)
171
+ expect(response).toBe(textEventStream(['a', 'b']))
172
+ })
173
+
174
+ // it('mutate set before yield is called', async () => {
175
+ // const expected = ['a', 'b', 'c']
176
+
177
+ // const app = new Spiceflow().get('/', function* () {
178
+ // set.headers['access-control-allow-origin'] = 'http://saltyaom.com'
179
+
180
+ // yield 'a'
181
+ // yield 'b'
182
+ // yield 'c'
183
+ // })
184
+
185
+ // const response = await app.handle(req('/')).then((x) => x.headers)
186
+
187
+ // expect(response.get('access-control-allow-origin')).toBe(
188
+ // 'http://saltyaom.com'
189
+ // )
190
+ // })
191
+ it('handle stream with objects', async () => {
192
+ const objects = [
193
+ { message: 'hello' },
194
+ { response: 'world' },
195
+ { data: [1, 2, 3] },
196
+ { result: [4, 5, 6] }
197
+ ]
198
+ const app = new Spiceflow().get('/', async function* ({}) {
199
+ for (const obj of objects) {
200
+ yield obj
201
+ }
202
+ })
203
+
204
+ const body = await app.handle(req('/')).then((x) => x.body)
205
+
206
+ let events = [] as any[]
207
+ const parser = createParser((event) => {
208
+ events.push(event)
209
+ })
210
+ const { promise, resolve } = Promise.withResolvers<void>()
211
+ const reader = body?.getReader()!
212
+
213
+ reader.read().then(function pump({ done, value }): unknown {
214
+ if (done) {
215
+ return resolve()
216
+ }
217
+ const text = value.toString()
218
+ parser.feed(text)
219
+ return reader.read().then(pump)
220
+ })
221
+ await promise
222
+
223
+ expect(events.map((x) => x.data)).toEqual(
224
+ objects.map((x) => JSON.stringify(x))
225
+ )
226
+ })
227
+
228
+ // it('mutate set before yield is called', async () => {
229
+ // const expected = ['a', 'b', 'c']
230
+
231
+ // const app = new Spiceflow().get('/', function* () {
232
+ // set.headers['access-control-allow-origin'] = 'http://saltyaom.com'
233
+
234
+ // yield 'a'
235
+ // yield 'b'
236
+ // yield 'c'
237
+ // })
238
+
239
+ // const response = await app.handle(req('/')).then((x) => x.headers)
240
+
241
+ // expect(response.get('access-control-allow-origin')).toBe(
242
+ // 'http://saltyaom.com'
243
+ // )
244
+ // })
245
+
246
+ // it('async mutate set before yield is called', async () => {
247
+ // const expected = ['a', 'b', 'c']
248
+
249
+ // const app = new Spiceflow().get('/', async function* () {
250
+ // set.headers['access-control-allow-origin'] = 'http://saltyaom.com'
251
+
252
+ // yield 'a'
253
+ // yield 'b'
254
+ // yield 'c'
255
+ // })
256
+
257
+ // const response = await app.handle(req('/')).then((x) => x.headers)
258
+
259
+ // expect(response.get('access-control-allow-origin')).toBe(
260
+ // 'http://saltyaom.com'
261
+ // )
262
+ // })
263
+
264
+ it('return value if not yield', async () => {
265
+ const app = new Spiceflow()
266
+ .get('/', function* () {
267
+ return 'hello'
268
+ })
269
+ .get('/json', function* () {
270
+ return { hello: 'world' }
271
+ })
272
+
273
+ const response = await Promise.all([
274
+ app.handle(req('/')),
275
+ app.handle(req('/json'))
276
+ ])
277
+
278
+ expect(await response[0].text()).toBe('"hello"')
279
+ expect(await response[1].json()).toEqual({
280
+ hello: 'world'
281
+ })
282
+ })
283
+
284
+ it('return async value if not yield', async () => {
285
+ const app = new Spiceflow()
286
+ .get('/', function* () {
287
+ return 'hello'
288
+ })
289
+ .get('/json', function* () {
290
+ return { hello: 'world' }
291
+ })
292
+
293
+ const response = await Promise.all([
294
+ app.handle(req('/')),
295
+ app.handle(req('/json'))
296
+ ])
297
+
298
+ expect(await response[0].text()).toBe('"hello"')
299
+ expect(await response[1].json()).toEqual({
300
+ hello: 'world'
301
+ })
302
+ })
303
+
304
+ it('handle object and array', async () => {
305
+ const expected = [{ a: 'b' }, ['a'], ['a', 1, { a: 'b' }]]
306
+ const expectedResponse = JSON.stringify([...expected])
307
+ let i = 0
308
+
309
+ const app = new Spiceflow().get('/', async function* () {
310
+ yield expected[0]
311
+ await sleep(10)
312
+
313
+ yield expected[1]
314
+ await sleep(10)
315
+
316
+ yield expected[2]
317
+ })
318
+
319
+ const response = await app
320
+ .handle(req('/'))
321
+ .then((x) => x.body)
322
+ .then((x) => {
323
+ if (!x) return
324
+
325
+ const reader = x?.getReader()
326
+
327
+ const { promise, resolve } = Promise.withResolvers<void>()
328
+
329
+ reader.read().then(function pump({ done, value }): unknown {
330
+ if (done) return resolve()
331
+
332
+ expect(parseTextEventStreamItem(value.toString())).toEqual(
333
+ expected[i++]
334
+ )
335
+
336
+ return reader.read().then(pump)
337
+ })
338
+
339
+ return promise
340
+ })
341
+ })
342
+ })
package/src/types.ts ADDED
File without changes
package/src/utils.ts CHANGED
@@ -1,75 +1,26 @@
1
- import { PluginPass, parse, traverse } from '@babel/core';
2
-
3
- import { Node, types } from '@babel/core';
4
- import { JsonRpcError, JsonRpcErrorResponse } from './jsonRpc.js';
5
-
6
- const PURE_ANNOTATION = '#__PURE__';
7
-
8
- export function annotateAsPure<N extends Node>(t: typeof types, node: N): N {
9
- t.addComment(node, 'leading', PURE_ANNOTATION);
10
- return node;
1
+ // deno-lint-ignore no-explicit-any
2
+ export const deepFreeze = (value: any) => {
3
+ for (const key of Reflect.ownKeys(value)) {
4
+ if (value[key] && typeof value[key] === 'object') {
5
+ deepFreeze(value[key])
6
+ }
7
+ }
8
+ return Object.freeze(value)
11
9
  }
12
10
 
13
- export type Literal =
14
- | number
15
- | string
16
- | boolean
17
- | { [key: string]: Literal }
18
- | Literal[];
19
-
20
- const enabled = !!process.env.DEBUG_ACTIONS;
21
- export const logger = {
22
- log(...args) {
23
- enabled && console.log('[actions]:', ...args);
24
- },
25
- error(...args) {
26
- enabled && console.log('[actions]:', ...args);
27
- },
28
- };
29
-
30
- export function getFileName(state: PluginPass) {
31
- const { filename, cwd } = state;
32
-
33
- if (!filename) {
34
- return undefined;
35
- }
36
-
37
- if (cwd && filename.startsWith(cwd)) {
38
- return filename.slice(cwd.length + 1);
39
- }
40
-
41
- return filename;
42
- }
43
- export const directive = 'use spiceflow';
44
-
45
- export function jsonRpcError({
46
- id = null,
47
- message,
48
- code = 1,
49
- }): JsonRpcErrorResponse {
50
- return {
51
- jsonrpc: '2.0',
52
- id,
53
- error: {
54
- code,
55
- message,
56
- data: null,
57
- },
58
- };
59
- }
60
-
61
- export function camelCaseCapitalized(str: string) {
62
- // functionName -> FunctionName
63
- // CamelCase -> CamelCase
64
- // camelCase -> CamelCase
65
-
66
- if (str.length === 0) {
67
- return str;
68
- }
69
- const first = str[0].toUpperCase();
70
- return first + str.slice(1);
11
+ export const req = (path: string, options?: RequestInit) =>
12
+ new Request(`http://localhost${path}`, options)
13
+
14
+ export function isAsyncIterable(obj: any): obj is AsyncGenerator<any> {
15
+ return (
16
+ typeof obj === 'object' &&
17
+ typeof obj.next === 'function' &&
18
+ typeof obj.return === 'function' &&
19
+ typeof obj.throw === 'function' &&
20
+ typeof obj.return === 'function'
21
+ )
71
22
  }
72
23
 
73
- export function removeExtension(filePath: string) {
74
- return filePath.replace(/\.[j|t]sx?$/, '');
24
+ export function sleep(ms: number) {
25
+ return new Promise((resolve) => setTimeout(resolve, ms))
75
26
  }
package/context.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import * as context from './dist/context';
2
- export = context;
package/context.js DELETED
@@ -1 +0,0 @@
1
- export * from './dist/context';
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=babel.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"babel.test.d.ts","sourceRoot":"","sources":["../src/babel.test.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- import { test, expect } from 'vitest';
2
- import { parseExpression } from '@babel/parser';
3
- import generate from '@babel/generator';
4
- // import { parseExpression } from './utils';
5
- test('parseExpression', () => {
6
- {
7
- const parsed = parseExpression('{ "type": "StringLiteral", "value": "/api/actions-node" }');
8
- const code = generate(parsed).code;
9
- expect(code).toMatchInlineSnapshot(`
10
- "{
11
- "type": "StringLiteral",
12
- "value": "/api/actions-node"
13
- }"
14
- `);
15
- }
16
- {
17
- const parsed = parseExpression('null');
18
- const code = generate(parsed).code;
19
- expect(code).toMatchInlineSnapshot(`"null"`);
20
- }
21
- {
22
- const parsed = parseExpression(`typeof wrapMethod === 'function' ? wrapMethod : undefined`);
23
- const code = generate(parsed).code;
24
- expect(code).toMatchInlineSnapshot(`"typeof wrapMethod === 'function' ? wrapMethod : undefined"`);
25
- }
26
- });
27
- //# sourceMappingURL=babel.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"babel.test.js","sourceRoot":"","sources":["../src/babel.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAGxC,6CAA6C;AAE7C,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC3B,CAAC;QACC,MAAM,MAAM,GAAG,eAAe,CAC5B,2DAA2D,CAC5D,CAAC;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC;;;;;KAKlC,CAAC,CAAC;IACL,CAAC;IACD,CAAC;QACC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,CAAC;QACC,MAAM,MAAM,GAAG,eAAe,CAC5B,2DAA2D,CAC5D,CAAC;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAChC,6DAA6D,CAC9D,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import * as babel from '@babel/core';
2
- import * as types from '@babel/types';
3
- import { PluginOptions } from './babelTransformRpc.js';
4
- type Babel = {
5
- types: typeof types;
6
- };
7
- export default function debugOutputsPlugin({ types: t }: Babel, { isServer }: PluginOptions): babel.PluginObj | undefined;
8
- export {};
9
- //# sourceMappingURL=babelDebugOutputs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"babelDebugOutputs.d.ts","sourceRoot":"","sources":["../src/babelDebugOutputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKvD,KAAK,KAAK,GAAG;IAAE,KAAK,EAAE,OAAO,KAAK,CAAA;CAAE,CAAC;AAIrC,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EACnB,EAAE,QAAQ,EAAE,EAAE,aAAa,GAC1B,KAAK,CAAC,SAAS,GAAG,SAAS,CAuC7B"}
@@ -1,34 +0,0 @@
1
- import generate from '@babel/generator';
2
- import fs from 'fs';
3
- import { default as nodePath, default as path } from 'path';
4
- import { getFileName, logger } from './utils.js';
5
- let deletedDir = false;
6
- export default function debugOutputsPlugin({ types: t }, { isServer }) {
7
- const cwd = process.cwd();
8
- if (!deletedDir) {
9
- deletedDir = true;
10
- fs.mkdirSync('./actions-outputs', { recursive: true });
11
- }
12
- return {
13
- visitor: {
14
- Program: {
15
- exit(program, state) {
16
- var _a;
17
- const filePath = (_a = getFileName(state)) !== null && _a !== void 0 ? _a : nodePath.join('pages', 'Default.js');
18
- if (!process.env.DEBUG_ACTIONS) {
19
- return;
20
- }
21
- // stringify the AST and print it
22
- const output = generate(program.node, {
23
- /* options */
24
- }, this.file.code);
25
- let p = path.resolve('./actions-outputs', isServer ? 'server/' : 'client/', path.relative(cwd, path.resolve(filePath)));
26
- logger.log(`${isServer ? 'server' : 'client'} plugin output:`, p);
27
- fs.mkdirSync(path.dirname(p), { recursive: true });
28
- fs.writeFileSync(p, output.code);
29
- },
30
- },
31
- },
32
- };
33
- }
34
- //# sourceMappingURL=babelDebugOutputs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"babelDebugOutputs.js","sourceRoot":"","sources":["../src/babelDebugOutputs.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIjD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,EAAE,KAAK,EAAE,CAAC,EAAS,EACnB,EAAE,QAAQ,EAAiB;IAE3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,IAAI,CAAC;QAElB,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,IAAI,CAAC,OAAO,EAAE,KAAK;;oBACjB,MAAM,QAAQ,GACZ,MAAA,WAAW,CAAC,KAAK,CAAC,mCAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;oBAE7D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;wBAC/B,OAAO;oBACT,CAAC;oBAED,iCAAiC;oBACjC,MAAM,MAAM,GAAG,QAAQ,CACrB,OAAO,CAAC,IAAI,EACZ;oBACE,aAAa;qBACd,EACD,IAAI,CAAC,IAAI,CAAC,IAAI,CACf,CAAC;oBACF,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAClB,mBAAmB,EACnB,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAC3C,CAAC;oBACF,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,iBAAiB,EAAE,CAAC,CAAC,CAAC;oBAClE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnD,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,19 +0,0 @@
1
- import * as babel from '@babel/core';
2
- import type * as types from '@babel/types';
3
- import { WrapMethodMeta } from './server.js';
4
- type Babel = {
5
- types: typeof types;
6
- };
7
- export declare function getConfigObject(program: babel.NodePath<babel.types.Program>): {
8
- isEdge: boolean;
9
- } | undefined;
10
- export declare function isEdgeInConfig(configObject?: babel.NodePath<babel.types.ObjectExpression>): boolean;
11
- export interface PluginOptions {
12
- isServer: boolean;
13
- rootDir: string;
14
- onMethod?: (method: WrapMethodMeta) => void;
15
- url?: string;
16
- }
17
- export default function ({ types: t }: Babel, { rootDir, onMethod, isServer, url: rpcUrl }: PluginOptions): babel.PluginObj;
18
- export {};
19
- //# sourceMappingURL=babelTransformRpc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"babelTransformRpc.d.ts","sourceRoot":"","sources":["../src/babelTransformRpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAGrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,KAAK,KAAK,GAAG;IAAE,KAAK,EAAE,OAAO,KAAK,CAAA;CAAE,CAAC;AA+CrC,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;;cAe3E;AAmDD,wBAAgB,cAAc,CAC5B,YAAY,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAC1D,OAAO,CAoBT;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,CAAC,OAAO,WACZ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EACnB,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,aAAa,GAC1D,KAAK,CAAC,SAAS,CA6OjB"}