Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit c617e53

Browse files
committed
Merge pull request #30 from Microsoft/jspm_sample
Jspm/TypeScript sample
2 parents 4a4d46a + 1158964 commit c617e53

File tree

6 files changed

+108
-0
lines changed

6 files changed

+108
-0
lines changed

jspm/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
**Setup jspm and install jspm dependencies**
2+
```
3+
npm install -g jspm@beta
4+
jspm install
5+
6+
```
7+
8+
**run:**
9+
- install http-server package via
10+
```
11+
npm install -g http-server
12+
```
13+
- run server (if port 8080 it taken, pick any port that is free)
14+
```
15+
http-server -p 8080
16+
```

jspm/config.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
System.config({
2+
"baseURL": "/",
3+
"defaultJSExtensions": true,
4+
"transpiler": "typescript",
5+
"paths": {
6+
"*": "src/*",
7+
"src": "src",
8+
"github:*": "jspm_packages/github/*",
9+
"npm:*": "jspm_packages/npm/*"
10+
},
11+
"packages": {
12+
"src": {
13+
"defaultExtension": "ts"
14+
}
15+
}
16+
});
17+
18+
System.config({
19+
"map": {
20+
"core-js": "npm:[email protected]",
21+
"typescript": "github:mhegazy/[email protected]",
22+
"github:jspm/[email protected]": {
23+
"process": "npm:[email protected]"
24+
},
25+
26+
"fs": "github:jspm/[email protected]",
27+
"process": "github:jspm/[email protected]",
28+
"systemjs-json": "github:systemjs/[email protected]"
29+
}
30+
}
31+
});
32+

jspm/index.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<html>
2+
<head>
3+
<title>Jspm sample</title>
4+
<script src="jspm_packages/system.src.js"></script>
5+
<script src="config.js"></script>
6+
</head>
7+
<body>
8+
<div id="content"></div>
9+
<script>
10+
System.import('app').then(function(m) {
11+
var element = document.getElementById("content");
12+
m.main(element);
13+
});
14+
</script>
15+
</body>
16+
</html>

jspm/package.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"jspm": {
3+
"directories": {},
4+
"dependencies": {
5+
"core-js": "npm:core-js@^0.9.4"
6+
},
7+
"devDependencies": {
8+
"typescript": "npm:typescript"
9+
}
10+
}
11+
}

jspm/src/app.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { Greeter } from 'greeter'
2+
3+
export function main(el: HTMLElement): void {
4+
let greeter = new Greeter(el);
5+
greeter.start();
6+
}

jspm/src/greeter.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import repeat from "core-js/library/fn/string/repeat"
2+
3+
export class Greeter
4+
{
5+
element: HTMLElement;
6+
span: HTMLElement;
7+
timerToken: number;
8+
9+
constructor (element: HTMLElement)
10+
{
11+
this.element = element;
12+
this.element.innerText += "The time is: ";
13+
this.span = document.createElement('span');
14+
this.element.appendChild(this.span);
15+
this.span.innerText = new Date().toUTCString();
16+
}
17+
18+
start()
19+
{
20+
this.timerToken = setInterval(() => this.span.innerText = `"${repeat(new Date().toUTCString() + " ", 2)}"`, 500);
21+
}
22+
23+
stop()
24+
{
25+
clearTimeout(this.timerToken);
26+
}
27+
}

0 commit comments

Comments
 (0)