@thepassle/app-tools 0.9.7 → 0.9.9
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/api/index.js +8 -8
- package/package.json +1 -1
- package/router/README.md +13 -2
- package/router/index.js +3 -0
- package/router/plugins/redirect.js +4 -4
- package/types/api/index.d.ts +14 -14
- package/types/api/types.d.ts +2 -2
- package/types/router/index.d.ts +4 -0
- package/types/router/plugins/redirect.d.ts +2 -2
package/api/index.js
CHANGED
|
@@ -149,20 +149,20 @@ export class Api {
|
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
/** @type {import('./types.js').BodylessMethod
|
|
152
|
+
/** @type {import('./types.js').BodylessMethod} */
|
|
153
153
|
get = (url, opts) => this.fetch(url, 'GET', opts);
|
|
154
|
-
/** @type {import('./types.js').BodylessMethod
|
|
154
|
+
/** @type {import('./types.js').BodylessMethod} */
|
|
155
155
|
options = (url, opts) => this.fetch(url, 'OPTIONS', opts);
|
|
156
|
-
/** @type {import('./types.js').BodylessMethod
|
|
156
|
+
/** @type {import('./types.js').BodylessMethod} */
|
|
157
157
|
delete = (url, opts) => this.fetch(url, 'DELETE', opts);
|
|
158
|
-
/** @type {import('./types.js').BodylessMethod
|
|
158
|
+
/** @type {import('./types.js').BodylessMethod} */
|
|
159
159
|
head = (url, opts) => this.fetch(url, 'HEAD', opts);
|
|
160
|
-
/** @type {import('./types.js').BodyMethod
|
|
160
|
+
/** @type {import('./types.js').BodyMethod} */
|
|
161
161
|
post = (url, data, opts) => this.fetch(url, 'POST', opts, data);
|
|
162
|
-
/** @type {import('./types.js').BodyMethod
|
|
162
|
+
/** @type {import('./types.js').BodyMethod} */
|
|
163
163
|
put = (url, data, opts) => this.fetch(url, 'PUT', opts, data);
|
|
164
|
-
/** @type {import('./types.js').BodyMethod
|
|
164
|
+
/** @type {import('./types.js').BodyMethod} */
|
|
165
165
|
patch = (url, data, opts) => this.fetch(url, 'PATCH', opts, data);
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
export const api = new Api();
|
|
168
|
+
export const api = new Api();
|
package/package.json
CHANGED
package/router/README.md
CHANGED
|
@@ -213,14 +213,18 @@ App:
|
|
|
213
213
|
import { LitElement } from 'lit';
|
|
214
214
|
|
|
215
215
|
class MyEl extends LitElement {
|
|
216
|
+
static properties = {
|
|
217
|
+
route: {}
|
|
218
|
+
}
|
|
219
|
+
|
|
216
220
|
firstUpdated() {
|
|
217
221
|
router.addEventListener('route-changed', () => {
|
|
218
|
-
this.
|
|
222
|
+
this.route = router.render();
|
|
219
223
|
});
|
|
220
224
|
}
|
|
221
225
|
|
|
222
226
|
render() {
|
|
223
|
-
return
|
|
227
|
+
return this.route;
|
|
224
228
|
}
|
|
225
229
|
}
|
|
226
230
|
```
|
|
@@ -301,6 +305,13 @@ const router = new Router({
|
|
|
301
305
|
redirect('/404'),
|
|
302
306
|
],
|
|
303
307
|
},
|
|
308
|
+
{
|
|
309
|
+
path: '/legacy/detail/:product',
|
|
310
|
+
title: 'Foo',
|
|
311
|
+
plugins: [
|
|
312
|
+
redirect(context => '/detail/${context.params.product}'),
|
|
313
|
+
],
|
|
314
|
+
},
|
|
304
315
|
]
|
|
305
316
|
});
|
|
306
317
|
```
|
package/router/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {string} path
|
|
2
|
+
* @param {string|((context: import('../index.js').Context) => string)} path
|
|
3
3
|
* @returns {import('../index.js').Plugin}
|
|
4
4
|
*/
|
|
5
5
|
export function redirect(path) {
|
|
6
6
|
return {
|
|
7
7
|
name: 'redirect',
|
|
8
|
-
shouldNavigate: () => ({
|
|
8
|
+
shouldNavigate: (context) => ({
|
|
9
9
|
condition: () => false,
|
|
10
|
-
redirect: path
|
|
10
|
+
redirect: typeof path === 'function' ? path(context) : path
|
|
11
11
|
})
|
|
12
12
|
}
|
|
13
|
-
}
|
|
13
|
+
}
|
package/types/api/index.d.ts
CHANGED
|
@@ -33,20 +33,20 @@ export class Api {
|
|
|
33
33
|
* @returns
|
|
34
34
|
*/
|
|
35
35
|
fetch(url: string, method: Method, opts?: RequestOptions, data?: object): Promise<any>;
|
|
36
|
-
/** @type {import('./types.js').BodylessMethod
|
|
37
|
-
get: import('./types.js').BodylessMethod
|
|
38
|
-
/** @type {import('./types.js').BodylessMethod
|
|
39
|
-
options: import('./types.js').BodylessMethod
|
|
40
|
-
/** @type {import('./types.js').BodylessMethod
|
|
41
|
-
delete: import('./types.js').BodylessMethod
|
|
42
|
-
/** @type {import('./types.js').BodylessMethod
|
|
43
|
-
head: import('./types.js').BodylessMethod
|
|
44
|
-
/** @type {import('./types.js').BodyMethod
|
|
45
|
-
post: import('./types.js').BodyMethod
|
|
46
|
-
/** @type {import('./types.js').BodyMethod
|
|
47
|
-
put: import('./types.js').BodyMethod
|
|
48
|
-
/** @type {import('./types.js').BodyMethod
|
|
49
|
-
patch: import('./types.js').BodyMethod
|
|
36
|
+
/** @type {import('./types.js').BodylessMethod} */
|
|
37
|
+
get: import('./types.js').BodylessMethod;
|
|
38
|
+
/** @type {import('./types.js').BodylessMethod} */
|
|
39
|
+
options: import('./types.js').BodylessMethod;
|
|
40
|
+
/** @type {import('./types.js').BodylessMethod} */
|
|
41
|
+
delete: import('./types.js').BodylessMethod;
|
|
42
|
+
/** @type {import('./types.js').BodylessMethod} */
|
|
43
|
+
head: import('./types.js').BodylessMethod;
|
|
44
|
+
/** @type {import('./types.js').BodyMethod} */
|
|
45
|
+
post: import('./types.js').BodyMethod;
|
|
46
|
+
/** @type {import('./types.js').BodyMethod} */
|
|
47
|
+
put: import('./types.js').BodyMethod;
|
|
48
|
+
/** @type {import('./types.js').BodyMethod} */
|
|
49
|
+
patch: import('./types.js').BodyMethod;
|
|
50
50
|
}
|
|
51
51
|
export const api: Api;
|
|
52
52
|
export type Config = import('./types.js').Config;
|
package/types/api/types.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ export interface Config {
|
|
|
4
4
|
responseType?: ResponseType;
|
|
5
5
|
baseURL?: string;
|
|
6
6
|
}
|
|
7
|
-
export type BodyMethod<R>
|
|
8
|
-
export type BodylessMethod<R>
|
|
7
|
+
export type BodyMethod = <R>(url: string, data?: object, opts?: RequestOptions) => Promise<R>;
|
|
8
|
+
export type BodylessMethod = <R>(url: string, opts?: RequestOptions) => Promise<R>;
|
|
9
9
|
export type Method = 'GET' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'POST' | 'PUT' | 'PATCH';
|
|
10
10
|
export interface Plugin {
|
|
11
11
|
beforeFetch?: (meta: MetaParams) => MetaParams | Promise<MetaParams> | void;
|
package/types/router/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {string} path
|
|
2
|
+
* @param {string|((context: import('../index.js').Context) => string)} path
|
|
3
3
|
* @returns {import('../index.js').Plugin}
|
|
4
4
|
*/
|
|
5
|
-
export function redirect(path: string): import('../index.js').Plugin;
|
|
5
|
+
export function redirect(path: string | ((context: import('../index.js').Context) => string)): import('../index.js').Plugin;
|