nuxt-processor 0.0.7 → 0.0.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/README.md +15 -11
- package/dist/cli.cjs +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/module.cjs +14 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +15 -2
- package/dist/runtime/server/handlers/defineQueue.d.ts +3 -3
- package/dist/runtime/server/handlers/defineWorker.d.ts +4 -4
- package/dist/runtime/server/utils/workers.d.ts +5 -5
- package/dist/shared/{nuxt-processor.4D52SGZK.mjs → nuxt-processor.DyQoQGHF.mjs} +1 -1
- package/dist/shared/{nuxt-processor.DGLbEfyc.cjs → nuxt-processor.gTQ3Cgq_.cjs} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,10 +5,9 @@
|
|
|
5
5
|
[![License][license-src]][license-href]
|
|
6
6
|
[](https://snyk.io/test/github/aidanhibbard/nuxt-processor)
|
|
7
7
|
|
|
8
|
-
##
|
|
9
|
-
|
|
10
|
-
<img width="752" height="402" alt="image" src="https://github.com/user-attachments/assets/9190d8e1-8a46-4b49-be5a-20f0a49fc8fe" />
|
|
8
|
+
## Scalable processing for Nuxt
|
|
11
9
|
|
|
10
|
+
<img width="512" height="250" alt="image" src="https://github.com/user-attachments/assets/d238fb33-8373-46ec-b132-85170ab67c80" />
|
|
12
11
|
|
|
13
12
|
Note: This package is under very active development! Please consider creating issues if you run into anything!
|
|
14
13
|
|
|
@@ -34,7 +33,7 @@ Note: This package is under very active development! Please consider creating is
|
|
|
34
33
|
## Install
|
|
35
34
|
|
|
36
35
|
```bash
|
|
37
|
-
|
|
36
|
+
npx nuxi@latest module add nuxt-processor
|
|
38
37
|
```
|
|
39
38
|
|
|
40
39
|
Add the module in `nuxt.config.ts` and set your Redis connection.
|
|
@@ -65,7 +64,11 @@ Create `server/queues/hello.ts`:
|
|
|
65
64
|
```ts
|
|
66
65
|
import { defineQueue } from '#processor'
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
type HelloName = 'hello'
|
|
68
|
+
type HelloData = { message: string, ts: number }
|
|
69
|
+
type HelloResult = { echoed: string, processedAt: number }
|
|
70
|
+
|
|
71
|
+
export default defineQueue<HelloData, HelloResult, HelloName>({
|
|
69
72
|
name: 'hello',
|
|
70
73
|
options: {},
|
|
71
74
|
})
|
|
@@ -77,14 +80,15 @@ Create `server/workers/hello.ts`:
|
|
|
77
80
|
|
|
78
81
|
```ts
|
|
79
82
|
import { defineWorker } from '#processor'
|
|
80
|
-
import type { Job } from '#bullmq'
|
|
81
83
|
|
|
82
|
-
|
|
84
|
+
type HelloName = 'hello'
|
|
85
|
+
type HelloData = { message: string, ts: number }
|
|
86
|
+
type HelloResult = { echoed: string, processedAt: number }
|
|
87
|
+
|
|
88
|
+
export default defineWorker<HelloName, HelloData, HelloResult>({
|
|
83
89
|
name: 'hello',
|
|
84
|
-
async processor(job
|
|
85
|
-
|
|
86
|
-
console.log('processed', job.name, job.data)
|
|
87
|
-
return job.data
|
|
90
|
+
async processor(job) {
|
|
91
|
+
return { echoed: job.data.message, processedAt: job.data.ts }
|
|
88
92
|
},
|
|
89
93
|
options: {},
|
|
90
94
|
})
|
package/dist/cli.cjs
CHANGED
|
@@ -8,7 +8,7 @@ const pathe = require('pathe');
|
|
|
8
8
|
const consola = require('consola');
|
|
9
9
|
const citty = require('citty');
|
|
10
10
|
const kit = require('@nuxt/kit');
|
|
11
|
-
const _package = require('./shared/nuxt-processor.
|
|
11
|
+
const _package = require('./shared/nuxt-processor.gTQ3Cgq_.cjs');
|
|
12
12
|
|
|
13
13
|
const ensureNuxtProject = async (args) => {
|
|
14
14
|
const dir = pathe.resolve(args.dir);
|
package/dist/cli.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import { resolve } from 'pathe';
|
|
|
6
6
|
import { consola } from 'consola';
|
|
7
7
|
import { createMain, defineCommand } from 'citty';
|
|
8
8
|
import { loadNuxtConfig } from '@nuxt/kit';
|
|
9
|
-
import { v as version, d as description, n as name } from './shared/nuxt-processor.
|
|
9
|
+
import { v as version, d as description, n as name } from './shared/nuxt-processor.DyQoQGHF.mjs';
|
|
10
10
|
|
|
11
11
|
const ensureNuxtProject = async (args) => {
|
|
12
12
|
const dir = resolve(args.dir);
|
package/dist/module.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const kit = require('@nuxt/kit');
|
|
4
|
-
const _package = require('./shared/nuxt-processor.
|
|
4
|
+
const _package = require('./shared/nuxt-processor.gTQ3Cgq_.cjs');
|
|
5
5
|
const node_path = require('node:path');
|
|
6
6
|
const fg = require('fast-glob');
|
|
7
7
|
|
|
@@ -47,6 +47,19 @@ const module$1 = kit.defineNuxtModule({
|
|
|
47
47
|
},
|
|
48
48
|
async setup(_options, nuxt) {
|
|
49
49
|
const { resolve } = kit.createResolver((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('module.cjs', document.baseURI).href)));
|
|
50
|
+
const nitroPlugin = `
|
|
51
|
+
import { $workers } from '#processor-utils'
|
|
52
|
+
|
|
53
|
+
export default defineNitroPlugin(() => {
|
|
54
|
+
$workers().setConnection(${JSON.stringify(_options.redis)})
|
|
55
|
+
})
|
|
56
|
+
`;
|
|
57
|
+
const tpl = kit.addTemplate({
|
|
58
|
+
filename: "0.processor-nuxt-plugin.ts",
|
|
59
|
+
write: true,
|
|
60
|
+
getContents: () => nitroPlugin
|
|
61
|
+
});
|
|
62
|
+
kit.addServerPlugin(tpl.dst);
|
|
50
63
|
function generateWorkersEntryContent(workerFiles) {
|
|
51
64
|
const redisInline = JSON.stringify(_options.redis ?? {});
|
|
52
65
|
const toImportArray = workerFiles.map((id) => `() => import(${JSON.stringify(id)})`).join(",\n ");
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useNuxt, createResolver, defineNuxtModule, addTypeTemplate } from '@nuxt/kit';
|
|
2
|
-
import { c as configKey, a as compatibility, v as version, n as name } from './shared/nuxt-processor.
|
|
1
|
+
import { useNuxt, createResolver, defineNuxtModule, addTemplate, addServerPlugin, addTypeTemplate } from '@nuxt/kit';
|
|
2
|
+
import { c as configKey, a as compatibility, v as version, n as name } from './shared/nuxt-processor.DyQoQGHF.mjs';
|
|
3
3
|
import { relative } from 'node:path';
|
|
4
4
|
import fg from 'fast-glob';
|
|
5
5
|
|
|
@@ -40,6 +40,19 @@ const module = defineNuxtModule({
|
|
|
40
40
|
},
|
|
41
41
|
async setup(_options, nuxt) {
|
|
42
42
|
const { resolve } = createResolver(import.meta.url);
|
|
43
|
+
const nitroPlugin = `
|
|
44
|
+
import { $workers } from '#processor-utils'
|
|
45
|
+
|
|
46
|
+
export default defineNitroPlugin(() => {
|
|
47
|
+
$workers().setConnection(${JSON.stringify(_options.redis)})
|
|
48
|
+
})
|
|
49
|
+
`;
|
|
50
|
+
const tpl = addTemplate({
|
|
51
|
+
filename: "0.processor-nuxt-plugin.ts",
|
|
52
|
+
write: true,
|
|
53
|
+
getContents: () => nitroPlugin
|
|
54
|
+
});
|
|
55
|
+
addServerPlugin(tpl.dst);
|
|
43
56
|
function generateWorkersEntryContent(workerFiles) {
|
|
44
57
|
const redisInline = JSON.stringify(_options.redis ?? {});
|
|
45
58
|
const toImportArray = workerFiles.map((id) => `() => import(${JSON.stringify(id)})`).join(",\n ");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Queue, QueueOptions, JobsOptions } from '../utils/workers.js';
|
|
2
|
-
type DefineQueueArgs = {
|
|
3
|
-
name:
|
|
2
|
+
type DefineQueueArgs<DefaultNameType extends string = string> = {
|
|
3
|
+
name: DefaultNameType;
|
|
4
4
|
options?: Omit<QueueOptions, 'connection'> & {
|
|
5
5
|
defaultJobOptions?: JobsOptions;
|
|
6
6
|
};
|
|
7
7
|
};
|
|
8
|
-
export declare function defineQueue({ name, options }: DefineQueueArgs): Queue
|
|
8
|
+
export declare function defineQueue<DataTypeOrJob = any, DefaultResultType = any, DefaultNameType extends string = string>({ name, options }: DefineQueueArgs<DefaultNameType>): Queue<DataTypeOrJob, DefaultResultType, DefaultNameType>;
|
|
9
9
|
export default defineQueue;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Worker, WorkerOptions, Processor } from 'bullmq';
|
|
2
|
-
type DefineWorkerArgs = {
|
|
3
|
-
name:
|
|
4
|
-
processor: Processor
|
|
2
|
+
type DefineWorkerArgs<NameType extends string = string, DataType = any, ResultType = any> = {
|
|
3
|
+
name: NameType;
|
|
4
|
+
processor: Processor<DataType, ResultType, NameType>;
|
|
5
5
|
options?: Omit<WorkerOptions, 'connection'>;
|
|
6
6
|
};
|
|
7
|
-
export declare function defineWorker(args: DefineWorkerArgs): Worker
|
|
7
|
+
export declare function defineWorker<NameType extends string = string, DataType = any, ResultType = any>(args: DefineWorkerArgs<NameType, DataType, ResultType>): Worker<DataType, ResultType, NameType>;
|
|
8
8
|
export default defineWorker;
|
|
@@ -13,12 +13,12 @@ export declare function $workers(): {
|
|
|
13
13
|
} & {
|
|
14
14
|
url?: string;
|
|
15
15
|
})) => void;
|
|
16
|
-
createQueue: (name:
|
|
16
|
+
createQueue: <DataTypeOrJob = any, DefaultResultType = any, DefaultNameType extends string = string>(name: DefaultNameType, options?: Omit<QueueOptions, "connection"> & {
|
|
17
17
|
defaultJobOptions?: JobsOptions;
|
|
18
|
-
}) => Queue<
|
|
19
|
-
createWorker: (name:
|
|
18
|
+
}) => Queue<DataTypeOrJob, DefaultResultType, DefaultNameType>;
|
|
19
|
+
createWorker: <DataType = any, ResultType = any, NameType extends string = string>(name: NameType, processor: Processor<DataType, ResultType, NameType>, options?: Omit<WorkerOptions, "connection">) => Worker<DataType, ResultType, NameType>;
|
|
20
20
|
stopAll: () => Promise<void>;
|
|
21
|
-
readonly queues: Queue<any, any,
|
|
22
|
-
readonly workers: Worker<any, any,
|
|
21
|
+
readonly queues: Queue<any, any, any, any, any, any>[];
|
|
22
|
+
readonly workers: Worker<any, any, any>[];
|
|
23
23
|
};
|
|
24
24
|
export type { Queue, Worker, Processor, QueueOptions, WorkerOptions, JobsOptions, Job };
|