UNPKG

fuse-box

Version:

Fuse-Box a bundler that does it right

27 lines (22 loc) 776 B
import { File } from "../core/File"; import { Plugin } from "../core/WorkflowContext"; export interface ReplacePluginOptions { [key: string]: string; } export class ReplacePluginClass implements Plugin { public test: RegExp = /.*/; public extensions: Array<string>; constructor(public options: ReplacePluginOptions = {}) { }; transform(file: File) { file.loadContents(); for (let key in this.options) { if (this.options.hasOwnProperty(key)) { const regexp = new RegExp(key, 'g'); file.contents = file.contents.replace(regexp, this.options[key]); } } } } export const ReplacePlugin = (options?: ReplacePluginOptions) => { return new ReplacePluginClass(options); };