Skip to content
This repository was archived by the owner on Jan 19, 2019. It is now read-only.

Fix: sourceType not correctly set in AST when provided in options. #583

Merged
merged 7 commits into from
Jan 13, 2019
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ _test.js
.vscode
yarn.lock
.eslint-release-info.json
.idea
4 changes: 4 additions & 0 deletions parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ exports.parseForESLint = function parseForESLint(code, options) {
}

const ast = parse(code, options);
if (options.sourceType && ast && ast.type === "Program") {
ast.sourceType = options.sourceType;
}

const extraOptions = {
sourceType: ast.sourceType
};
Expand Down
22 changes: 22 additions & 0 deletions tests/lib/scope-analysis.js
Original file line number Diff line number Diff line change
Expand Up @@ -370,4 +370,26 @@ function test(file: Blob) {

expect(messages).toStrictEqual([]);
});

test("https://github.com/bradzacher/eslint-plugin-typescript/issues/255", () => {
const code = `
window.whatevs = {
myFunc() {
console.log('yep');
}
};
`;
const config = {
parser: "typescript-eslint-parser",
parserOptions: {
sourceType: "module"
},
rules: {
strict: "error"
}
};
const messages = linter.verify(code, config, { filename: "issue255.ts" });

expect(messages).toStrictEqual([]);
});
});