UNPKG

1.1 kBJavaScriptView Raw
1import { basename } from 'path';
2import { writeFile } from 'sander';
3import Bundle from './Bundle';
4
5let SOURCEMAPPING_URL = 'sourceMa';
6SOURCEMAPPING_URL += 'ppingURL';
7
8export function rollup ( options ) {
9 if ( !options || !options.entry ) {
10 throw new Error( 'You must supply options.entry to rollup' );
11 }
12
13 const bundle = new Bundle( options );
14
15 return bundle.build().then( () => {
16 return {
17 generate: options => bundle.generate( options ),
18 write: options => {
19 if ( !options || !options.dest ) {
20 throw new Error( 'You must supply options.dest to bundle.write' );
21 }
22
23 const dest = options.dest;
24 let { code, map } = bundle.generate( options );
25
26 let promises = [];
27
28 if ( options.sourceMap ) {
29 let url;
30
31 if ( options.sourceMap === 'inline' ) {
32 url = map.toUrl();
33 } else {
34 url = `${basename( dest )}.map`;
35 promises.push( writeFile( dest + '.map', map.toString() ) );
36 }
37
38 code += `\n//# ${SOURCEMAPPING_URL}=${url}`;
39 }
40
41 promises.push( writeFile( dest, code ) );
42 return Promise.all( promises );
43 }
44 };
45 });
46}