adonisjs-jobs
Version:
Job processing for AdonisJS
19 lines (16 loc) • 569 B
JavaScript
import { Job } from '../job.js';
import app from '@adonisjs/core/services/app';
export default class ClosureJob extends Job {
async handle(payload) {
const { serializedClosure } = payload;
const url = app.makeURL().href;
const code = `
const loadModule = async (module) => {
const { resolve } = await import('import-meta-resolve')
return await import(resolve(module, '${url}'))
}
return ${serializedClosure.replace(/import\(/g, 'loadModule(')}`;
const cb = new Function(code)();
await cb();
}
}