UNPKG

885 BJavaScriptView Raw
1const JSConcatPackager = require('./JSConcatPackager');
2const JSPackager = require('./JSPackager');
3const CSSPackager = require('./CSSPackager');
4const HTMLPackager = require('./HTMLPackager');
5const SourceMapPackager = require('./SourceMapPackager');
6const RawPackager = require('./RawPackager');
7
8class PackagerRegistry {
9 constructor(options) {
10 this.packagers = new Map();
11
12 this.add('css', CSSPackager);
13 this.add('html', HTMLPackager);
14 this.add('map', SourceMapPackager);
15 this.add('js', options.scopeHoist ? JSConcatPackager : JSPackager);
16 }
17
18 add(type, packager) {
19 if (typeof packager === 'string') {
20 packager = require(packager);
21 }
22
23 this.packagers.set(type, packager);
24 }
25
26 has(type) {
27 return this.packagers.has(type);
28 }
29
30 get(type) {
31 return this.packagers.get(type) || RawPackager;
32 }
33}
34
35module.exports = PackagerRegistry;