Skip to content

Commit 3533237

Browse files
committed
TypeScript language support
1 parent 5139dd6 commit 3533237

File tree

5 files changed

+73
-1
lines changed

5 files changed

+73
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"name": "jsbin",
88
"description": "Collaborative JavaScript Debugging App",
99
"main": "./lib/app",
10-
"version": "3.0.11",
10+
"version": "3.0.12",
1111
"preferGlobal": "true",
1212
"homepage": "http://jsbin.com",
1313
"bin": "./bin/jsbin",

public/js/editors/panel.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var editorModes = {
55
html: 'htmlmixed',
66
javascript: 'javascript',
77
css: 'css',
8+
typescript: 'javascript',
89
markdown: 'markdown',
910
coffeescript: 'coffeescript',
1011
less: 'css',

public/js/processors/processor.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,49 @@ var processors = jsbin.processors = {
8181
return renderedCode;
8282
});
8383
},
84+
typescript: function (ready) {
85+
return new Processor(jsbin.root + '/js/vendor/typescript.min.js', ready, function (source) {
86+
var noop = function () {};
87+
var outfile = {
88+
source: "",
89+
Write: function (s) {
90+
this.source += s;
91+
},
92+
WriteLine: function (s) {
93+
this.source += s + "\n";
94+
},
95+
Close: noop
96+
};
97+
98+
var outerr = {
99+
Write: noop,
100+
WriteLine: noop,
101+
Close: noop
102+
};
103+
104+
var parseErrors = [];
105+
106+
var compiler = new TypeScript.TypeScriptCompiler(outfile, outerr);
107+
108+
compiler.setErrorCallback(function (start, len, message) {
109+
parseErrors.push({ start: start, len: len, message: message });
110+
});
111+
compiler.parser.errorRecovery = true;
112+
113+
compiler.addUnit(source, 'jsbin.ts');
114+
compiler.typeCheck();
115+
compiler.reTypeCheck();
116+
compiler.emit();
117+
118+
for (var i = 0, len = parseErrors.length; i < len; i++) {
119+
console.log('Error Message: ' + parseErrors[i].message);
120+
console.log('Error Start: ' + parseErrors[i].start);
121+
console.log('Error Length: ' + parseErrors[i].len);
122+
}
123+
124+
return outfile.source;
125+
});
126+
},
84127
markdown: function (ready) {
85128
return new Processor(jsbin.root + '/js/vendor/markdown.js', function () {
86129
$.getScript(jsbin.root + '/js/vendor/codemirror2/markdown.js', ready);

public/js/vendor/typescript.min.js

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

views/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@
215215
<a href="#coffeescript">CoffeeScript</a>
216216
<a href="#processing">Processing</a>
217217
<a href="#traceur">Traceur</a>
218+
<a href="#typescript">TypeScript</a>
218219
<a href="#convert">Convert to JavaScript</a>
219220
</div>
220221
</div>

0 commit comments

Comments
 (0)