forked from JohnstonCode/svn-scm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvscodeModules.ts
33 lines (28 loc) · 866 Bytes
/
vscodeModules.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Only this file is allowed to import VSCode modules
// tslint:disable: import-blacklist
import * as path from "path";
import * as vscode from "vscode";
const appRoot = vscode.env.appRoot;
function loadVSCodeModule(id: string) {
try {
return require(`${appRoot}/node_modules.asar/${id}`);
} catch (ea) {
// Ignore
}
const baseDir = path.dirname(process.execPath);
try {
module.paths.unshift(`${baseDir}/node_modules`);
return require(id);
} catch (eb) {
vscode.window.showErrorMessage(
`Missing dependency, go to "${baseDir}" and run: npm install ${id}`
);
}
}
export const iconv = loadVSCodeModule(
"iconv-lite"
) as typeof import("iconv-lite");
export const jschardet = loadVSCodeModule(
"jschardet"
) as typeof import("jschardet");
export const keytar = loadVSCodeModule("keytar") as typeof import("keytar");