UNPKG

rollup-plugin-insert

Version:
51 lines (48 loc) 1.89 kB
import { createFilter } from 'rollup-pluginutils'; import MagicString from 'magic-string'; const transform = (insert, options = {}) => { const filter = createFilter(options.include, options.exclude); const sourceMap = options.sourceMap !== false; return { name: 'insert', transform(code, id) { if (!filter(id)) return; let magicString = new MagicString(code); const output = insert(magicString, code, id); if (typeof output === 'string') { magicString.overwrite(0, code.length, output); } else if (output instanceof MagicString) { magicString = output; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition } else if (output != null) { let received; try { received = JSON.stringify(output); } catch (_a) { /* istanbul ignore next */ received = String(output); } throw new TypeError(`The output content should be an instance of string or MagicString, but received: ${received}`); } return { code: magicString.toString(), map: sourceMap ? magicString.generateMap() : undefined, }; }, }; }; const append = (append, options) => transform((magicString) => magicString.append(append), options); const prepend = (prepend, options) => transform((magicString) => magicString.prepend(prepend), options); const wrap = (begin, end, options) => transform((magicString) => magicString.prepend(begin).append(end), options); var index = { transform, append, prepend, wrap, }; export default index; export { append, prepend, transform, wrap };