rollup-plugin-require-context2
Version:
rollup-plugin for webpack requrie-context
33 lines (28 loc) • 877 B
JavaScript
const Path = require('path');
const extractArgs = require('./extract-args');
const resolveRequireModules = require('./resolve-reqquire-modules');
const resolveRequireCode = require('./resolve-require-code');
module.exports = async function gernerateRequireContextCode(id, code) {
const currentCodeDirname = Path.dirname(id);
const data = await extractArgs(code, currentCodeDirname);
let head = '';
const body = data.reduceRight((res, r) => {
const {
start, end,
dirname, recursive, regexp
} = r;
const modules = resolveRequireModules(dirname, recursive, regexp);
const { importCode, requireFnCode } = resolveRequireCode(dirname, modules);
head += importCode;
res = [
res.slice(0, start),
requireFnCode,
res.slice(end)
].join('');
return res;
}, code);
return [
head,
body
].join('\n');
};