mobx-route 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/route/route.d.ts +5 -4
- package/route/route.d.ts.map +1 -1
- package/route/route.js +13 -8
- package/route/route.test.js +16 -0
- package/route/route.types.d.ts +2 -1
- package/route/route.types.d.ts.map +1 -1
package/package.json
CHANGED
package/route/route.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { IMobxHistory, IMobxLocation } from 'mobx-location-history';
|
|
1
|
+
import { IMobxHistory, IMobxLocation, IQueryParams } from 'mobx-location-history';
|
|
2
2
|
import { ParamData, TokenData } from 'path-to-regexp';
|
|
3
3
|
import { AllPropertiesOptional } from 'yummies/utils/types';
|
|
4
4
|
import { ExtractPathParams, RouteConfiguration, RouteGlobalConfiguration, RouteMatchesData, RouteNavigateParams } from './route.types.js';
|
|
5
5
|
export declare class Route<TPath extends string, TParentRoute extends Route<any, any> | null = null> {
|
|
6
6
|
path: TPath;
|
|
7
7
|
protected config: RouteConfiguration<TParentRoute>;
|
|
8
|
-
history: IMobxHistory;
|
|
9
|
-
location: IMobxLocation;
|
|
8
|
+
protected history: IMobxHistory;
|
|
9
|
+
protected location: IMobxLocation;
|
|
10
|
+
query: IQueryParams;
|
|
10
11
|
private _tokenData;
|
|
11
12
|
constructor(path: TPath, config?: RouteConfiguration<TParentRoute>);
|
|
12
13
|
get matchData(): RouteMatchesData<TPath> | null;
|
|
@@ -24,7 +25,7 @@ export declare class Route<TPath extends string, TParentRoute extends Route<any,
|
|
|
24
25
|
] : [params: ExtractPathParams<TPath>, navigateParams?: RouteNavigateParams]): void;
|
|
25
26
|
protected get tokenData(): TokenData;
|
|
26
27
|
private static _globalConfiguration;
|
|
27
|
-
static setGlobalConfiguration(globalConfiguration: RouteGlobalConfiguration): void;
|
|
28
|
+
static setGlobalConfiguration(globalConfiguration: Partial<RouteGlobalConfiguration>): void;
|
|
28
29
|
static get globalConfiguration(): RouteGlobalConfiguration;
|
|
29
30
|
}
|
|
30
31
|
//# sourceMappingURL=route.d.ts.map
|
package/route/route.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/route/route.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/route/route.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EACZ,aAAa,EACb,YAAY,EAIb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAkB,SAAS,EAAS,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,KAAK,CAChB,KAAK,SAAS,MAAM,EACpB,YAAY,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;IAUzC,IAAI,EAAE,KAAK;IAClB,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,YAAY,CAAC;IATpD,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC;IAElC,KAAK,EAAE,YAAY,CAAC;IAEpB,OAAO,CAAC,UAAU,CAAwB;gBAGjC,IAAI,EAAE,KAAK,EACR,MAAM,GAAE,kBAAkB,CAAC,YAAY,CAAM;IAYzD,IAAI,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAkB9C;IAED,IAAI,SAAS,YAEZ;IAED,MAAM,CAAC,aAAa,SAAS,MAAM,EACjC,IAAI,EAAE,aAAa,EACnB,MAAM,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;IAYlD,SAAS,CAAC,aAAa,CACrB,MAAM,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,GACnD,SAAS,GAAG,SAAS;IAWxB,SAAS,KAAK,OAAO,WAIpB;IAED,SAAS,CACP,GAAG,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,GACjE;QACE,MAAM,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS;QACpD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;KAC5B,GACD,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAerE,QAAQ,CACN,GAAG,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,GACjE;QACE,MAAM,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS;QACpD,cAAc,CAAC,EAAE,mBAAmB;KACrC,GACD,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAW9E,SAAS,KAAK,SAAS,cAKtB;IAED,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAuC;IAE1E,MAAM,CAAC,sBAAsB,CAC3B,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,CAAC;IAgBxD,MAAM,KAAK,mBAAmB,6BAM7B;CACF"}
|
package/route/route.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { computed, makeObservable } from 'mobx';
|
|
2
|
-
import { buildSearchString, MobxHistory, MobxLocation, } from 'mobx-location-history';
|
|
2
|
+
import { buildSearchString, MobxHistory, MobxLocation, QueryParams, } from 'mobx-location-history';
|
|
3
3
|
import { compile, match, parse } from 'path-to-regexp';
|
|
4
4
|
export class Route {
|
|
5
5
|
path;
|
|
6
6
|
config;
|
|
7
7
|
history;
|
|
8
8
|
location;
|
|
9
|
+
query;
|
|
9
10
|
_tokenData;
|
|
10
11
|
constructor(path, config = {}) {
|
|
11
12
|
this.path = path;
|
|
12
13
|
this.config = config;
|
|
13
14
|
this.history = config.history ?? Route.globalConfiguration.history;
|
|
14
15
|
this.location = config.location ?? Route.globalConfiguration.location;
|
|
16
|
+
this.query = config.queryParams ?? Route.globalConfiguration.queryParams;
|
|
15
17
|
computed.struct(this, 'isMatches');
|
|
16
18
|
computed.struct(this, 'matchData');
|
|
17
19
|
makeObservable(this);
|
|
@@ -84,16 +86,19 @@ export class Route {
|
|
|
84
86
|
}
|
|
85
87
|
static _globalConfiguration;
|
|
86
88
|
static setGlobalConfiguration(globalConfiguration) {
|
|
87
|
-
|
|
89
|
+
const history = globalConfiguration.history ?? new MobxHistory();
|
|
90
|
+
const location = globalConfiguration.location ?? new MobxLocation(history);
|
|
91
|
+
const queryParams = globalConfiguration.queryParams ?? new QueryParams(location, history);
|
|
92
|
+
const config = {
|
|
93
|
+
history,
|
|
94
|
+
location,
|
|
95
|
+
queryParams,
|
|
96
|
+
};
|
|
97
|
+
this._globalConfiguration = config;
|
|
88
98
|
}
|
|
89
99
|
static get globalConfiguration() {
|
|
90
100
|
if (!this._globalConfiguration) {
|
|
91
|
-
|
|
92
|
-
const location = new MobxLocation(history);
|
|
93
|
-
this.setGlobalConfiguration({
|
|
94
|
-
location,
|
|
95
|
-
history,
|
|
96
|
-
});
|
|
101
|
+
this.setGlobalConfiguration({});
|
|
97
102
|
}
|
|
98
103
|
return this._globalConfiguration;
|
|
99
104
|
}
|
package/route/route.test.js
CHANGED
|
@@ -27,6 +27,10 @@ describe('route', () => {
|
|
|
27
27
|
beforeEach(() => {
|
|
28
28
|
history.resetMocks();
|
|
29
29
|
});
|
|
30
|
+
it('empty string', () => {
|
|
31
|
+
const route = new Route('');
|
|
32
|
+
expect(route.isMatches).toBe(true);
|
|
33
|
+
});
|
|
30
34
|
it('/test', () => {
|
|
31
35
|
const route = new Route('/test');
|
|
32
36
|
route.navigate();
|
|
@@ -94,4 +98,16 @@ describe('route', () => {
|
|
|
94
98
|
expect(history.pushStateSpy).toBeCalledWith(null, '', '/mobx-view-model/test/1/barg?a=1');
|
|
95
99
|
expect(route.isMatches).toBe(true);
|
|
96
100
|
});
|
|
101
|
+
it('/test/:id/:bar + baseUrl + query params + (query params tests)', () => {
|
|
102
|
+
const route = new Route('/test/:id/:bar', { baseUrl: '/mobx-view-model' });
|
|
103
|
+
route.navigate({
|
|
104
|
+
id: 1,
|
|
105
|
+
bar: 'barg',
|
|
106
|
+
}, {
|
|
107
|
+
query: { a: 1 },
|
|
108
|
+
});
|
|
109
|
+
route.query.update({ a: 3, b: [1, 2, 3] });
|
|
110
|
+
expect(location.search).toBe('?a=3&b=1%2C2%2C3');
|
|
111
|
+
expect(route.query.data).toEqual({ a: '3', b: '1,2,3' });
|
|
112
|
+
});
|
|
97
113
|
});
|
package/route/route.types.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { IMobxHistory, IMobxLocation } from 'mobx-location-history';
|
|
1
|
+
import { IMobxHistory, IMobxLocation, IQueryParams } from 'mobx-location-history';
|
|
2
2
|
import { ParseOptions } from 'path-to-regexp';
|
|
3
3
|
import type { Route } from './route.js';
|
|
4
4
|
export interface RouteGlobalConfiguration {
|
|
5
5
|
history: IMobxHistory;
|
|
6
6
|
location: IMobxLocation;
|
|
7
|
+
queryParams: IQueryParams;
|
|
7
8
|
}
|
|
8
9
|
export interface RouteConfiguration<TParentRoute extends AnyRoute | null = null> extends Partial<RouteGlobalConfiguration> {
|
|
9
10
|
baseUrl?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.types.d.ts","sourceRoot":"","sources":["../../src/route/route.types.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"route.types.d.ts","sourceRoot":"","sources":["../../src/route/route.types.ts"],"names":[],"mappings":"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"}
|