Skip to content

Commit cd3f4ac

Browse files
committed
Add poelstra3poc: compiling version of poelstra3 (although it doesn't run, see readme).
1 parent 366ebb5 commit cd3f4ac

File tree

21 files changed

+148
-0
lines changed

21 files changed

+148
-0
lines changed

poelstra3poc/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
This tree shows an almost fully working example of having a mix of native and non-Typescript packages.
2+
3+
It is a direct copy of `poelstra3`, and is a proof-of-concept of how external module resolution would work if
4+
https://github.com/Microsoft/TypeScript/issues/2338 and https://github.com/Microsoft/TypeScript/issues/2839 is implemented.
5+
6+
It has the following relevant changes compared to `poelstra3`:
7+
* `import ... = require("...");` statements were rewritten from e.g. `myutils` to its 'resolved' equivalent `../typings/myutils/index`
8+
9+
It compiles! (using tsc 1.5.0-alpha)
10+
11+
In contrast to `poelstra2poc`, this one doesn't run in practice, because of:
12+
```
13+
$ node ../dist/myprogram.js
14+
15+
module.js:340
16+
throw err;
17+
^
18+
Error: Cannot find module '../typings/myutils/index'
19+
```
20+
21+
That's to be expected, because we made `tsc` happy by resolving to the typings, but that's not where the `.js` lives.
22+
23+
However, hovering over the `a` and `b` vars in `myprogram.ts` shows correct types!

poelstra3poc/dist/myprogram.d.ts

Whitespace-only changes.

poelstra3poc/dist/myprogram.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
var mylib = require("../node_modules/mylib/dist/index");
2+
var myotherlib = require('../node_modules/myotherlib/dist/index');
3+
var a = mylib.myfunc();
4+
var b = myotherlib.myotherfunc();
5+
console.log(typeof a.foo);
6+
console.log(typeof b.foo);

poelstra3poc/node_modules/mylib/dist/index.d.ts

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

poelstra3poc/node_modules/mylib/dist/index.js

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

poelstra3poc/node_modules/mylib/node_modules/myutils/dist/index.js

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

poelstra3poc/node_modules/mylib/node_modules/myutils/package.json

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

poelstra3poc/node_modules/mylib/package.json

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

poelstra3poc/node_modules/mylib/ts/index.ts

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

poelstra3poc/node_modules/mylib/ts/tsconfig.json

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

poelstra3poc/node_modules/mylib/typings/myutils/index.d.ts

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

poelstra3poc/node_modules/myotherlib/dist/index.d.ts

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

poelstra3poc/node_modules/myotherlib/dist/index.js

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

poelstra3poc/node_modules/myotherlib/node_modules/myutils/dist/index.js

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

poelstra3poc/node_modules/myotherlib/node_modules/myutils/package.json

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

poelstra3poc/node_modules/myotherlib/package.json

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

poelstra3poc/node_modules/myotherlib/ts/index.ts

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

poelstra3poc/node_modules/myotherlib/ts/tsconfig.json

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

poelstra3poc/node_modules/myotherlib/typings/myutils/index.d.ts

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

poelstra3poc/ts/myprogram.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import mylib = require("../node_modules/mylib/dist/index");
2+
import myotherlib = require('../node_modules/myotherlib/dist/index');
3+
4+
var a = mylib.myfunc();
5+
var b = myotherlib.myotherfunc();
6+
7+
console.log(typeof a.foo); // string
8+
console.log(typeof b.foo); // number

poelstra3poc/ts/tsconfig.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"version": "1.4.1",
3+
"compilerOptions": {
4+
"target": "es5",
5+
"module": "commonjs",
6+
"noImplicitAny": false,
7+
"removeComments": true,
8+
"noLib": false,
9+
"outDir": "../dist",
10+
"declaration": true
11+
},
12+
"filesGlob": [
13+
"./**/*.ts",
14+
"!./node_modules/**/*.ts"
15+
],
16+
"files": [
17+
"./myprogram.ts"
18+
]
19+
}

0 commit comments

Comments
 (0)