@resonatehq/supabase 0.1.8 → 0.1.9
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/index.d.ts +2 -14
- package/dist/index.js +15 -31
- package/package.json +1 -1
- package/src/index.ts +27 -60
package/dist/index.d.ts
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type OnTerminateCallback = (result: {
|
|
3
|
-
status: "completed";
|
|
4
|
-
data?: any;
|
|
5
|
-
} | {
|
|
6
|
-
status: "suspended";
|
|
7
|
-
result: string[];
|
|
8
|
-
}) => Promise<void>;
|
|
9
|
-
export { Context };
|
|
1
|
+
import { type Encryptor, type Func } from "@resonatehq/sdk";
|
|
10
2
|
export declare class Resonate {
|
|
11
3
|
private registry;
|
|
12
4
|
private dependencies;
|
|
13
5
|
private verbose;
|
|
14
6
|
private encryptor;
|
|
15
|
-
|
|
16
|
-
private onTerminateFn?;
|
|
17
|
-
constructor({ verbose, encryptor, prefix, }?: {
|
|
7
|
+
constructor({ verbose, encryptor, }?: {
|
|
18
8
|
verbose?: boolean;
|
|
19
9
|
encryptor?: Encryptor;
|
|
20
|
-
prefix?: string;
|
|
21
10
|
});
|
|
22
11
|
register<F extends Func>(name: string, func: F, options?: {
|
|
23
12
|
version?: number;
|
|
@@ -26,7 +15,6 @@ export declare class Resonate {
|
|
|
26
15
|
version?: number;
|
|
27
16
|
}): void;
|
|
28
17
|
setDependency(name: string, obj: any): void;
|
|
29
|
-
onTerminate(fn: OnTerminateCallback): void;
|
|
30
18
|
handler(req: Request): Promise<Response>;
|
|
31
19
|
httpHandler(): Deno.HttpServer;
|
|
32
20
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Handler, HttpNetwork, JsonEncoder, NoopEncryptor, NoopHeartbeat, NoopTracer, OptionsBuilder, Registry, ResonateInner, WallClock, } from "@resonatehq/sdk";
|
|
2
2
|
export class Resonate {
|
|
3
|
-
constructor({ verbose = false, encryptor = undefined,
|
|
3
|
+
constructor({ verbose = false, encryptor = undefined, } = {}) {
|
|
4
4
|
this.registry = new Registry();
|
|
5
5
|
this.dependencies = new Map();
|
|
6
6
|
this.verbose = verbose;
|
|
7
7
|
this.encryptor = encryptor ?? new NoopEncryptor();
|
|
8
|
-
this.idPrefix = prefix ? `${prefix}:` : "";
|
|
9
8
|
}
|
|
10
9
|
register(nameOrFunc, funcOrOptions, maybeOptions = {}) {
|
|
11
10
|
const { version = 1 } = (typeof funcOrOptions === "object" ? funcOrOptions : maybeOptions) ?? {};
|
|
@@ -16,9 +15,6 @@ export class Resonate {
|
|
|
16
15
|
setDependency(name, obj) {
|
|
17
16
|
this.dependencies.set(name, obj);
|
|
18
17
|
}
|
|
19
|
-
onTerminate(fn) {
|
|
20
|
-
this.onTerminateFn = fn;
|
|
21
|
-
}
|
|
22
18
|
async handler(req) {
|
|
23
19
|
try {
|
|
24
20
|
if (req.method !== "POST") {
|
|
@@ -66,18 +62,13 @@ export class Resonate {
|
|
|
66
62
|
dependencies: this.dependencies,
|
|
67
63
|
optsBuilder: new OptionsBuilder({
|
|
68
64
|
match: (_) => url,
|
|
69
|
-
idPrefix:
|
|
65
|
+
idPrefix: "",
|
|
70
66
|
}),
|
|
71
67
|
verbose: this.verbose,
|
|
72
68
|
tracer,
|
|
73
69
|
});
|
|
74
70
|
const task = { kind: "unclaimed", task: body.task };
|
|
75
|
-
const
|
|
76
|
-
if (this.onTerminateFn) {
|
|
77
|
-
await this.onTerminateFn(data);
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
return new Promise((resolve) => {
|
|
71
|
+
const completion = new Promise((resolve) => {
|
|
81
72
|
resonateInner.process(tracer.startSpan(task.task.rootPromiseId, clock.now()), task, (error, status) => {
|
|
82
73
|
if (error || !status) {
|
|
83
74
|
resolve(new Response(JSON.stringify({
|
|
@@ -89,34 +80,27 @@ export class Resonate {
|
|
|
89
80
|
return;
|
|
90
81
|
}
|
|
91
82
|
if (status.kind === "completed") {
|
|
92
|
-
|
|
83
|
+
resolve(new Response(JSON.stringify({
|
|
93
84
|
status: "completed",
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
requestUrl: url,
|
|
100
|
-
}), { status: 200 }));
|
|
101
|
-
});
|
|
85
|
+
result: status.promise.value,
|
|
86
|
+
requestUrl: url,
|
|
87
|
+
}), {
|
|
88
|
+
status: 200,
|
|
89
|
+
}));
|
|
102
90
|
return;
|
|
103
91
|
}
|
|
104
92
|
else if (status.kind === "suspended") {
|
|
105
|
-
|
|
93
|
+
resolve(new Response(JSON.stringify({
|
|
106
94
|
status: "suspended",
|
|
107
|
-
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
requestUrl: url,
|
|
112
|
-
}), {
|
|
113
|
-
status: 200,
|
|
114
|
-
}));
|
|
115
|
-
});
|
|
95
|
+
requestUrl: url,
|
|
96
|
+
}), {
|
|
97
|
+
status: 200,
|
|
98
|
+
}));
|
|
116
99
|
return;
|
|
117
100
|
}
|
|
118
101
|
});
|
|
119
102
|
});
|
|
103
|
+
return completion;
|
|
120
104
|
}
|
|
121
105
|
catch (error) {
|
|
122
106
|
return new Response(JSON.stringify({
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Context,
|
|
3
2
|
type Encryptor,
|
|
4
3
|
type Func,
|
|
5
4
|
Handler,
|
|
@@ -15,29 +14,18 @@ import {
|
|
|
15
14
|
WallClock,
|
|
16
15
|
} from "@resonatehq/sdk";
|
|
17
16
|
|
|
18
|
-
type OnTerminateCallback = (
|
|
19
|
-
result:
|
|
20
|
-
| { status: "completed"; data?: any }
|
|
21
|
-
| { status: "suspended"; result: string[] },
|
|
22
|
-
) => Promise<void>;
|
|
23
|
-
|
|
24
|
-
export { Context };
|
|
25
17
|
export class Resonate {
|
|
26
18
|
private registry = new Registry();
|
|
27
19
|
private dependencies = new Map<string, any>();
|
|
28
20
|
private verbose: boolean;
|
|
29
21
|
private encryptor: Encryptor;
|
|
30
|
-
private idPrefix: string;
|
|
31
|
-
private onTerminateFn?: OnTerminateCallback;
|
|
32
22
|
|
|
33
23
|
constructor({
|
|
34
24
|
verbose = false,
|
|
35
25
|
encryptor = undefined,
|
|
36
|
-
|
|
37
|
-
}: { verbose?: boolean; encryptor?: Encryptor; prefix?: string } = {}) {
|
|
26
|
+
}: { verbose?: boolean; encryptor?: Encryptor } = {}) {
|
|
38
27
|
this.verbose = verbose;
|
|
39
28
|
this.encryptor = encryptor ?? new NoopEncryptor();
|
|
40
|
-
this.idPrefix = prefix ? `${prefix}:` : "";
|
|
41
29
|
}
|
|
42
30
|
|
|
43
31
|
public register<F extends Func>(
|
|
@@ -76,9 +64,6 @@ export class Resonate {
|
|
|
76
64
|
public setDependency(name: string, obj: any): void {
|
|
77
65
|
this.dependencies.set(name, obj);
|
|
78
66
|
}
|
|
79
|
-
public onTerminate(fn: OnTerminateCallback): void {
|
|
80
|
-
this.onTerminateFn = fn;
|
|
81
|
-
}
|
|
82
67
|
|
|
83
68
|
public async handler(req: Request): Promise<Response> {
|
|
84
69
|
try {
|
|
@@ -144,7 +129,7 @@ export class Resonate {
|
|
|
144
129
|
dependencies: this.dependencies,
|
|
145
130
|
optsBuilder: new OptionsBuilder({
|
|
146
131
|
match: (_: string): string => url,
|
|
147
|
-
idPrefix:
|
|
132
|
+
idPrefix: "",
|
|
148
133
|
}),
|
|
149
134
|
verbose: this.verbose,
|
|
150
135
|
tracer,
|
|
@@ -152,17 +137,7 @@ export class Resonate {
|
|
|
152
137
|
|
|
153
138
|
const task: Task = { kind: "unclaimed", task: body.task };
|
|
154
139
|
|
|
155
|
-
const
|
|
156
|
-
data:
|
|
157
|
-
| { status: "completed"; data?: any }
|
|
158
|
-
| { status: "suspended"; result: string[] },
|
|
159
|
-
): Promise<void> => {
|
|
160
|
-
if (this.onTerminateFn) {
|
|
161
|
-
await this.onTerminateFn(data);
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
return new Promise((resolve) => {
|
|
140
|
+
const completion: Promise<Response> = new Promise((resolve) => {
|
|
166
141
|
resonateInner.process(
|
|
167
142
|
tracer.startSpan(task.task.rootPromiseId, clock.now()),
|
|
168
143
|
task,
|
|
@@ -181,47 +156,39 @@ export class Resonate {
|
|
|
181
156
|
);
|
|
182
157
|
return;
|
|
183
158
|
}
|
|
159
|
+
|
|
184
160
|
if (status.kind === "completed") {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
161
|
+
resolve(
|
|
162
|
+
new Response(
|
|
163
|
+
JSON.stringify({
|
|
164
|
+
status: "completed",
|
|
165
|
+
result: status.promise.value,
|
|
166
|
+
requestUrl: url,
|
|
167
|
+
}),
|
|
168
|
+
{
|
|
169
|
+
status: 200,
|
|
170
|
+
},
|
|
189
171
|
),
|
|
190
|
-
|
|
191
|
-
resolve(
|
|
192
|
-
new Response(
|
|
193
|
-
JSON.stringify({
|
|
194
|
-
status: "completed",
|
|
195
|
-
result: status.promise.value,
|
|
196
|
-
requestUrl: url,
|
|
197
|
-
}),
|
|
198
|
-
{ status: 200 },
|
|
199
|
-
),
|
|
200
|
-
);
|
|
201
|
-
});
|
|
172
|
+
);
|
|
202
173
|
return;
|
|
203
174
|
} else if (status.kind === "suspended") {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
status: 200,
|
|
216
|
-
},
|
|
217
|
-
),
|
|
218
|
-
);
|
|
219
|
-
});
|
|
175
|
+
resolve(
|
|
176
|
+
new Response(
|
|
177
|
+
JSON.stringify({
|
|
178
|
+
status: "suspended",
|
|
179
|
+
requestUrl: url,
|
|
180
|
+
}),
|
|
181
|
+
{
|
|
182
|
+
status: 200,
|
|
183
|
+
},
|
|
184
|
+
),
|
|
185
|
+
);
|
|
220
186
|
return;
|
|
221
187
|
}
|
|
222
188
|
},
|
|
223
189
|
);
|
|
224
190
|
});
|
|
191
|
+
return completion;
|
|
225
192
|
} catch (error) {
|
|
226
193
|
return new Response(
|
|
227
194
|
JSON.stringify({
|