Skip to content

Commit 75343eb

Browse files
btfordvikerman
authored andcommitted
feat(router): add regex matchers
@petebacondarwin deserves credit for most of this commit. This allows you to specify a regex and serializer function instead of the path DSL in your route declaration. ``` @RouteConfig([ { regex: '[a-z]+.[0-9]+', serializer: (params) => `{params.a}.params.b}`, component: MyComponent } ]) class Component {} ``` Closes #7325 Closes #7126
1 parent 2548ce8 commit 75343eb

File tree

74 files changed

+986
-738
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+986
-738
lines changed

modules/angular1_router/build.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,20 @@ var fs = require('fs');
44
var ts = require('typescript');
55

66
var files = [
7-
'lifecycle_annotations_impl.ts',
7+
'utils.ts',
88
'url_parser.ts',
9-
'route_recognizer.ts',
10-
'route_config_impl.ts',
11-
'async_route_handler.ts',
12-
'sync_route_handler.ts',
13-
'component_recognizer.ts',
9+
'lifecycle/lifecycle_annotations_impl.ts',
10+
'lifecycle/route_lifecycle_reflector.ts',
11+
'route_config/route_config_impl.ts',
12+
'route_config/route_config_normalizer.ts',
13+
'rules/route_handlers/async_route_handler.ts',
14+
'rules/route_handlers/sync_route_handler.ts',
15+
'rules/rules.ts',
16+
'rules/rule_set.ts',
17+
'rules/route_paths/route_path.ts',
18+
'rules/route_paths/param_route_path.ts',
19+
'rules/route_paths/regex_route_path.ts',
1420
'instruction.ts',
15-
'path_recognizer.ts',
16-
'route_config_nomalizer.ts',
17-
'route_lifecycle_reflector.ts',
1821
'route_registry.ts',
1922
'router.ts'
2023
];

modules/angular1_router/src/ng_outlet.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ function ngOutletFillContentDirective($compile) {
200200

201201

202202

203-
204203
function routerTriggerDirective($q) {
205204
return {
206205
require: '^ngOutlet',

modules/angular1_router/test/integration/lifecycle_hook_spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ describe('Navigation lifecycle', function () {
351351

352352
expect(spy).toHaveBeenCalled();
353353
var args = spy.calls.mostRecent().args;
354-
expect(args[0].params).toEqual({name: 'brian'});
354+
expect(args[0].params).toEqual(jasmine.objectContaining({name: 'brian'}));
355355
expect(args[1]).toBe($http);
356356
}));
357357

modules/angular2/platform/testing/browser_static.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {MockAnimationBuilder} from 'angular2/src/mock/animation_builder_mock';
1515
import {MockDirectiveResolver} from 'angular2/src/mock/directive_resolver_mock';
1616
import {MockViewResolver} from 'angular2/src/mock/view_resolver_mock';
1717
import {MockLocationStrategy} from 'angular2/src/mock/mock_location_strategy';
18-
import {LocationStrategy} from 'angular2/src/router/location_strategy';
18+
import {LocationStrategy} from 'angular2/src/router/location/location_strategy';
1919
import {MockNgZone} from 'angular2/src/mock/ng_zone_mock';
2020

2121
import {XHRImpl} from "angular2/src/platform/browser/xhr_impl";

modules/angular2/platform/testing/server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {MockAnimationBuilder} from 'angular2/src/mock/animation_builder_mock';
1616
import {MockDirectiveResolver} from 'angular2/src/mock/directive_resolver_mock';
1717
import {MockViewResolver} from 'angular2/src/mock/view_resolver_mock';
1818
import {MockLocationStrategy} from 'angular2/src/mock/mock_location_strategy';
19-
import {LocationStrategy} from 'angular2/src/router/location_strategy';
19+
import {LocationStrategy} from 'angular2/src/router/location/location_strategy';
2020
import {MockNgZone} from 'angular2/src/mock/ng_zone_mock';
2121

2222
import {TestComponentBuilder} from 'angular2/src/testing/test_component_builder';

modules/angular2/router.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,26 @@
55
*/
66

77
export {Router} from './src/router/router';
8-
export {RouterOutlet} from './src/router/router_outlet';
9-
export {RouterLink} from './src/router/router_link';
8+
export {RouterOutlet} from './src/router/directives/router_outlet';
9+
export {RouterLink} from './src/router/directives/router_link';
1010
export {RouteParams, RouteData} from './src/router/instruction';
11-
export {PlatformLocation} from './src/router/platform_location';
11+
export {PlatformLocation} from './src/router/location/platform_location';
1212
export {RouteRegistry, ROUTER_PRIMARY_COMPONENT} from './src/router/route_registry';
13-
export {LocationStrategy, APP_BASE_HREF} from './src/router/location_strategy';
14-
export {HashLocationStrategy} from './src/router/hash_location_strategy';
15-
export {PathLocationStrategy} from './src/router/path_location_strategy';
16-
export {Location} from './src/router/location';
17-
export * from './src/router/route_config_decorator';
13+
export {LocationStrategy, APP_BASE_HREF} from './src/router/location/location_strategy';
14+
export {HashLocationStrategy} from './src/router/location/hash_location_strategy';
15+
export {PathLocationStrategy} from './src/router/location/path_location_strategy';
16+
export {Location} from './src/router/location/location';
17+
export * from './src/router/route_config/route_config_decorator';
1818
export * from './src/router/route_definition';
1919
export {OnActivate, OnDeactivate, OnReuse, CanDeactivate, CanReuse} from './src/router/interfaces';
20-
export {CanActivate} from './src/router/lifecycle_annotations';
20+
export {CanActivate} from './src/router/lifecycle/lifecycle_annotations';
2121
export {Instruction, ComponentInstruction} from './src/router/instruction';
2222
export {OpaqueToken} from 'angular2/core';
2323
export {ROUTER_PROVIDERS_COMMON} from 'angular2/src/router/router_providers_common';
2424
export {ROUTER_PROVIDERS, ROUTER_BINDINGS} from 'angular2/src/router/router_providers';
2525

26-
import {RouterOutlet} from './src/router/router_outlet';
27-
import {RouterLink} from './src/router/router_link';
26+
import {RouterOutlet} from './src/router/directives/router_outlet';
27+
import {RouterLink} from './src/router/directives/router_link';
2828
import {CONST_EXPR} from './src/facade/lang';
2929

3030
/**

modules/angular2/router/router_link_dsl.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {TEMPLATE_TRANSFORMS} from 'angular2/compiler';
22
import {Provider} from 'angular2/core';
3-
import {RouterLinkTransform} from 'angular2/src/router/router_link_transform';
3+
import {RouterLinkTransform} from 'angular2/src/router/directives/router_link_transform';
44
import {CONST_EXPR} from 'angular2/src/facade/lang';
55

6-
export {RouterLinkTransform} from 'angular2/src/router/router_link_transform';
6+
export {RouterLinkTransform} from 'angular2/src/router/directives/router_link_transform';
77

88
/**
99
* Enables the router link DSL.

modules/angular2/src/mock/location_mock.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {Injectable} from 'angular2/src/core/di';
22
import {EventEmitter, ObservableWrapper} from 'angular2/src/facade/async';
33
import {ListWrapper} from 'angular2/src/facade/collection';
4-
import {Location} from 'angular2/src/router/location';
4+
import {Location} from 'angular2/src/router/location/location';
55

66
/**
77
* A spy for {@link Location} that allows tests to fire simulated location events.

modules/angular2/src/mock/mock_location_strategy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Injectable} from 'angular2/src/core/di';
22
import {EventEmitter, ObservableWrapper} from 'angular2/src/facade/async';
3-
import {LocationStrategy} from 'angular2/src/router/location_strategy';
3+
import {LocationStrategy} from 'angular2/src/router/location/location_strategy';
44

55

66
/**

modules/angular2/src/platform/worker_render_common.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import {BrowserDomAdapter} from './browser/browser_adapter';
3636
import {wtfInit} from 'angular2/src/core/profile/wtf_init';
3737
import {MessageBasedRenderer} from 'angular2/src/web_workers/ui/renderer';
3838
import {MessageBasedXHRImpl} from 'angular2/src/web_workers/ui/xhr_impl';
39-
import {BrowserPlatformLocation} from 'angular2/src/router/browser_platform_location';
39+
import {BrowserPlatformLocation} from 'angular2/src/router/location/browser_platform_location';
4040
import {
4141
ServiceMessageBrokerFactory,
4242
ServiceMessageBrokerFactory_

0 commit comments

Comments
 (0)