UNPKG

967 BJavaScriptView Raw
1const Packager = require('./Packager');
2const path = require('path');
3const fs = require('@parcel/fs');
4
5class RawPackager extends Packager {
6 static shouldAddAsset() {
7 // We cannot combine multiple raw assets together - they should be written as separate bundles.
8 return false;
9 }
10
11 // Override so we don't create a file for this bundle.
12 // Each asset will be emitted as a separate file instead.
13 setup() {}
14
15 async addAsset(asset) {
16 let contents = asset.generated[this.bundle.type];
17 if (!contents || (contents && contents.path)) {
18 contents = await fs.readFile(contents ? contents.path : asset.name);
19 }
20
21 // Create sub-directories if needed
22 if (this.bundle.name.includes(path.sep)) {
23 await fs.mkdirp(path.dirname(this.bundle.name));
24 }
25
26 this.size = contents.length;
27 await fs.writeFile(this.bundle.name, contents);
28 }
29
30 getSize() {
31 return this.size || 0;
32 }
33
34 end() {}
35}
36
37module.exports = RawPackager;