@open-mercato/queue 0.6.2-develop.3467.1.2a1818709d → 0.6.3-develop.3484.1.1427e58147
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/worker/registry.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { applyWorkerOverridesToDescriptors } from "@open-mercato/shared/modules/overrides";
|
|
1
2
|
const workers = /* @__PURE__ */ new Map();
|
|
2
3
|
function registerWorker(worker) {
|
|
3
4
|
if (workers.has(worker.id)) {
|
|
@@ -6,7 +7,7 @@ function registerWorker(worker) {
|
|
|
6
7
|
workers.set(worker.id, worker);
|
|
7
8
|
}
|
|
8
9
|
function registerModuleWorkers(list) {
|
|
9
|
-
for (const worker of list) {
|
|
10
|
+
for (const worker of applyWorkerOverridesToDescriptors(list)) {
|
|
10
11
|
registerWorker(worker);
|
|
11
12
|
}
|
|
12
13
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/worker/registry.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Worker Registry\n *\n * Provides registration and lookup for auto-discovered queue workers.\n * Workers are registered during bootstrap and accessed by the CLI worker command.\n */\n\nimport type { WorkerDescriptor } from '../types'\n\nconst workers: Map<string, WorkerDescriptor> = new Map()\n\n/**\n * Register a single worker.\n * @param worker - The worker descriptor to register\n */\nexport function registerWorker(worker: WorkerDescriptor): void {\n if (workers.has(worker.id)) {\n console.warn(`[worker-registry] Worker \"${worker.id}\" already registered, overwriting`)\n }\n workers.set(worker.id, worker)\n}\n\n/**\n * Register multiple workers at once (typically from module discovery).\n * @param list - Array of worker descriptors to register\n */\nexport function registerModuleWorkers(list: WorkerDescriptor[]): void {\n for (const worker of list) {\n registerWorker(worker)\n }\n}\n\n/**\n * Get all registered workers.\n * @returns Array of all worker descriptors\n */\nexport function getWorkers(): WorkerDescriptor[] {\n return Array.from(workers.values())\n}\n\n/**\n * Get workers registered for a specific queue.\n * @param queue - The queue name to filter by\n * @returns Array of workers for the specified queue\n */\nexport function getWorkersByQueue(queue: string): WorkerDescriptor[] {\n return Array.from(workers.values()).filter((w) => w.queue === queue)\n}\n\n/**\n * Get a specific worker by ID.\n * @param id - The worker ID to look up\n * @returns The worker descriptor if found, undefined otherwise\n */\nexport function getWorker(id: string): WorkerDescriptor | undefined {\n return workers.get(id)\n}\n\n/**\n * Get all unique queue names that have registered workers.\n * @returns Array of queue names\n */\nexport function getRegisteredQueues(): string[] {\n const queues = new Set<string>()\n for (const worker of workers.values()) {\n queues.add(worker.queue)\n }\n return Array.from(queues)\n}\n\n/**\n * Clear all registered workers (useful for testing).\n */\nexport function clearWorkers(): void {\n workers.clear()\n}\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/**\n * Worker Registry\n *\n * Provides registration and lookup for auto-discovered queue workers.\n * Workers are registered during bootstrap and accessed by the CLI worker command.\n */\n\nimport type { WorkerDescriptor } from '../types'\nimport { applyWorkerOverridesToDescriptors } from '@open-mercato/shared/modules/overrides'\n\nconst workers: Map<string, WorkerDescriptor> = new Map()\n\n/**\n * Register a single worker.\n * @param worker - The worker descriptor to register\n */\nexport function registerWorker(worker: WorkerDescriptor): void {\n if (workers.has(worker.id)) {\n console.warn(`[worker-registry] Worker \"${worker.id}\" already registered, overwriting`)\n }\n workers.set(worker.id, worker)\n}\n\n/**\n * Register multiple workers at once (typically from module discovery).\n * @param list - Array of worker descriptors to register\n */\nexport function registerModuleWorkers(list: WorkerDescriptor[]): void {\n for (const worker of applyWorkerOverridesToDescriptors(list)) {\n registerWorker(worker)\n }\n}\n\n/**\n * Get all registered workers.\n * @returns Array of all worker descriptors\n */\nexport function getWorkers(): WorkerDescriptor[] {\n return Array.from(workers.values())\n}\n\n/**\n * Get workers registered for a specific queue.\n * @param queue - The queue name to filter by\n * @returns Array of workers for the specified queue\n */\nexport function getWorkersByQueue(queue: string): WorkerDescriptor[] {\n return Array.from(workers.values()).filter((w) => w.queue === queue)\n}\n\n/**\n * Get a specific worker by ID.\n * @param id - The worker ID to look up\n * @returns The worker descriptor if found, undefined otherwise\n */\nexport function getWorker(id: string): WorkerDescriptor | undefined {\n return workers.get(id)\n}\n\n/**\n * Get all unique queue names that have registered workers.\n * @returns Array of queue names\n */\nexport function getRegisteredQueues(): string[] {\n const queues = new Set<string>()\n for (const worker of workers.values()) {\n queues.add(worker.queue)\n }\n return Array.from(queues)\n}\n\n/**\n * Clear all registered workers (useful for testing).\n */\nexport function clearWorkers(): void {\n workers.clear()\n}\n"],
|
|
5
|
+
"mappings": "AAQA,SAAS,yCAAyC;AAElD,MAAM,UAAyC,oBAAI,IAAI;AAMhD,SAAS,eAAe,QAAgC;AAC7D,MAAI,QAAQ,IAAI,OAAO,EAAE,GAAG;AAC1B,YAAQ,KAAK,6BAA6B,OAAO,EAAE,mCAAmC;AAAA,EACxF;AACA,UAAQ,IAAI,OAAO,IAAI,MAAM;AAC/B;AAMO,SAAS,sBAAsB,MAAgC;AACpE,aAAW,UAAU,kCAAkC,IAAI,GAAG;AAC5D,mBAAe,MAAM;AAAA,EACvB;AACF;AAMO,SAAS,aAAiC;AAC/C,SAAO,MAAM,KAAK,QAAQ,OAAO,CAAC;AACpC;AAOO,SAAS,kBAAkB,OAAmC;AACnE,SAAO,MAAM,KAAK,QAAQ,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,KAAK;AACrE;AAOO,SAAS,UAAU,IAA0C;AAClE,SAAO,QAAQ,IAAI,EAAE;AACvB;AAMO,SAAS,sBAAgC;AAC9C,QAAM,SAAS,oBAAI,IAAY;AAC/B,aAAW,UAAU,QAAQ,OAAO,GAAG;AACrC,WAAO,IAAI,OAAO,KAAK;AAAA,EACzB;AACA,SAAO,MAAM,KAAK,MAAM;AAC1B;AAKO,SAAS,eAAqB;AACnC,UAAQ,MAAM;AAChB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/jest.config.cjs
CHANGED
|
@@ -10,12 +10,14 @@ module.exports = {
|
|
|
10
10
|
{
|
|
11
11
|
tsconfig: {
|
|
12
12
|
jsx: 'react-jsx',
|
|
13
|
+
rootDir: '.',
|
|
14
|
+
ignoreDeprecations: '6.0',
|
|
13
15
|
},
|
|
14
16
|
},
|
|
15
17
|
],
|
|
16
18
|
},
|
|
17
19
|
transformIgnorePatterns: [
|
|
18
|
-
'node_modules/(?!(@mikro-orm)/)',
|
|
20
|
+
'node_modules/(?!(@mikro-orm|kysely)/)',
|
|
19
21
|
],
|
|
20
22
|
testMatch: ['<rootDir>/src/**/__tests__/**/*.test.(ts|tsx)'],
|
|
21
23
|
passWithNoTests: true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-mercato/queue",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3-develop.3484.1.1427e58147",
|
|
4
4
|
"description": "Multi-strategy job queue with local and BullMQ support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/jest": "^30.0.0",
|
|
45
|
-
"@types/node": "^25.
|
|
45
|
+
"@types/node": "^25.9.0",
|
|
46
46
|
"jest": "^30.4.2",
|
|
47
47
|
"ts-jest": "^29.4.9"
|
|
48
48
|
},
|
|
@@ -50,12 +50,12 @@
|
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@open-mercato/shared": "0.6.
|
|
53
|
+
"@open-mercato/shared": "0.6.3-develop.3484.1.1427e58147"
|
|
54
54
|
},
|
|
55
55
|
"repository": {
|
|
56
56
|
"type": "git",
|
|
57
57
|
"url": "https://github.com/open-mercato/open-mercato",
|
|
58
58
|
"directory": "packages/queue"
|
|
59
59
|
},
|
|
60
|
-
"stableVersion": "0.6.
|
|
60
|
+
"stableVersion": "0.6.2"
|
|
61
61
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { WorkerDescriptor } from '../../types'
|
|
2
|
+
import {
|
|
3
|
+
applyWorkerOverrides,
|
|
4
|
+
resetModuleContractOverridesForTests,
|
|
5
|
+
} from '@open-mercato/shared/modules/overrides'
|
|
2
6
|
import {
|
|
3
7
|
registerWorker,
|
|
4
8
|
registerModuleWorkers,
|
|
@@ -12,10 +16,12 @@ import {
|
|
|
12
16
|
describe('Worker Registry', () => {
|
|
13
17
|
beforeEach(() => {
|
|
14
18
|
clearWorkers()
|
|
19
|
+
resetModuleContractOverridesForTests()
|
|
15
20
|
})
|
|
16
21
|
|
|
17
22
|
afterEach(() => {
|
|
18
23
|
clearWorkers()
|
|
24
|
+
resetModuleContractOverridesForTests()
|
|
19
25
|
})
|
|
20
26
|
|
|
21
27
|
describe('registerWorker', () => {
|
|
@@ -81,6 +87,27 @@ describe('Worker Registry', () => {
|
|
|
81
87
|
registerModuleWorkers([])
|
|
82
88
|
expect(getWorkers().length).toBe(0)
|
|
83
89
|
})
|
|
90
|
+
|
|
91
|
+
it('applies unified worker overrides before registration', () => {
|
|
92
|
+
const replacement: WorkerDescriptor = {
|
|
93
|
+
id: 'module:worker1',
|
|
94
|
+
queue: 'override-queue',
|
|
95
|
+
concurrency: 8,
|
|
96
|
+
handler: async () => {},
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
applyWorkerOverrides({
|
|
100
|
+
'module:worker1': replacement,
|
|
101
|
+
'module:worker2': null,
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
registerModuleWorkers([
|
|
105
|
+
{ id: 'module:worker1', queue: 'queue-a', concurrency: 1, handler: async () => {} },
|
|
106
|
+
{ id: 'module:worker2', queue: 'queue-b', concurrency: 2, handler: async () => {} },
|
|
107
|
+
])
|
|
108
|
+
|
|
109
|
+
expect(getWorkers()).toEqual([replacement])
|
|
110
|
+
})
|
|
84
111
|
})
|
|
85
112
|
|
|
86
113
|
describe('getWorkers', () => {
|
package/src/worker/registry.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import type { WorkerDescriptor } from '../types'
|
|
9
|
+
import { applyWorkerOverridesToDescriptors } from '@open-mercato/shared/modules/overrides'
|
|
9
10
|
|
|
10
11
|
const workers: Map<string, WorkerDescriptor> = new Map()
|
|
11
12
|
|
|
@@ -25,7 +26,7 @@ export function registerWorker(worker: WorkerDescriptor): void {
|
|
|
25
26
|
* @param list - Array of worker descriptors to register
|
|
26
27
|
*/
|
|
27
28
|
export function registerModuleWorkers(list: WorkerDescriptor[]): void {
|
|
28
|
-
for (const worker of list) {
|
|
29
|
+
for (const worker of applyWorkerOverridesToDescriptors(list)) {
|
|
29
30
|
registerWorker(worker)
|
|
30
31
|
}
|
|
31
32
|
}
|