Skip to content

Commit 710c81a

Browse files
committed
Merge pull request microsoft#16 from Microsoft/umdSample
initial version of UMD/TypeScript sample
2 parents 67b5dbb + 2e595e5 commit 710c81a

File tree

10 files changed

+141
-0
lines changed

10 files changed

+141
-0
lines changed

umd/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules
2+
shared/timeReporter.js
3+
browser/app.js
4+
node/app.js

umd/README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
```

umd/browser/app.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
body
2+
{
3+
font-family: 'Segoe UI', sans-serif
4+
}
5+
6+
span {
7+
font-style: italic
8+
}

umd/browser/app.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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();

umd/index.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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>

umd/node/app.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
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();

umd/node/os.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
declare module "os" {
2+
export var EOL: string;
3+
}

umd/package.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
}

umd/shared/timeReporter.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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+
}

umd/tsconfig.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
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+
}

0 commit comments

Comments
 (0)