Bläddra i källkod

Expose TypeScript version via `monaco.languages.typescript.typeScriptVersion`

Ulrich Buchgraber 6 år sedan
förälder
incheckning
d199064a4b
4 ändrade filer med 13 tillägg och 0 borttagningar
  1. 8 0
      scripts/importTypescript.js
  2. 1 0
      src/lib/typescriptServicesMetadata.ts
  3. 2 0
      src/monaco.contribution.ts
  4. 2 0
      src/monaco.d.ts

+ 8 - 0
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...

+ 1 - 0
src/lib/typescriptServicesMetadata.ts

@@ -0,0 +1 @@
+export const typeScriptVersion = "3.3.3333";

+ 2 - 0
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,

+ 2 - 0
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;