feat(typings): allow defining custom namespace for bundle
Allows declaring a bundle's namespace in generated typings file, which should correspond to the global object representing the module inside its bundle. BREAKING CHANGE The router was previously exported as ng.router in the angular.sfx.dev.js bundle, but now it is exported as ngRouter. Closes #2948 Closes #3544
This commit is contained in:
parent
1f692ae263
commit
dfa5103b1d
|
@ -47,14 +47,15 @@ module.exports = new Package('angular-v2-docs', [jsdocPackage, nunjucksPackage,
|
|||
{
|
||||
id: 'angular2/angular2',
|
||||
references: ['../es6-promise/es6-promise.d.ts', '../rx/rx.d.ts'],
|
||||
namespace: 'ng',
|
||||
modules: {
|
||||
'angular2/angular2': 'angular2/angular2',
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'angular2/router',
|
||||
//Right now the typings live in the same directory, but eventually will not. See #3458
|
||||
references: ['../angular2/angular2.d.ts'],
|
||||
namespace: 'ngRouter',
|
||||
references: ['../es6-promise/es6-promise.d.ts'],
|
||||
modules: {
|
||||
'angular2/router': 'angular2/router'
|
||||
}
|
||||
|
|
|
@ -33,7 +33,12 @@ module.exports = function createTypeDefinitionFile(log) {
|
|||
// A type definition may include a number of top level modules
|
||||
// And those modules could be aliased (such as 'angular2/angular2.api' -> 'angular2/angular2')
|
||||
moduleDocs: _.transform(def.modules, function(moduleDocs, id, alias) {
|
||||
moduleDocs[id] = { id: alias, doc: null, references: def.references };
|
||||
moduleDocs[id] = {
|
||||
id: alias,
|
||||
doc: null,
|
||||
namespace: def.namespace,
|
||||
references: def.references
|
||||
};
|
||||
})
|
||||
};
|
||||
});
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
// ***********************************************************
|
||||
{% for alias, module in doc.moduleDocs %}
|
||||
{%- if module.references.length %}
|
||||
// Angular depends transitively on these libraries.
|
||||
// {$ alias $} depends transitively on these libraries.
|
||||
// If you don't have them installed you can install them using TSD
|
||||
// https://github.com/DefinitelyTyped/tsd
|
||||
{%- endif %}
|
||||
|
@ -39,7 +39,7 @@
|
|||
{% block staticDeclarations %}{% endblock %}
|
||||
{% for alias, module in doc.moduleDocs %}
|
||||
{$ commentBlock(module.doc, 1) $}
|
||||
declare module ng {
|
||||
declare module {$ module.namespace $} {
|
||||
|
||||
{%- for export in module.doc.exports -%}
|
||||
{%- if export.content -%}
|
||||
|
@ -75,7 +75,7 @@ declare module ng {
|
|||
}
|
||||
|
||||
declare module "{$ alias $}" {
|
||||
export = ng;
|
||||
export = {$ module.namespace $};
|
||||
}
|
||||
|
||||
{% endfor %}
|
||||
|
|
|
@ -9,7 +9,7 @@ var _prevNg = (<any>window).ng;
|
|||
(<any>window).ng = ng;
|
||||
|
||||
|
||||
(<any>ng).router = router;
|
||||
(<any>window).ngRouter = router;
|
||||
/**
|
||||
* Calling noConflict will restore window.angular to its pre-angular loading state
|
||||
* and return the angular module object.
|
||||
|
|
|
@ -21,6 +21,7 @@ export {OnActivate, OnDeactivate, OnReuse, CanDeactivate, CanReuse} from './src/
|
|||
export {CanActivate} from './src/router/lifecycle_annotations';
|
||||
export {Instruction, ComponentInstruction} from './src/router/instruction';
|
||||
export {Url} from './src/router/url_parser';
|
||||
export {OpaqueToken, Type} from 'angular2/angular2';
|
||||
|
||||
import {LocationStrategy} from './src/router/location_strategy';
|
||||
import {HTML5LocationStrategy} from './src/router/html5_location_strategy';
|
||||
|
|
Loading…
Reference in New Issue