Skip to content
This repository has been archived by the owner on Nov 5, 2021. It is now read-only.

Expose TypeScript version via monaco.languages.typescript.typeScriptVersion #31

Merged
merged 3 commits into from Aug 13, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 9 additions & 0 deletions scripts/importTypescript.js
Expand Up @@ -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');
Expand All @@ -17,6 +18,14 @@ 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}";\n`
);

var tsServices = fs.readFileSync(path.join(TYPESCRIPT_LIB_SOURCE, 'typescriptServices.js')).toString();

// Ensure we never run into the node system...
Expand Down
1 change: 1 addition & 0 deletions src/lib/typescriptServicesMetadata.ts
@@ -0,0 +1 @@
export const typescriptVersion = "3.5.1";
2 changes: 2 additions & 0 deletions src/monaco.contribution.ts
Expand Up @@ -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;
Expand Down Expand Up @@ -204,6 +205,7 @@ function createAPI(): typeof monaco.languages.typescript {
NewLineKind: NewLineKind,
ScriptTarget: ScriptTarget,
ModuleResolutionKind: ModuleResolutionKind,
typescriptVersion,
typescriptDefaults: typescriptDefaults,
javascriptDefaults: javascriptDefaults,
getTypeScriptWorker: getTypeScriptWorker,
Expand Down
2 changes: 2 additions & 0 deletions src/monaco.d.ts
Expand Up @@ -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;

Expand Down