Skip to content

Commit 4ce1a46

Browse files
Fix for deleting options off the passed compile options (#69)
1 parent 6684381 commit 4ce1a46

File tree

2 files changed

+51
-2
lines changed

2 files changed

+51
-2
lines changed

src/options.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,13 @@ export const defaults = (
9999
* @param transforms
100100
*/
101101
export default function(
102-
compileOptions: CompileOptions,
102+
incomingCompileOptions: CompileOptions,
103103
outputOptions: OutputOptions,
104104
code: string,
105105
transforms: Array<Transform> | null,
106106
): [CompileOptions, string] {
107-
const mapFile = sync('');
107+
const mapFile: string = sync('');
108+
const compileOptions: CompileOptions = { ...incomingCompileOptions };
108109
let externs: Array<string> = [];
109110

110111
validateCompileOptions(compileOptions);
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* Copyright 2018 The AMP HTML Authors. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS-IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
const test = require('ava');
18+
const path = require('path');
19+
const rollup = require('rollup');
20+
const { default: compiler } = require('../../transpile/index');
21+
22+
const options = {
23+
externs: [
24+
path.resolve('test', 'provided-externs', 'fixtures', 'class.externs.js'),
25+
],
26+
compilation_level: 'ADVANCED',
27+
};
28+
const optionsCopy = {...options};
29+
30+
async function compile() {
31+
const bundle = await rollup.rollup({
32+
input: `test/provided-externs/fixtures/class.js`,
33+
plugins: [
34+
compiler(options),
35+
],
36+
});
37+
38+
await bundle.generate({
39+
format: 'es',
40+
sourcemap: true,
41+
});
42+
}
43+
44+
test(`building does not modify passed configuration`, async t => {
45+
await compile();
46+
47+
t.deepEqual(options, optionsCopy);
48+
});

0 commit comments

Comments
 (0)