UNPKG

rollup-plugin-insert

Version:
69 lines (62 loc) 2.49 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var rollupPluginutils = require('rollup-pluginutils'); var MagicString = require('magic-string'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var MagicString__default = /*#__PURE__*/_interopDefaultLegacy(MagicString); var transform = function (insert, options) { if (options === void 0) { options = {}; } var filter = rollupPluginutils.createFilter(options.include, options.exclude); var sourceMap = options.sourceMap !== false; return { name: 'insert', transform: function (code, id) { if (!filter(id)) return; var magicString = new MagicString__default['default'](code); var output = insert(magicString, code, id); if (typeof output === 'string') { magicString.overwrite(0, code.length, output); } else if (output instanceof MagicString__default['default']) { magicString = output; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition } else if (output != null) { var received = void 0; 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, }; }, }; }; var append = function (append, options) { return transform(function (magicString) { return magicString.append(append); }, options); }; var prepend = function (prepend, options) { return transform(function (magicString) { return magicString.prepend(prepend); }, options); }; var wrap = function (begin, end, options) { return transform(function (magicString) { return magicString.prepend(begin).append(end); }, options); }; var index = { transform: transform, append: append, prepend: prepend, wrap: wrap, }; exports.append = append; exports.default = index; exports.prepend = prepend; exports.transform = transform; exports.wrap = wrap;