UNPKG

fuse-box

Version:

Fuse-Box a bundler that does it right

56 lines (52 loc) 1.19 kB
import { File } from "../core/File"; import { WorkFlowContext, Plugin } from "../core/WorkflowContext"; /** * * * @export * @class FuseBoxHTMLPlugin * @implements {Plugin} */ export class FuseBoxJSONPlugin implements Plugin { /** * * * @type {RegExp} * @memberOf FuseBoxHTMLPlugin */ public test: RegExp = /\.json$/ /** * * * @param {WorkFlowContext} context * * @memberOf FuseBoxHTMLPlugin */ public init(context: WorkFlowContext) { context.allowExtension(".json"); } /** * * * @param {File} file * * @memberOf FuseBoxHTMLPlugin */ public transform(file: File) { const context = file.context; if (context.useCache) { if (file.loadFromCache()) { return; } } file.loadContents(); file.contents = `module.exports = ${file.contents || {}};`; if (context.useCache) { context.emitJavascriptHotReload(file); context.cache.writeStaticCache(file, file.sourceMap); } } }; export const JSONPlugin = () => { return new FuseBoxJSONPlugin(); };