rollup-plugin-insert
Version:
string mutation plugin for Rollup
69 lines (62 loc) • 2.49 kB
JavaScript
;
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;