inngest-setup-redwoodjs
Version:
Setup Inngest in RedwoodJS
19 lines (18 loc) • 893 B
JavaScript
module.exports = function (file, api, { functionImportConfig }) {
const j = api.jscodeshift;
const root = j(file.source);
functionImportConfig.forEach(config => {
// Add the new import statement
const newImport = j.importDeclaration([j.importDefaultSpecifier(j.identifier(`{ ${config.import} }`))], j.literal(`src/jobs/inngest/${config.from}`));
const existingImports = root.find(j.ImportDeclaration);
existingImports.at(1).insertAfter(newImport);
// Add the new identifier to the inngestFunctions array
const inngestFunctions = root.find(j.VariableDeclaration, {
declarations: [{ id: { name: 'inngestFunctions' } }],
});
const newFunction = j.identifier(config.import);
inngestFunctions.find(j.ArrayExpression).get('elements').push(newFunction);
});
return root.toSource();
};
export {};