diff --git a/index.ts b/index.ts index 29f5370..a0a51b8 100644 --- a/index.ts +++ b/index.ts @@ -69,12 +69,22 @@ module tss { getScriptVersion: (fileName) => this.files[fileName] && this.files[fileName].version.toString(), getScriptSnapshot: (fileName) => { var file = this.files[fileName]; - return { - getText: (start, end) => file.text.substring(start, end), - getLength: () => file.text.length, - getLineStartPositions: () => [], - getChangeRange: (oldSnapshot) => undefined - }; + if (file) { + return { + getText: (start, end) => file.text.substring(start, end), + getLength: () => file.text.length, + getLineStartPositions: (): number[]=> [], + getChangeRange: (oldSnapshot) => undefined + }; + } + else { // This is some reference import + return { + getText: (start, end) => '', + getLength: () => 0, + getLineStartPositions: (): number[]=> [], + getChangeRange: (oldSnapshot) => undefined + }; + } }, getCurrentDirectory: () => process.cwd(), getScriptIsOpen: () => true, diff --git a/test/test.js b/test/test.js index 6d1ac4f..ec89677 100644 --- a/test/test.js +++ b/test/test.js @@ -86,6 +86,14 @@ describe('typescript-update', function() { var expected = "var x = 'some string';" + eol; assert.equal(tss.compile(src), expected); }); + + it('reference imports are ignored', function() { + var src = "/// " + eol + + "var x: number = 'some string';"; + var expected = "/// " + eol + + "var x = 'some string';" + eol; + assert.equal(tss.compile(src), expected); + }); it('syntactic errors are not ignored', function() { var src = "var x = 123 123;";