Skip to content
This repository was archived by the owner on May 26, 2022. It is now read-only.

Commit d36432e

Browse files
committed
Merge branch 'noop_on_non_goog_files'
2 parents 3b69849 + 2112bbb commit d36432e

File tree

3 files changed

+45
-15
lines changed

3 files changed

+45
-15
lines changed

jest.config.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ module.exports = {
33
collectCoverageFrom: ['lib/**/*.js'],
44
coverageThreshold: {
55
global: {
6-
statements: 83.69,
7-
branches: 73.81,
8-
lines: 84.17,
9-
functions: 82.35,
6+
statements: 87.67,
7+
branches: 79.55,
8+
lines: 87.59,
9+
functions: 84.85,
1010
},
1111
},
1212
};

lib/index.js

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -232,27 +232,34 @@ module.exports = function loader(originalSource, inputSourceMap) {
232232
const globalVarTree = {};
233233
const exportVarTree = {};
234234

235-
let matches = null;
236-
// eslint-disable-next-line no-cond-assign
237-
while ((matches = provideRegExp.exec(source)) !== null) {
235+
let provideMatches = provideRegExp.exec(source);
236+
let requireMatches = requireRegExp.exec(source);
237+
238+
if (!provideMatches && !requireMatches) {
239+
callback(null, source, inputSourceMap);
240+
return;
241+
}
242+
243+
while (provideMatches) {
238244
source = source.replace(
239-
new RegExp(escapeRegExp(matches[0]), 'g'),
245+
new RegExp(escapeRegExp(provideMatches[0]), 'g'),
240246
'',
241247
);
242-
globalVars.push(matches[2]);
243-
exportedVars.push(matches[2]);
248+
globalVars.push(provideMatches[2]);
249+
exportedVars.push(provideMatches[2]);
250+
provideMatches = provideRegExp.exec(source);
244251
}
245252

246-
// eslint-disable-next-line no-cond-assign
247-
while ((matches = requireRegExp.exec(source)) !== null) {
248-
globalVars.push(matches[2]);
253+
while (requireMatches) {
254+
globalVars.push(requireMatches[2]);
249255
source = replaceRequire(
250256
self,
251257
source,
252-
matches[2],
253-
matches[0],
258+
requireMatches[2],
259+
requireMatches[0],
254260
provideMap,
255261
);
262+
requireMatches = requireRegExp.exec(source);
256263
}
257264

258265
globalVars = globalVars

tests/loader.test.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const loader = require('..');
2+
3+
function getLoaderOutput(originalSource) {
4+
return new Promise((resolve, reject) => {
5+
const context = {
6+
async: () => (err, content) => {
7+
if (err) {
8+
reject(err);
9+
}
10+
resolve(content);
11+
},
12+
query: {},
13+
options: {},
14+
};
15+
loader.apply(context, [originalSource]);
16+
});
17+
}
18+
19+
test('noop when there are no goog.provide or goog.require statements', async () => {
20+
const originalSource = 'console.log("hi");';
21+
const output = await getLoaderOutput(originalSource);
22+
expect(output).toEqual(originalSource);
23+
});

0 commit comments

Comments
 (0)