-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdts-gen.js
95 lines (85 loc) · 2.84 KB
/
dts-gen.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
var dtsGenerator = require('dts-generator')
var fs = require('fs');
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
var buildTargets = {
rings: [
{ name: 'ring-0', repos: [
{ name: 'event-aggregator' },
{ name: 'history' },
{ name: 'logging' },
{ name: 'logging-console' },
{ name: 'path' },
{ name: 'metadata' },
{ name: 'skeleton-plugin' },
{ name: 'task-queue' },
{ name: 'route-recognizer'}
]},
{ name: 'ring-1', repos: [
{ name: 'dependency-injection' },
{ name: 'history-browser' },
{ name: 'loader' },
{ name: 'http-client' }
]},
{ name: 'ring-2', repos: [
{ name: 'binding' },
{ name: 'router' },
{ name: 'loader-default' }
]},
{ name: 'ring-3', repos: [
{ name: 'templating' }
]},
{ name: 'ring-4', repos: [
{ name: 'framework' },
{ name: 'animator-css' },
{ name: 'validation' },
{ name: 'templating-binding' },
{ name: 'templating-resources' },
{ name: 'templating-router' }
]},
{ name: 'ring-5', repos: [
{ name: 'app-contacts' },
{ name: 'bootstrapper' },
{ name: 'skeleton-navigation' }
]}
]
}
console.log('---------------------------------------');
console.log(' __dirname: ' + __dirname);
console.log('---------------------------------------');
var ringSources = [];
buildTargets.rings.forEach(function(ring) {
console.log(' ring: ' + ring.name);
ring.repos.forEach(function(repo) {
// console.log(' repo: ' + repo.name);
repo.files = [];
fs.readdirSync(__dirname + "/aurelia-ts/" + repo.name).forEach(function(name) {
if (name.toLowerCase().endsWith('.ts') && ! name.toLowerCase().endsWith('.d.ts')) {
// console.log(' file: ' + name);
repo.files.push(name);
}
});
var sources = [];
sources.push(__dirname + "/aurelia-ts/" + repo.name + "/*.ts");
sources.push(__dirname + "/aurelia-ts/*.d.ts");
ringSources.forEach(function(ringSource) {
sources.push(ringSource);
});
// gen dts here
console.log(' gen dts ' + repo.name);
console.log(' files ' + repo.files);
dtsGenerator.generate({
name: 'aurelia-' + repo.name,
baseDir: __dirname + '/aurelia-ts/' + repo.name,
files: repo.files,
out: 'aurelia-dts/' + ring.name + '/aurelia-' + repo.name + '.d.ts',
main: 'aurelia-' + repo.name + '/index'
}, function(msg) {
console.log(' message: ' + msg);
});
console.log('');
});
ringSources.push(__dirname + "/aurelia-dts/" + ring.name + '/*.ts');
});
console.log('---------------------------------------');