File tree Expand file tree Collapse file tree 10 files changed +141
-0
lines changed Expand file tree Collapse file tree 10 files changed +141
-0
lines changed Original file line number Diff line number Diff line change
1
+ node_modules
2
+ shared /timeReporter.js
3
+ browser /app.js
4
+ node /app.js
Original file line number Diff line number Diff line change
1
+ ** Fetch dependencies:**
2
+ ```
3
+ npm install
4
+ ```
5
+
6
+ ** Compile TypeScript source code**
7
+
8
+ ```
9
+ node node_modules/typescript/bin/tsc.js
10
+ ```
11
+
12
+ ** Start browser version of the sample using http-server on custom port (code should be compiled prior to this step)**
13
+ ```
14
+ node node_modules/http-server/bin/http-server -p 8080 -o
15
+ ```
16
+ '-p' sets the port to use, default port is 8080. If it is taken pick any port that is free.
17
+ After server is started open 'localhost:8080' in a browser.
18
+
19
+
20
+ ** Run example using Node (code should be compiled prior to this step)**
21
+
22
+ ```
23
+ node node/app.js
24
+ ```
25
+
26
+ Shortcuts for doing compile\run steps from above:
27
+
28
+ * Browser*
29
+ ```
30
+ npm run browser
31
+ ```
32
+
33
+ * Node*
34
+ ```
35
+ npm run node
36
+ ```
Original file line number Diff line number Diff line change
1
+ body
2
+ {
3
+ font-family : 'Segoe UI' , sans-serif
4
+ }
5
+
6
+ span {
7
+ font-style : italic
8
+ }
Original file line number Diff line number Diff line change
1
+ import { TimeReporter } from '../shared/timeReporter'
2
+
3
+ let element = document . getElementById ( "content" ) ;
4
+ element . innerText += "The time is: " ;
5
+ let span = document . createElement ( "span" ) ;
6
+ element . appendChild ( span ) ;
7
+
8
+ function printer ( s : string ) : void {
9
+ span . innerText = s ;
10
+ }
11
+
12
+ let timeReporter = new TimeReporter ( printer ) ;
13
+ timeReporter . start ( ) ;
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+
3
+ < html lang ="en " xmlns ="http://www.w3.org/1999/xhtml ">
4
+ < head >
5
+ < meta charset ="utf-8 " />
6
+ < title > TypeScript HTML App</ title >
7
+ < link rel ="stylesheet " href ="browser/app.css " type ="text/css " />
8
+ < script data-main ="browser/app " type ="text/javascript " src ="http://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.1/require.min.js "> </ script >
9
+ </ head >
10
+ < body >
11
+ < h1 > UMD/TypeScript sample</ h1 >
12
+
13
+ < div id ="content "> </ div >
14
+ </ body >
15
+ </ html >
Original file line number Diff line number Diff line change
1
+ import { TimeReporter } from '../shared/timeReporter'
2
+ import { EOL } from 'os' ;
3
+ function printer ( s ) : void {
4
+ console . log ( "The time is: " + s + EOL ) ;
5
+ }
6
+
7
+ let timeReporter = new TimeReporter ( printer ) ;
8
+ timeReporter . start ( ) ;
Original file line number Diff line number Diff line change
1
+ declare module "os" {
2
+ export var EOL : string ;
3
+ }
Original file line number Diff line number Diff line change
1
+ {
2
+ "name" : " typescript-umd" ,
3
+ "version" : " 1.0.0" ,
4
+ "description" : " UMD/TypeScript demo" ,
5
+ "repository" : {
6
+ "type" : " git" ,
7
+ "url" : " https://github.com/Microsoft/TypeScriptSamples.git"
8
+ },
9
+ "dependencies" : {
10
+ "http-server" : " 0.8.0"
11
+ },
12
+ "devDependencies" : {
13
+ "typescript" : " ^1.5.3"
14
+ },
15
+ "scripts" : {
16
+ "browser" : " node node_modules/typescript/bin/tsc.js && node node_modules/http-server/bin/http-server -o" ,
17
+ "node" : " node node_modules/typescript/bin/tsc.js && node node/app.js"
18
+ }
19
+ }
Original file line number Diff line number Diff line change
1
+ export type Printer = ( s : string ) => void ;
2
+
3
+ export class TimeReporter
4
+ {
5
+ printer : Printer
6
+ timerToken : number ;
7
+
8
+ constructor ( printer : Printer )
9
+ {
10
+ this . printer = printer ;
11
+ this . printer ( new Date ( ) . toUTCString ( ) ) ;
12
+ }
13
+
14
+ start ( )
15
+ {
16
+ this . timerToken = setInterval ( ( ) => this . printer ( new Date ( ) . toUTCString ( ) ) , 500 ) ;
17
+ }
18
+
19
+ stop ( )
20
+ {
21
+ clearTimeout ( this . timerToken ) ;
22
+ }
23
+ }
Original file line number Diff line number Diff line change
1
+ {
2
+ "compilerOptions" : {
3
+ "module" : " UMD" ,
4
+ "target" : " es5"
5
+ },
6
+ "files" : [
7
+ " shared/timeReporter.ts" ,
8
+ " browser/app.ts" ,
9
+ " node/os.d.ts" ,
10
+ " node/app.ts"
11
+ ]
12
+ }
You can’t perform that action at this time.
0 commit comments