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 global;
|
||||
declare var require;
|
||||
declare var require: NativeScriptRequire;
|
||||
|
||||
// Global functions
|
||||
declare function Deprecated(target: Object, key?: string | symbol, value?: any): void;
|
||||
@ -146,10 +145,6 @@ declare class WeakRef<T> {
|
||||
clear(): void;
|
||||
}
|
||||
|
||||
declare module module {
|
||||
var id: string;
|
||||
var filename: string;
|
||||
var exports: any;
|
||||
}
|
||||
declare var module: NativeScriptModule;
|
||||
// Same as module.exports
|
||||
declare var exports: any;
|
||||
|
36
gruntfile.js
36
gruntfile.js
@ -580,18 +580,38 @@ module.exports = function(grunt) {
|
||||
grunt.registerTask("distribute-ts-apps-files", [
|
||||
"copy:readyTsAppFiles"
|
||||
]);
|
||||
grunt.registerTask("generate-tns-core-modules-dts", function() {
|
||||
var dtsFiles = grunt.file.expand({cwd: localCfg.outModulesDir}, [
|
||||
'**/*.d.ts',
|
||||
'!tns-core-modules.d.ts'
|
||||
].concat(localCfg.defaultExcludes));
|
||||
dtsFiles.sort();
|
||||
|
||||
function writeDtsFile(dtsFiles, outFile) {
|
||||
var dtsLines = dtsFiles.map(function(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.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
|
||||
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.d.ts",
|
||||
"location/location.ios.ts",
|
||||
"module.d.ts",
|
||||
"node-tests/definitions/chai.d.ts",
|
||||
"node-tests/definitions/mocha.d.ts",
|
||||
"node-tests/test-angular-xml.ts",
|
||||
|
Reference in New Issue
Block a user