diff --git a/scripts/importTypescript.js b/scripts/importTypescript.js index 722b267b..402618c4 100644 --- a/scripts/importTypescript.js +++ b/scripts/importTypescript.js @@ -5,6 +5,7 @@ const path = require('path'); const fs = require('fs'); +const child_process = require('child_process'); const TYPESCRIPT_LIB_SOURCE = path.join(__dirname, '../node_modules/typescript/lib'); const TYPESCRIPT_LIB_DESTINATION = path.join(__dirname, '../src/lib'); @@ -17,6 +18,13 @@ const TYPESCRIPT_LIB_DESTINATION = path.join(__dirname, '../src/lib'); } importLibs(); + const npmLsOutput = JSON.parse(child_process.execSync("npm ls typescript --depth=0 --json=true").toString()); + const typeScriptDependencyVersion = npmLsOutput.dependencies.typescript.version; + + fs.writeFileSync(path.join(TYPESCRIPT_LIB_DESTINATION, 'typescriptServicesMetadata.ts'), + `export const typeScriptVersion = "${typeScriptDependencyVersion}"; +`); + var tsServices = fs.readFileSync(path.join(TYPESCRIPT_LIB_SOURCE, 'typescriptServices.js')).toString(); // Ensure we never run into the node system... diff --git a/src/lib/typescriptServicesMetadata.ts b/src/lib/typescriptServicesMetadata.ts new file mode 100644 index 00000000..cf9d8303 --- /dev/null +++ b/src/lib/typescriptServicesMetadata.ts @@ -0,0 +1 @@ +export const typeScriptVersion = "3.3.3333"; diff --git a/src/monaco.contribution.ts b/src/monaco.contribution.ts index 62da8db9..98a8414d 100644 --- a/src/monaco.contribution.ts +++ b/src/monaco.contribution.ts @@ -5,6 +5,7 @@ 'use strict'; import * as mode from './tsMode'; +import { typeScriptVersion } from './lib/typescriptServicesMetadata'; // do not import the whole typescriptServices here import Emitter = monaco.Emitter; import IEvent = monaco.IEvent; @@ -204,6 +205,7 @@ function createAPI(): typeof monaco.languages.typescript { NewLineKind: NewLineKind, ScriptTarget: ScriptTarget, ModuleResolutionKind: ModuleResolutionKind, + typeScriptVersion, typescriptDefaults: typescriptDefaults, javascriptDefaults: javascriptDefaults, getTypeScriptWorker: getTypeScriptWorker, diff --git a/src/monaco.d.ts b/src/monaco.d.ts index 2a3bab0c..2d358f0a 100644 --- a/src/monaco.d.ts +++ b/src/monaco.d.ts @@ -166,6 +166,8 @@ declare module monaco.languages.typescript { setEagerModelSync(value: boolean): void; } + export var typeScriptVersion: string; + export var typescriptDefaults: LanguageServiceDefaults; export var javascriptDefaults: LanguageServiceDefaults;