eslint-plugin-export-scope
Version:
Don't leak LOCAL utils, states, components into the global scope
30 lines • 1.39 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.tsLanguageServicePlugin = tsLanguageServicePlugin;
const getCodeFixesAtPosition_1 = require("./getCodeFixesAtPosition");
const getCompletionsAtPosition_1 = require("./getCompletionsAtPosition");
const exts = [".ts", ".tsx", ".js", ".jsx"];
const excludes = ["**/node_modules/**", "**/.git/**", "**/dist/**", "**/build/**"];
const includes = ["**/.scope.*", "**/.scope.default.*"];
function tsLanguageServicePlugin(module) {
let root = "";
let files = [];
let watcher;
const scan = (sys) => {
files = sys.readDirectory(root, exts, excludes, includes);
};
const getExternalFiles = () => files;
function create(info) {
// ------ track and register .scope files ------
root = info.project.getCurrentDirectory();
scan(info.serverHost);
watcher = info.serverHost.watchDirectory(root, () => scan(info.serverHost), true);
const ls = info.languageService;
const proxy = { ...ls };
proxy.getCompletionsAtPosition = (0, getCompletionsAtPosition_1.getCompletionsAtPosition)(module.typescript, info);
proxy.getCodeFixesAtPosition = (0, getCodeFixesAtPosition_1.getCodeFixesAtPosition)(module.typescript, info);
return proxy;
}
return { create, getExternalFiles };
}
//# sourceMappingURL=index.js.map
;