@superfunctions/queue 0.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.
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +136 -0
- package/dist/index.js.map +1 -0
- package/package.json +45 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface QueueAdapter<TPayload> {
|
|
2
|
+
enqueue(queueName: string, payload: TPayload): Promise<void>;
|
|
3
|
+
dequeue(queueName: string): Promise<TPayload | null>;
|
|
4
|
+
dequeueMatching(queueName: string, matcher: (payload: TPayload) => boolean): Promise<TPayload | null>;
|
|
5
|
+
peek(queueName: string): TPayload[];
|
|
6
|
+
size(queueName: string): number;
|
|
7
|
+
}
|
|
8
|
+
export declare class MemoryQueueAdapter<TPayload> implements QueueAdapter<TPayload> {
|
|
9
|
+
private readonly queues;
|
|
10
|
+
enqueue(queueName: string, payload: TPayload): Promise<void>;
|
|
11
|
+
dequeue(queueName: string): Promise<TPayload | null>;
|
|
12
|
+
dequeueMatching(queueName: string, matcher: (payload: TPayload) => boolean): Promise<TPayload | null>;
|
|
13
|
+
peek(queueName: string): TPayload[];
|
|
14
|
+
size(queueName: string): number;
|
|
15
|
+
}
|
|
16
|
+
export interface FlowFnQueueAdapterConfig {
|
|
17
|
+
baseUrl: string;
|
|
18
|
+
apiKey: string;
|
|
19
|
+
fetch?: typeof globalThis.fetch;
|
|
20
|
+
timeoutMs?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare class FlowFnQueueAdapter<TPayload> implements QueueAdapter<TPayload> {
|
|
23
|
+
private readonly config;
|
|
24
|
+
private readonly fetcher;
|
|
25
|
+
private readonly timeoutMs;
|
|
26
|
+
private readonly baseUrl;
|
|
27
|
+
constructor(config: FlowFnQueueAdapterConfig);
|
|
28
|
+
enqueue(queueName: string, payload: TPayload): Promise<void>;
|
|
29
|
+
dequeue(queueName: string): Promise<TPayload | null>;
|
|
30
|
+
dequeueMatching(queueName: string, matcher: (payload: TPayload) => boolean): Promise<TPayload | null>;
|
|
31
|
+
peek(queueName: string): TPayload[];
|
|
32
|
+
size(queueName: string): number;
|
|
33
|
+
private fetchWithTimeout;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY,CAAC,QAAQ;IACpC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACrD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACtG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACpC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAUD,qBAAa,kBAAkB,CAAC,QAAQ,CAAE,YAAW,YAAY,CAAC,QAAQ,CAAC;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IAElD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5D,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAUpD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgB3G,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE;IAKnC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAIhC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD,qBAAa,kBAAkB,CAAC,QAAQ,CAAE,YAAW,YAAY,CAAC,QAAQ,CAAC;IAK7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAEJ,MAAM,EAAE,wBAAwB;IAMvD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5D,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAqBpD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAM3G,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE;IAKnC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;YAKjB,gBAAgB;CAgB/B"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
function normalizeQueueName(queueName) {
|
|
2
|
+
const normalized = queueName.trim();
|
|
3
|
+
if (!normalized || normalized.includes('/') || normalized.includes('\\') || normalized.includes('..')) {
|
|
4
|
+
throw new Error('FLOWFN_QUEUE_NAME_INVALID');
|
|
5
|
+
}
|
|
6
|
+
return normalized;
|
|
7
|
+
}
|
|
8
|
+
export class MemoryQueueAdapter {
|
|
9
|
+
queues = new Map();
|
|
10
|
+
async enqueue(queueName, payload) {
|
|
11
|
+
const normalizedQueueName = normalizeQueueName(queueName);
|
|
12
|
+
const queue = this.queues.get(normalizedQueueName) ?? [];
|
|
13
|
+
queue.push(payload);
|
|
14
|
+
this.queues.set(normalizedQueueName, queue);
|
|
15
|
+
}
|
|
16
|
+
async dequeue(queueName) {
|
|
17
|
+
const normalizedQueueName = normalizeQueueName(queueName);
|
|
18
|
+
const queue = this.queues.get(normalizedQueueName);
|
|
19
|
+
if (!queue || queue.length === 0) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return queue.shift();
|
|
23
|
+
}
|
|
24
|
+
async dequeueMatching(queueName, matcher) {
|
|
25
|
+
const normalizedQueueName = normalizeQueueName(queueName);
|
|
26
|
+
const queue = this.queues.get(normalizedQueueName);
|
|
27
|
+
if (!queue || queue.length === 0) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const index = queue.findIndex(matcher);
|
|
31
|
+
if (index === -1) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
const [payload] = queue.splice(index, 1);
|
|
35
|
+
return payload;
|
|
36
|
+
}
|
|
37
|
+
peek(queueName) {
|
|
38
|
+
const normalizedQueueName = normalizeQueueName(queueName);
|
|
39
|
+
return [...(this.queues.get(normalizedQueueName) ?? [])];
|
|
40
|
+
}
|
|
41
|
+
size(queueName) {
|
|
42
|
+
const normalizedQueueName = normalizeQueueName(queueName);
|
|
43
|
+
return this.queues.get(normalizedQueueName)?.length ?? 0;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function normalizeBaseUrl(baseUrl) {
|
|
47
|
+
let normalized = baseUrl;
|
|
48
|
+
while (normalized.endsWith('/')) {
|
|
49
|
+
normalized = normalized.slice(0, -1);
|
|
50
|
+
}
|
|
51
|
+
return normalized;
|
|
52
|
+
}
|
|
53
|
+
function encodeQueueName(queueName) {
|
|
54
|
+
return encodeURIComponent(normalizeQueueName(queueName));
|
|
55
|
+
}
|
|
56
|
+
function normalizeTimeoutMs(value) {
|
|
57
|
+
if (value === undefined) {
|
|
58
|
+
return 15_000;
|
|
59
|
+
}
|
|
60
|
+
if (!Number.isFinite(value)) {
|
|
61
|
+
throw new Error('FLOWFN_QUEUE_TIMEOUT_INVALID');
|
|
62
|
+
}
|
|
63
|
+
return Math.max(0, value);
|
|
64
|
+
}
|
|
65
|
+
export class FlowFnQueueAdapter {
|
|
66
|
+
config;
|
|
67
|
+
fetcher;
|
|
68
|
+
timeoutMs;
|
|
69
|
+
baseUrl;
|
|
70
|
+
constructor(config) {
|
|
71
|
+
this.config = config;
|
|
72
|
+
this.fetcher = config.fetch ?? globalThis.fetch;
|
|
73
|
+
this.timeoutMs = normalizeTimeoutMs(config.timeoutMs);
|
|
74
|
+
this.baseUrl = normalizeBaseUrl(config.baseUrl);
|
|
75
|
+
}
|
|
76
|
+
async enqueue(queueName, payload) {
|
|
77
|
+
const encodedQueueName = encodeQueueName(queueName);
|
|
78
|
+
const response = await this.fetchWithTimeout(`${this.baseUrl}/queues/${encodedQueueName}/enqueue`, {
|
|
79
|
+
method: 'POST',
|
|
80
|
+
headers: {
|
|
81
|
+
'Content-Type': 'application/json',
|
|
82
|
+
Authorization: `Bearer ${this.config.apiKey}`,
|
|
83
|
+
},
|
|
84
|
+
body: JSON.stringify(payload),
|
|
85
|
+
});
|
|
86
|
+
if (!response.ok) {
|
|
87
|
+
throw new Error(`FlowFn enqueue failed: ${response.status} ${response.statusText}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async dequeue(queueName) {
|
|
91
|
+
const encodedQueueName = encodeQueueName(queueName);
|
|
92
|
+
const response = await this.fetchWithTimeout(`${this.baseUrl}/queues/${encodedQueueName}/dequeue`, {
|
|
93
|
+
method: 'POST',
|
|
94
|
+
headers: {
|
|
95
|
+
Authorization: `Bearer ${this.config.apiKey}`,
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
if (response.status === 404) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
if (!response.ok) {
|
|
102
|
+
throw new Error(`FlowFn dequeue failed: ${response.status} ${response.statusText}`);
|
|
103
|
+
}
|
|
104
|
+
const data = (await response.json());
|
|
105
|
+
return 'payload' in data ? data.payload : null;
|
|
106
|
+
}
|
|
107
|
+
async dequeueMatching(queueName, matcher) {
|
|
108
|
+
void matcher;
|
|
109
|
+
encodeQueueName(queueName);
|
|
110
|
+
throw new Error('FLOWFN_QUEUE_MATCHING_UNSUPPORTED');
|
|
111
|
+
}
|
|
112
|
+
peek(queueName) {
|
|
113
|
+
encodeQueueName(queueName);
|
|
114
|
+
throw new Error('FLOWFN_QUEUE_PEEK_UNSUPPORTED');
|
|
115
|
+
}
|
|
116
|
+
size(queueName) {
|
|
117
|
+
encodeQueueName(queueName);
|
|
118
|
+
throw new Error('FLOWFN_QUEUE_SIZE_UNSUPPORTED');
|
|
119
|
+
}
|
|
120
|
+
async fetchWithTimeout(url, init) {
|
|
121
|
+
const controller = typeof AbortController === 'function' ? new AbortController() : undefined;
|
|
122
|
+
const timeoutId = controller && this.timeoutMs > 0 ? setTimeout(() => controller.abort(), this.timeoutMs) : undefined;
|
|
123
|
+
try {
|
|
124
|
+
return await this.fetcher(url, {
|
|
125
|
+
...init,
|
|
126
|
+
signal: controller?.signal,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
finally {
|
|
130
|
+
if (timeoutId) {
|
|
131
|
+
clearTimeout(timeoutId);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@superfunctions/queue",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Shared queue adapters for Superfunctions",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc",
|
|
19
|
+
"test": "vitest",
|
|
20
|
+
"test:watch": "vitest --watch",
|
|
21
|
+
"lint": "echo 'lint not configured'",
|
|
22
|
+
"typecheck": "tsc --noEmit",
|
|
23
|
+
"clean": "rm -rf dist"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"queue",
|
|
27
|
+
"flowfn",
|
|
28
|
+
"superfunctions"
|
|
29
|
+
],
|
|
30
|
+
"author": "21n",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "git+https://github.com/21nCo/super-functions.git",
|
|
35
|
+
"directory": "packages/queue"
|
|
36
|
+
},
|
|
37
|
+
"publishConfig": {
|
|
38
|
+
"access": "public"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@types/node": "^22.0.0",
|
|
42
|
+
"typescript": "^5.6.0",
|
|
43
|
+
"vitest": "^3.2.4"
|
|
44
|
+
}
|
|
45
|
+
}
|