rollup-plugin-insert
Version:
string mutation plugin for Rollup
54 lines • 2.09 kB
JavaScript
import { createFilter } from 'rollup-pluginutils';
import MagicString from 'magic-string';
export var transform = function (insert, options) {
if (options === void 0) { options = {}; }
var filter = 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(code);
var 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) {
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,
};
},
};
};
export var append = function (append, options) {
return transform(function (magicString) { return magicString.append(append); }, options);
};
export var prepend = function (prepend, options) {
return transform(function (magicString) { return magicString.prepend(prepend); }, options);
};
export var wrap = function (begin, end, options) {
return transform(function (magicString) { return magicString.prepend(begin).append(end); }, options);
};
export default {
transform: transform,
append: append,
prepend: prepend,
wrap: wrap,
};
//# sourceMappingURL=index.js.map