File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree 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+ ** Build and run sample in browser (using port 8080)**
7+ ```
8+ npm run browser
9+ ```
10+
11+ ** Build and run sample using NodeJS**
12+ ```
13+ npm run node
14+ ```
15+
16+ ** Run http-server on custom port (for browser version)**
17+ ```
18+ node node_modules/http-server/bin/http-server -p 8080 -o
19+ ```
20+
21+ '-p' sets the port to use, default port is 8080. If it is taken pick any port that is free.
22+ After server is started open 'localhost:8080' in a browser.
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" : " mhegazy/typescript#v1.5-beta2"
14+ },
15+ "scripts" : {
16+ "browser" : " node node_modules/typescript/bin/tsc.js && node node_modules/http-server/bin/http-server browser -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