mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 11:01:21 +08:00
Generate segmented d.ts files
- tns-core-modules-base.d.ts containing modules definitions with as little platform stuff as possible. Angular apps will reference this one. - tns-core-modules.es6.d.ts adding some platform stuff to base. Intended to be used in environments supporting ES6 (obviously) - tns-core-modules.d.ts adding to the previous one definitions for our ES6 polyfills: promises, collections, weakmaps, etc. The usual reference point for most apps.
This commit is contained in:
36
gruntfile.js
36
gruntfile.js
@ -580,18 +580,38 @@ module.exports = function(grunt) {
|
|||||||
grunt.registerTask("distribute-ts-apps-files", [
|
grunt.registerTask("distribute-ts-apps-files", [
|
||||||
"copy:readyTsAppFiles"
|
"copy:readyTsAppFiles"
|
||||||
]);
|
]);
|
||||||
grunt.registerTask("generate-tns-core-modules-dts", function() {
|
function writeDtsFile(dtsFiles, outFile) {
|
||||||
var dtsFiles = grunt.file.expand({cwd: localCfg.outModulesDir}, [
|
|
||||||
'**/*.d.ts',
|
|
||||||
'!tns-core-modules.d.ts'
|
|
||||||
].concat(localCfg.defaultExcludes));
|
|
||||||
dtsFiles.sort();
|
|
||||||
|
|
||||||
var dtsLines = dtsFiles.map(function(dtsFile) {
|
var dtsLines = dtsFiles.map(function(dtsFile) {
|
||||||
return '/// <reference path="' + dtsFile + '" />';
|
return '/// <reference path="' + dtsFile + '" />';
|
||||||
});
|
});
|
||||||
var combinedDtsPath = pathModule.join(localCfg.outModulesDir, 'tns-core-modules.d.ts');
|
var combinedDtsPath = pathModule.join(localCfg.outModulesDir, outFile);
|
||||||
grunt.file.write(combinedDtsPath, dtsLines.join('\n'));
|
grunt.file.write(combinedDtsPath, dtsLines.join('\n'));
|
||||||
|
}
|
||||||
|
grunt.registerTask("generate-tns-core-modules-dts", function() {
|
||||||
|
var angularConflicts = ['module.d.ts']
|
||||||
|
var angularExcludes = angularConflicts.map(function(file) {
|
||||||
|
return '!' + file;
|
||||||
|
})
|
||||||
|
var nonES6Files = [
|
||||||
|
'es-collections.d.ts',
|
||||||
|
'es6-promise.d.ts',
|
||||||
|
'es6.d.ts',
|
||||||
|
'weakmap.d.ts',
|
||||||
|
];
|
||||||
|
var es6Excludes = nonES6Files.map(function(file) {
|
||||||
|
return '!' + file;
|
||||||
|
})
|
||||||
|
var dtsFiles = grunt.file.expand({cwd: localCfg.outModulesDir}, [
|
||||||
|
'**/*.d.ts',
|
||||||
|
'!tns-core-modules.d.ts'
|
||||||
|
].concat(localCfg.defaultExcludes).concat(es6Excludes).concat(angularExcludes));
|
||||||
|
dtsFiles.sort();
|
||||||
|
|
||||||
|
writeDtsFile(dtsFiles, 'tns-core-modules.base.d.ts');
|
||||||
|
var es6Files = angularConflicts.concat(['tns-core-modules.base.d.ts']);
|
||||||
|
writeDtsFile(es6Files, 'tns-core-modules.es6.d.ts');
|
||||||
|
var allFiles = angularConflicts.concat(nonES6Files).concat(['tns-core-modules.base.d.ts']);
|
||||||
|
writeDtsFile(allFiles, 'tns-core-modules.d.ts');
|
||||||
});
|
});
|
||||||
//aliasing pack-modules for backwards compatibility
|
//aliasing pack-modules for backwards compatibility
|
||||||
grunt.registerTask("pack-modules", [
|
grunt.registerTask("pack-modules", [
|
||||||
|
Reference in New Issue
Block a user