1 | const path = require('path');
|
2 | const Packager = require('./Packager');
|
3 | const SourceMap = require('../SourceMap');
|
4 |
|
5 | class SourceMapPackager extends Packager {
|
6 | async start() {
|
7 | this.sourceMap = new SourceMap();
|
8 | }
|
9 |
|
10 | async addAsset(asset) {
|
11 | let offsets = this.bundle.parentBundle.getOffset(asset);
|
12 | if (asset.sourceMaps[asset.type]) {
|
13 | await this.sourceMap.addMap(
|
14 | asset.sourceMaps[asset.type],
|
15 | offsets[0],
|
16 | offsets[1]
|
17 | );
|
18 | }
|
19 | }
|
20 |
|
21 | async end() {
|
22 | let file = path.basename(this.bundle.parentBundle.name);
|
23 |
|
24 | await this.write(
|
25 | this.sourceMap.stringify(
|
26 | file,
|
27 | path.relative(this.options.outDir, this.options.rootDir)
|
28 | )
|
29 | );
|
30 | await super.end();
|
31 | }
|
32 | }
|
33 |
|
34 | module.exports = SourceMapPackager;
|