mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 21:01:34 +08:00
Merge pull request #1535 from NativeScript/hdeshev/angular-dts-compat
Generate segmented d.ts files and resolve Angular type clashes
This commit is contained in:
9
declarations.d.ts
vendored
9
declarations.d.ts
vendored
@ -99,8 +99,7 @@ interface Console {
|
|||||||
}
|
}
|
||||||
|
|
||||||
declare var console: Console;
|
declare var console: Console;
|
||||||
declare var global;
|
declare var require: NativeScriptRequire;
|
||||||
declare var require;
|
|
||||||
|
|
||||||
// Global functions
|
// Global functions
|
||||||
declare function Deprecated(target: Object, key?: string | symbol, value?: any): void;
|
declare function Deprecated(target: Object, key?: string | symbol, value?: any): void;
|
||||||
@ -146,10 +145,6 @@ declare class WeakRef<T> {
|
|||||||
clear(): void;
|
clear(): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module module {
|
declare var module: NativeScriptModule;
|
||||||
var id: string;
|
|
||||||
var filename: string;
|
|
||||||
var exports: any;
|
|
||||||
}
|
|
||||||
// Same as module.exports
|
// Same as module.exports
|
||||||
declare var exports: any;
|
declare var exports: any;
|
||||||
|
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", [
|
||||||
|
13
module.d.ts
vendored
Normal file
13
module.d.ts
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
//Base module declarations
|
||||||
|
//Not required in Angular apps since it clashes with its typings.
|
||||||
|
declare var global: any;
|
||||||
|
|
||||||
|
interface NativeScriptRequire {
|
||||||
|
(id: string): any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare interface NativeScriptModule {
|
||||||
|
id: string;
|
||||||
|
filename: string;
|
||||||
|
exports: any;
|
||||||
|
}
|
@ -455,6 +455,7 @@
|
|||||||
"location/location.android.ts",
|
"location/location.android.ts",
|
||||||
"location/location.d.ts",
|
"location/location.d.ts",
|
||||||
"location/location.ios.ts",
|
"location/location.ios.ts",
|
||||||
|
"module.d.ts",
|
||||||
"node-tests/definitions/chai.d.ts",
|
"node-tests/definitions/chai.d.ts",
|
||||||
"node-tests/definitions/mocha.d.ts",
|
"node-tests/definitions/mocha.d.ts",
|
||||||
"node-tests/test-angular-xml.ts",
|
"node-tests/test-angular-xml.ts",
|
||||||
|
Reference in New Issue
Block a user