vue-context-storage 0.1.8 → 0.1.10
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/dist/index.d.ts +411 -10
- package/dist/index.js +193 -22
- package/package.json +38 -37
- package/dist/collection.d.cts +0 -22
- package/dist/collection.d.ts +0 -22
- package/dist/constants.d.cts +0 -2
- package/dist/constants.d.ts +0 -2
- package/dist/handlers/query/helpers.d.cts +0 -45
- package/dist/handlers/query/helpers.d.ts +0 -45
- package/dist/handlers/query/index.d.cts +0 -31
- package/dist/handlers/query/index.d.ts +0 -31
- package/dist/handlers/query/transform-helpers.d.cts +0 -123
- package/dist/handlers/query/transform-helpers.d.ts +0 -123
- package/dist/handlers/query/types.d.cts +0 -103
- package/dist/handlers/query/types.d.ts +0 -103
- package/dist/handlers.d.cts +0 -15
- package/dist/handlers.d.ts +0 -15
- package/dist/index.cjs +0 -409
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -10
- package/dist/index.js.map +0 -1
- package/dist/injectionSymbols.d.cts +0 -7
- package/dist/injectionSymbols.d.ts +0 -7
- package/dist/symbols.d.cts +0 -4
- package/dist/symbols.d.ts +0 -4
- package/src/collection.ts +0 -71
- package/src/components/ContextStorage.vue +0 -23
- package/src/components/ContextStorageActivator.vue +0 -20
- package/src/components/ContextStorageCollection.vue +0 -92
- package/src/components/ContextStorageProvider.vue +0 -38
- package/src/constants.ts +0 -5
- package/src/handlers/query/helpers.ts +0 -134
- package/src/handlers/query/index.ts +0 -355
- package/src/handlers/query/transform-helpers.ts +0 -309
- package/src/handlers/query/types.ts +0 -125
- package/src/handlers.ts +0 -18
- package/src/index.ts +0 -40
- package/src/injectionSymbols.ts +0 -15
- package/src/main.ts +0 -12
- package/src/plugin.ts +0 -16
- package/src/shims-vue.d.ts +0 -5
- package/src/symbols.ts +0 -4
package/package.json
CHANGED
|
@@ -1,72 +1,73 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vue-context-storage",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.1.10",
|
|
4
5
|
"description": "Vue 3 context storage system with URL query synchronization support",
|
|
6
|
+
"author": "",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"homepage": "https://github.com/lviobio/vue-context-storage#readme",
|
|
5
9
|
"repository": {
|
|
6
10
|
"type": "git",
|
|
7
|
-
"url": "https://github.com/lviobio/vue-context-storage.git"
|
|
11
|
+
"url": "git+https://github.com/lviobio/vue-context-storage.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/lviobio/vue-context-storage/issues"
|
|
8
15
|
},
|
|
9
|
-
"type": "module",
|
|
10
|
-
"main": "./dist/index.cjs",
|
|
11
|
-
"types": "./src/main.ts",
|
|
12
16
|
"exports": {
|
|
13
|
-
".":
|
|
14
|
-
|
|
15
|
-
"import": "./src/main.ts",
|
|
16
|
-
"require": {
|
|
17
|
-
"types": "./dist/index.d.cts",
|
|
18
|
-
"default": "./dist/index.cjs"
|
|
19
|
-
}
|
|
20
|
-
}
|
|
17
|
+
".": "./dist/index.js",
|
|
18
|
+
"./package.json": "./package.json"
|
|
21
19
|
},
|
|
20
|
+
"main": "./dist/index.js",
|
|
21
|
+
"module": "./dist/index.js",
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
22
23
|
"files": [
|
|
23
|
-
"dist"
|
|
24
|
-
"src",
|
|
25
|
-
"README.md"
|
|
24
|
+
"dist"
|
|
26
25
|
],
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public"
|
|
28
|
+
},
|
|
27
29
|
"scripts": {
|
|
28
30
|
"build": "tsdown",
|
|
29
31
|
"dev": "tsdown --watch",
|
|
30
32
|
"check": "npm run ts:check && npm run lint:check && npm run format:check && npm run dependency-cruiser:check",
|
|
31
|
-
"ts:check": "tsc --noEmit",
|
|
33
|
+
"ts:check": "vue-tsc --noEmit",
|
|
32
34
|
"format": "prettier --write src/",
|
|
33
35
|
"format:check": "prettier --check src/",
|
|
34
36
|
"lint": "eslint . --fix",
|
|
35
37
|
"lint:check": "eslint .",
|
|
36
38
|
"dependency-cruiser:check": "depcruise --config .dependency-cruiser.cjs src",
|
|
39
|
+
"play": "vite",
|
|
40
|
+
"test": "vitest",
|
|
41
|
+
"release": "bumpp && npm publish",
|
|
37
42
|
"prepublishOnly": "npm run check && npm run build"
|
|
38
43
|
},
|
|
39
|
-
"keywords": [
|
|
40
|
-
"vue",
|
|
41
|
-
"vue3",
|
|
42
|
-
"context",
|
|
43
|
-
"storage",
|
|
44
|
-
"state-management",
|
|
45
|
-
"query-sync"
|
|
46
|
-
],
|
|
47
|
-
"author": "",
|
|
48
|
-
"license": "MIT",
|
|
49
44
|
"peerDependencies": {
|
|
50
|
-
"vue": "^3.
|
|
45
|
+
"vue": "^3.0.0",
|
|
51
46
|
"vue-router": "^4.0.0"
|
|
52
47
|
},
|
|
53
|
-
"dependencies": {
|
|
54
|
-
"lodash-es": "^4.17.21"
|
|
55
|
-
},
|
|
56
48
|
"devDependencies": {
|
|
57
|
-
"@
|
|
58
|
-
"@types/
|
|
59
|
-
"@
|
|
49
|
+
"@types/lodash": "^4.17.21",
|
|
50
|
+
"@types/node": "^25.0.3",
|
|
51
|
+
"@vitejs/plugin-vue": "^6.0.3",
|
|
52
|
+
"@vitest/browser-playwright": "^4.0.16",
|
|
60
53
|
"@vue/eslint-config-typescript": "^14.6.0",
|
|
54
|
+
"bumpp": "^10.3.2",
|
|
61
55
|
"dependency-cruiser": "^17.3.6",
|
|
62
56
|
"eslint": "^9.39.2",
|
|
63
57
|
"eslint-config-prettier": "^10.1.8",
|
|
64
58
|
"eslint-plugin-vue": "^10.6.2",
|
|
59
|
+
"playwright": "^1.57.0",
|
|
65
60
|
"prettier": "^3.7.4",
|
|
66
|
-
"tsdown": "^0.
|
|
67
|
-
"typescript": "^5.9.
|
|
61
|
+
"tsdown": "^0.18.4",
|
|
62
|
+
"typescript": "^5.9.3",
|
|
68
63
|
"typescript-eslint": "^8.51.0",
|
|
64
|
+
"vite": "^7.3.0",
|
|
65
|
+
"vitest": "^4.0.16",
|
|
66
|
+
"vitest-browser-vue": "^2.0.1",
|
|
69
67
|
"vue": "^3.5.26",
|
|
70
|
-
"vue-
|
|
68
|
+
"vue-tsc": "^3.2.1"
|
|
69
|
+
},
|
|
70
|
+
"dependencies": {
|
|
71
|
+
"lodash": "^4.17.21"
|
|
71
72
|
}
|
|
72
73
|
}
|
package/dist/collection.d.cts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ContextStorageHandler, ContextStorageHandlerConstructor } from './handlers';
|
|
2
|
-
export type ContextStorageCollectionItem = {
|
|
3
|
-
key: string;
|
|
4
|
-
handlers: ContextStorageHandler[];
|
|
5
|
-
};
|
|
6
|
-
interface ItemOptions {
|
|
7
|
-
key: string;
|
|
8
|
-
}
|
|
9
|
-
export declare class ContextStorageCollection {
|
|
10
|
-
private handlerConstructors;
|
|
11
|
-
active?: ContextStorageCollectionItem;
|
|
12
|
-
private collection;
|
|
13
|
-
private onActiveChangeCallbacks;
|
|
14
|
-
constructor(handlerConstructors: ContextStorageHandlerConstructor[]);
|
|
15
|
-
onActiveChange(callback: (item: ContextStorageCollectionItem) => void): void;
|
|
16
|
-
first(): ContextStorageCollectionItem | undefined;
|
|
17
|
-
findItemByKey(key: string): ContextStorageCollectionItem | undefined;
|
|
18
|
-
add(options: ItemOptions): ContextStorageCollectionItem;
|
|
19
|
-
remove(removeItem: ContextStorageCollectionItem): void;
|
|
20
|
-
setActive(activeItem: ContextStorageCollectionItem): void;
|
|
21
|
-
}
|
|
22
|
-
export {};
|
package/dist/collection.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ContextStorageHandler, ContextStorageHandlerConstructor } from './handlers';
|
|
2
|
-
export type ContextStorageCollectionItem = {
|
|
3
|
-
key: string;
|
|
4
|
-
handlers: ContextStorageHandler[];
|
|
5
|
-
};
|
|
6
|
-
interface ItemOptions {
|
|
7
|
-
key: string;
|
|
8
|
-
}
|
|
9
|
-
export declare class ContextStorageCollection {
|
|
10
|
-
private handlerConstructors;
|
|
11
|
-
active?: ContextStorageCollectionItem;
|
|
12
|
-
private collection;
|
|
13
|
-
private onActiveChangeCallbacks;
|
|
14
|
-
constructor(handlerConstructors: ContextStorageHandlerConstructor[]);
|
|
15
|
-
onActiveChange(callback: (item: ContextStorageCollectionItem) => void): void;
|
|
16
|
-
first(): ContextStorageCollectionItem | undefined;
|
|
17
|
-
findItemByKey(key: string): ContextStorageCollectionItem | undefined;
|
|
18
|
-
add(options: ItemOptions): ContextStorageCollectionItem;
|
|
19
|
-
remove(removeItem: ContextStorageCollectionItem): void;
|
|
20
|
-
setActive(activeItem: ContextStorageCollectionItem): void;
|
|
21
|
-
}
|
|
22
|
-
export {};
|
package/dist/constants.d.cts
DELETED
package/dist/constants.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { LocationQuery } from 'vue-router';
|
|
2
|
-
export interface SerializeOptions {
|
|
3
|
-
/**
|
|
4
|
-
* Custom prefix for serialized keys.
|
|
5
|
-
* @example
|
|
6
|
-
* - prefix: 'filters' => 'filters[key]'
|
|
7
|
-
* - prefix: 'search' => 'search[key]'
|
|
8
|
-
* - prefix: '' => 'key' (no prefix)
|
|
9
|
-
*/
|
|
10
|
-
prefix?: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Serializes filter parameters into a URL-friendly format.
|
|
14
|
-
*
|
|
15
|
-
* @param params - Raw parameters object to serialize
|
|
16
|
-
* @param options - Serialization options
|
|
17
|
-
* @returns Serialized parameters with prefixed keys
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* // With default prefix 'filters'
|
|
21
|
-
* serializeFiltersParams({ status: 'active', tags: ['a', 'b'] })
|
|
22
|
-
* // => { 'filters[status]': 'active', 'filters[tags]': 'a,b' }
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* // With custom prefix
|
|
26
|
-
* serializeFiltersParams({ name: 'John', all: true }, { prefix: 'search' })
|
|
27
|
-
* // => { 'search[name]': 'John', 'search[all]': '1' }
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* // Without prefix
|
|
31
|
-
* serializeFiltersParams({ page: 1, all: false }, { prefix: '' })
|
|
32
|
-
* // => { 'page': '1', 'all': '0' }
|
|
33
|
-
*/
|
|
34
|
-
export declare function serializeParams(params: Record<string, unknown>, options?: SerializeOptions): LocationQuery;
|
|
35
|
-
/**
|
|
36
|
-
* Deserializes query parameters from a URL-friendly format back to an object.
|
|
37
|
-
*
|
|
38
|
-
* @param params - Serialized parameters object
|
|
39
|
-
* @returns Deserialized parameters object
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* deserializeParams({ 'filters[status]': 'active', search: 'test' })
|
|
43
|
-
* // => { filters: {status: 'active'}, search: 'test' }
|
|
44
|
-
*/
|
|
45
|
-
export declare function deserializeParams(params: Record<string, any>): Record<string, any>;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { LocationQuery } from 'vue-router';
|
|
2
|
-
export interface SerializeOptions {
|
|
3
|
-
/**
|
|
4
|
-
* Custom prefix for serialized keys.
|
|
5
|
-
* @example
|
|
6
|
-
* - prefix: 'filters' => 'filters[key]'
|
|
7
|
-
* - prefix: 'search' => 'search[key]'
|
|
8
|
-
* - prefix: '' => 'key' (no prefix)
|
|
9
|
-
*/
|
|
10
|
-
prefix?: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Serializes filter parameters into a URL-friendly format.
|
|
14
|
-
*
|
|
15
|
-
* @param params - Raw parameters object to serialize
|
|
16
|
-
* @param options - Serialization options
|
|
17
|
-
* @returns Serialized parameters with prefixed keys
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* // With default prefix 'filters'
|
|
21
|
-
* serializeFiltersParams({ status: 'active', tags: ['a', 'b'] })
|
|
22
|
-
* // => { 'filters[status]': 'active', 'filters[tags]': 'a,b' }
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* // With custom prefix
|
|
26
|
-
* serializeFiltersParams({ name: 'John', all: true }, { prefix: 'search' })
|
|
27
|
-
* // => { 'search[name]': 'John', 'search[all]': '1' }
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* // Without prefix
|
|
31
|
-
* serializeFiltersParams({ page: 1, all: false }, { prefix: '' })
|
|
32
|
-
* // => { 'page': '1', 'all': '0' }
|
|
33
|
-
*/
|
|
34
|
-
export declare function serializeParams(params: Record<string, unknown>, options?: SerializeOptions): LocationQuery;
|
|
35
|
-
/**
|
|
36
|
-
* Deserializes query parameters from a URL-friendly format back to an object.
|
|
37
|
-
*
|
|
38
|
-
* @param params - Serialized parameters object
|
|
39
|
-
* @returns Deserialized parameters object
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* deserializeParams({ 'filters[status]': 'active', search: 'test' })
|
|
43
|
-
* // => { filters: {status: 'active'}, search: 'test' }
|
|
44
|
-
*/
|
|
45
|
-
export declare function deserializeParams(params: Record<string, any>): Record<string, any>;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ContextStorageHandlerConstructor } from '../../handlers';
|
|
2
|
-
import { contextStorageQueryHandler } from '../../symbols';
|
|
3
|
-
import { MaybeRefOrGetter } from 'vue';
|
|
4
|
-
import { LocationQuery } from 'vue-router';
|
|
5
|
-
import { ContextStorageQueryRegisteredItem, IContextStorageQueryHandler, QueryHandlerBaseOptions, RegisterQueryHandlerBaseOptions, RegisterQueryHandlerOptions } from './types';
|
|
6
|
-
export declare function useContextStorageQueryHandler<T extends Record<string, unknown>>(data: MaybeRefOrGetter<T>, options?: RegisterQueryHandlerBaseOptions<T>): void;
|
|
7
|
-
export declare class ContextStorageQueryHandler implements IContextStorageQueryHandler {
|
|
8
|
-
#private;
|
|
9
|
-
private enabled;
|
|
10
|
-
private registered;
|
|
11
|
-
private currentQuery;
|
|
12
|
-
private readonly route;
|
|
13
|
-
private router;
|
|
14
|
-
private initialState?;
|
|
15
|
-
private hasAnyRegistered;
|
|
16
|
-
private preventSyncRegisteredToQueryByAfterEachRoute;
|
|
17
|
-
private preventAfterEachRouteCallsWhileCallingRouter;
|
|
18
|
-
static customQueryHandlerOptions: QueryHandlerBaseOptions;
|
|
19
|
-
private readonly options;
|
|
20
|
-
static configure(options: QueryHandlerBaseOptions): ContextStorageHandlerConstructor;
|
|
21
|
-
constructor();
|
|
22
|
-
getInjectionKey(): typeof contextStorageQueryHandler;
|
|
23
|
-
setInitialState(state: Record<string, unknown> | undefined): void;
|
|
24
|
-
static getInitialStateResolver(): () => LocationQuery;
|
|
25
|
-
setEnabled(state: boolean, initial: boolean): void;
|
|
26
|
-
syncRegisteredToQuery(): Promise<void>;
|
|
27
|
-
afterEachRoute(): void;
|
|
28
|
-
syncInitialStateToRegisteredItem<T extends Record<string, unknown>>(item: ContextStorageQueryRegisteredItem<T>): void;
|
|
29
|
-
syncInitialStateToRegistered(): void;
|
|
30
|
-
register<T extends Record<string, unknown>>(data: MaybeRefOrGetter<T>, options: RegisterQueryHandlerOptions<T>): () => void;
|
|
31
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ContextStorageHandlerConstructor } from '../../handlers';
|
|
2
|
-
import { contextStorageQueryHandler } from '../../symbols';
|
|
3
|
-
import { MaybeRefOrGetter } from 'vue';
|
|
4
|
-
import { LocationQuery } from 'vue-router';
|
|
5
|
-
import { ContextStorageQueryRegisteredItem, IContextStorageQueryHandler, QueryHandlerBaseOptions, RegisterQueryHandlerBaseOptions, RegisterQueryHandlerOptions } from './types';
|
|
6
|
-
export declare function useContextStorageQueryHandler<T extends Record<string, unknown>>(data: MaybeRefOrGetter<T>, options?: RegisterQueryHandlerBaseOptions<T>): void;
|
|
7
|
-
export declare class ContextStorageQueryHandler implements IContextStorageQueryHandler {
|
|
8
|
-
#private;
|
|
9
|
-
private enabled;
|
|
10
|
-
private registered;
|
|
11
|
-
private currentQuery;
|
|
12
|
-
private readonly route;
|
|
13
|
-
private router;
|
|
14
|
-
private initialState?;
|
|
15
|
-
private hasAnyRegistered;
|
|
16
|
-
private preventSyncRegisteredToQueryByAfterEachRoute;
|
|
17
|
-
private preventAfterEachRouteCallsWhileCallingRouter;
|
|
18
|
-
static customQueryHandlerOptions: QueryHandlerBaseOptions;
|
|
19
|
-
private readonly options;
|
|
20
|
-
static configure(options: QueryHandlerBaseOptions): ContextStorageHandlerConstructor;
|
|
21
|
-
constructor();
|
|
22
|
-
getInjectionKey(): typeof contextStorageQueryHandler;
|
|
23
|
-
setInitialState(state: Record<string, unknown> | undefined): void;
|
|
24
|
-
static getInitialStateResolver(): () => LocationQuery;
|
|
25
|
-
setEnabled(state: boolean, initial: boolean): void;
|
|
26
|
-
syncRegisteredToQuery(): Promise<void>;
|
|
27
|
-
afterEachRoute(): void;
|
|
28
|
-
syncInitialStateToRegisteredItem<T extends Record<string, unknown>>(item: ContextStorageQueryRegisteredItem<T>): void;
|
|
29
|
-
syncInitialStateToRegistered(): void;
|
|
30
|
-
register<T extends Record<string, unknown>>(data: MaybeRefOrGetter<T>, options: RegisterQueryHandlerOptions<T>): () => void;
|
|
31
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { QueryValue } from './types';
|
|
2
|
-
export declare function asNumber(value: QueryValue | number | undefined): number;
|
|
3
|
-
export declare function asNumber(value: QueryValue | number | undefined, options: {
|
|
4
|
-
nullable: true;
|
|
5
|
-
missable: true;
|
|
6
|
-
fallbackValue?: number;
|
|
7
|
-
}): number | null | undefined;
|
|
8
|
-
export declare function asNumber(value: QueryValue | number | undefined, options: {
|
|
9
|
-
nullable: true;
|
|
10
|
-
missable?: false;
|
|
11
|
-
fallbackValue?: number;
|
|
12
|
-
}): number | null;
|
|
13
|
-
export declare function asNumber(value: QueryValue | number | undefined, options: {
|
|
14
|
-
nullable?: false;
|
|
15
|
-
missable: true;
|
|
16
|
-
fallbackValue?: number;
|
|
17
|
-
}): number | undefined;
|
|
18
|
-
export declare function asNumber(value: QueryValue | number | undefined, options: {
|
|
19
|
-
nullable?: false;
|
|
20
|
-
missable?: false;
|
|
21
|
-
fallbackValue?: number;
|
|
22
|
-
}): number;
|
|
23
|
-
export declare function asString(value: QueryValue | undefined): string;
|
|
24
|
-
export declare function asString<T extends readonly string[]>(value: QueryValue | undefined, options: {
|
|
25
|
-
nullable: true;
|
|
26
|
-
missable: true;
|
|
27
|
-
fallbackValue?: T[number];
|
|
28
|
-
allowedValues: T;
|
|
29
|
-
}): T[number] | null | undefined;
|
|
30
|
-
export declare function asString<T extends readonly string[]>(value: QueryValue | undefined, options: {
|
|
31
|
-
nullable: true;
|
|
32
|
-
missable?: false;
|
|
33
|
-
fallbackValue?: T[number];
|
|
34
|
-
allowedValues: T;
|
|
35
|
-
}): T[number] | null;
|
|
36
|
-
export declare function asString<T extends readonly string[]>(value: QueryValue | undefined, options: {
|
|
37
|
-
nullable?: false;
|
|
38
|
-
missable: true;
|
|
39
|
-
fallbackValue?: T[number];
|
|
40
|
-
allowedValues: T;
|
|
41
|
-
}): T[number] | undefined;
|
|
42
|
-
export declare function asString<T extends readonly string[]>(value: QueryValue | undefined, options: {
|
|
43
|
-
nullable?: false;
|
|
44
|
-
missable?: false;
|
|
45
|
-
fallbackValue?: T[number];
|
|
46
|
-
allowedValues: T;
|
|
47
|
-
}): T[number];
|
|
48
|
-
export declare function asString(value: QueryValue | undefined, options: {
|
|
49
|
-
nullable: true;
|
|
50
|
-
missable: true;
|
|
51
|
-
fallbackValue?: string;
|
|
52
|
-
}): string | null | undefined;
|
|
53
|
-
export declare function asString(value: QueryValue | undefined, options: {
|
|
54
|
-
nullable: true;
|
|
55
|
-
missable?: false;
|
|
56
|
-
fallbackValue?: string;
|
|
57
|
-
}): string | null;
|
|
58
|
-
export declare function asString(value: QueryValue | undefined, options: {
|
|
59
|
-
nullable?: false;
|
|
60
|
-
missable: true;
|
|
61
|
-
fallbackValue?: string;
|
|
62
|
-
}): string | undefined;
|
|
63
|
-
export declare function asString(value: QueryValue | undefined, options: {
|
|
64
|
-
nullable?: false;
|
|
65
|
-
missable?: false;
|
|
66
|
-
fallbackValue?: string;
|
|
67
|
-
}): string;
|
|
68
|
-
export declare function asNumberArray(value: QueryValue | undefined): number[];
|
|
69
|
-
export declare function asNumberArray(value: QueryValue | undefined, options: {
|
|
70
|
-
nullable: true;
|
|
71
|
-
}): number[] | null;
|
|
72
|
-
export declare function asNumberArray(value: QueryValue | undefined, options: {
|
|
73
|
-
nullable?: false;
|
|
74
|
-
}): number[];
|
|
75
|
-
export declare function asArray<T>(value: QueryValue | undefined): T[];
|
|
76
|
-
export declare function asArray<T>(value: QueryValue | undefined, options: {
|
|
77
|
-
nullable: true;
|
|
78
|
-
missable: true;
|
|
79
|
-
transform?: (value: QueryValue) => T;
|
|
80
|
-
}): T[] | null | undefined;
|
|
81
|
-
export declare function asArray<T>(value: QueryValue | undefined, options: {
|
|
82
|
-
nullable: true;
|
|
83
|
-
missable?: false;
|
|
84
|
-
transform?: (value: QueryValue) => T;
|
|
85
|
-
}): T[] | null;
|
|
86
|
-
export declare function asArray<T>(value: QueryValue | undefined, options: {
|
|
87
|
-
nullable?: false;
|
|
88
|
-
missable: true;
|
|
89
|
-
transform?: (value: QueryValue) => T;
|
|
90
|
-
}): T[] | undefined;
|
|
91
|
-
export declare function asArray<T>(value: QueryValue | undefined, options: {
|
|
92
|
-
nullable?: false;
|
|
93
|
-
missable?: false;
|
|
94
|
-
transform?: (value: QueryValue) => T;
|
|
95
|
-
}): T[];
|
|
96
|
-
export declare function asBoolean(value: QueryValue | undefined): boolean;
|
|
97
|
-
export declare function asBoolean(value: QueryValue | undefined, options: {
|
|
98
|
-
nullable: true;
|
|
99
|
-
missable: true;
|
|
100
|
-
fallbackValue?: boolean;
|
|
101
|
-
}): boolean | null | undefined;
|
|
102
|
-
export declare function asBoolean(value: QueryValue | undefined, options: {
|
|
103
|
-
nullable: true;
|
|
104
|
-
missable?: false;
|
|
105
|
-
fallbackValue?: boolean;
|
|
106
|
-
}): boolean | null;
|
|
107
|
-
export declare function asBoolean(value: QueryValue | undefined, options: {
|
|
108
|
-
nullable?: false;
|
|
109
|
-
missable: true;
|
|
110
|
-
fallbackValue?: boolean;
|
|
111
|
-
}): boolean | undefined;
|
|
112
|
-
export declare function asBoolean(value: QueryValue | undefined, options: {
|
|
113
|
-
nullable?: false;
|
|
114
|
-
missable?: false;
|
|
115
|
-
fallbackValue?: boolean;
|
|
116
|
-
}): boolean;
|
|
117
|
-
export declare const transform: {
|
|
118
|
-
asString: typeof asString;
|
|
119
|
-
asNumber: typeof asNumber;
|
|
120
|
-
asArray: typeof asArray;
|
|
121
|
-
asNumberArray: typeof asNumberArray;
|
|
122
|
-
asBoolean: typeof asBoolean;
|
|
123
|
-
};
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { QueryValue } from './types';
|
|
2
|
-
export declare function asNumber(value: QueryValue | number | undefined): number;
|
|
3
|
-
export declare function asNumber(value: QueryValue | number | undefined, options: {
|
|
4
|
-
nullable: true;
|
|
5
|
-
missable: true;
|
|
6
|
-
fallbackValue?: number;
|
|
7
|
-
}): number | null | undefined;
|
|
8
|
-
export declare function asNumber(value: QueryValue | number | undefined, options: {
|
|
9
|
-
nullable: true;
|
|
10
|
-
missable?: false;
|
|
11
|
-
fallbackValue?: number;
|
|
12
|
-
}): number | null;
|
|
13
|
-
export declare function asNumber(value: QueryValue | number | undefined, options: {
|
|
14
|
-
nullable?: false;
|
|
15
|
-
missable: true;
|
|
16
|
-
fallbackValue?: number;
|
|
17
|
-
}): number | undefined;
|
|
18
|
-
export declare function asNumber(value: QueryValue | number | undefined, options: {
|
|
19
|
-
nullable?: false;
|
|
20
|
-
missable?: false;
|
|
21
|
-
fallbackValue?: number;
|
|
22
|
-
}): number;
|
|
23
|
-
export declare function asString(value: QueryValue | undefined): string;
|
|
24
|
-
export declare function asString<T extends readonly string[]>(value: QueryValue | undefined, options: {
|
|
25
|
-
nullable: true;
|
|
26
|
-
missable: true;
|
|
27
|
-
fallbackValue?: T[number];
|
|
28
|
-
allowedValues: T;
|
|
29
|
-
}): T[number] | null | undefined;
|
|
30
|
-
export declare function asString<T extends readonly string[]>(value: QueryValue | undefined, options: {
|
|
31
|
-
nullable: true;
|
|
32
|
-
missable?: false;
|
|
33
|
-
fallbackValue?: T[number];
|
|
34
|
-
allowedValues: T;
|
|
35
|
-
}): T[number] | null;
|
|
36
|
-
export declare function asString<T extends readonly string[]>(value: QueryValue | undefined, options: {
|
|
37
|
-
nullable?: false;
|
|
38
|
-
missable: true;
|
|
39
|
-
fallbackValue?: T[number];
|
|
40
|
-
allowedValues: T;
|
|
41
|
-
}): T[number] | undefined;
|
|
42
|
-
export declare function asString<T extends readonly string[]>(value: QueryValue | undefined, options: {
|
|
43
|
-
nullable?: false;
|
|
44
|
-
missable?: false;
|
|
45
|
-
fallbackValue?: T[number];
|
|
46
|
-
allowedValues: T;
|
|
47
|
-
}): T[number];
|
|
48
|
-
export declare function asString(value: QueryValue | undefined, options: {
|
|
49
|
-
nullable: true;
|
|
50
|
-
missable: true;
|
|
51
|
-
fallbackValue?: string;
|
|
52
|
-
}): string | null | undefined;
|
|
53
|
-
export declare function asString(value: QueryValue | undefined, options: {
|
|
54
|
-
nullable: true;
|
|
55
|
-
missable?: false;
|
|
56
|
-
fallbackValue?: string;
|
|
57
|
-
}): string | null;
|
|
58
|
-
export declare function asString(value: QueryValue | undefined, options: {
|
|
59
|
-
nullable?: false;
|
|
60
|
-
missable: true;
|
|
61
|
-
fallbackValue?: string;
|
|
62
|
-
}): string | undefined;
|
|
63
|
-
export declare function asString(value: QueryValue | undefined, options: {
|
|
64
|
-
nullable?: false;
|
|
65
|
-
missable?: false;
|
|
66
|
-
fallbackValue?: string;
|
|
67
|
-
}): string;
|
|
68
|
-
export declare function asNumberArray(value: QueryValue | undefined): number[];
|
|
69
|
-
export declare function asNumberArray(value: QueryValue | undefined, options: {
|
|
70
|
-
nullable: true;
|
|
71
|
-
}): number[] | null;
|
|
72
|
-
export declare function asNumberArray(value: QueryValue | undefined, options: {
|
|
73
|
-
nullable?: false;
|
|
74
|
-
}): number[];
|
|
75
|
-
export declare function asArray<T>(value: QueryValue | undefined): T[];
|
|
76
|
-
export declare function asArray<T>(value: QueryValue | undefined, options: {
|
|
77
|
-
nullable: true;
|
|
78
|
-
missable: true;
|
|
79
|
-
transform?: (value: QueryValue) => T;
|
|
80
|
-
}): T[] | null | undefined;
|
|
81
|
-
export declare function asArray<T>(value: QueryValue | undefined, options: {
|
|
82
|
-
nullable: true;
|
|
83
|
-
missable?: false;
|
|
84
|
-
transform?: (value: QueryValue) => T;
|
|
85
|
-
}): T[] | null;
|
|
86
|
-
export declare function asArray<T>(value: QueryValue | undefined, options: {
|
|
87
|
-
nullable?: false;
|
|
88
|
-
missable: true;
|
|
89
|
-
transform?: (value: QueryValue) => T;
|
|
90
|
-
}): T[] | undefined;
|
|
91
|
-
export declare function asArray<T>(value: QueryValue | undefined, options: {
|
|
92
|
-
nullable?: false;
|
|
93
|
-
missable?: false;
|
|
94
|
-
transform?: (value: QueryValue) => T;
|
|
95
|
-
}): T[];
|
|
96
|
-
export declare function asBoolean(value: QueryValue | undefined): boolean;
|
|
97
|
-
export declare function asBoolean(value: QueryValue | undefined, options: {
|
|
98
|
-
nullable: true;
|
|
99
|
-
missable: true;
|
|
100
|
-
fallbackValue?: boolean;
|
|
101
|
-
}): boolean | null | undefined;
|
|
102
|
-
export declare function asBoolean(value: QueryValue | undefined, options: {
|
|
103
|
-
nullable: true;
|
|
104
|
-
missable?: false;
|
|
105
|
-
fallbackValue?: boolean;
|
|
106
|
-
}): boolean | null;
|
|
107
|
-
export declare function asBoolean(value: QueryValue | undefined, options: {
|
|
108
|
-
nullable?: false;
|
|
109
|
-
missable: true;
|
|
110
|
-
fallbackValue?: boolean;
|
|
111
|
-
}): boolean | undefined;
|
|
112
|
-
export declare function asBoolean(value: QueryValue | undefined, options: {
|
|
113
|
-
nullable?: false;
|
|
114
|
-
missable?: false;
|
|
115
|
-
fallbackValue?: boolean;
|
|
116
|
-
}): boolean;
|
|
117
|
-
export declare const transform: {
|
|
118
|
-
asString: typeof asString;
|
|
119
|
-
asNumber: typeof asNumber;
|
|
120
|
-
asArray: typeof asArray;
|
|
121
|
-
asNumberArray: typeof asNumberArray;
|
|
122
|
-
asBoolean: typeof asBoolean;
|
|
123
|
-
};
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { LocationQueryValue } from 'vue-router';
|
|
2
|
-
import { MaybeRefOrGetter, UnwrapNestedRefs, WatchHandle } from 'vue';
|
|
3
|
-
import { ContextStorageHandler, RegisterBaseOptions } from '../../handlers';
|
|
4
|
-
export type QueryValue = LocationQueryValue | LocationQueryValue[];
|
|
5
|
-
export type DeepTransformValuesToLocationQueryValue<T> = {
|
|
6
|
-
[K in keyof T]?: T[K] extends object ? T[K] extends Array<any> ? QueryValue : DeepTransformValuesToLocationQueryValue<T[K]> : QueryValue;
|
|
7
|
-
};
|
|
8
|
-
interface QueryHandlerSharedOptions {
|
|
9
|
-
/**
|
|
10
|
-
* Default: false
|
|
11
|
-
*
|
|
12
|
-
* If enabled - empty state will be preserved in query.
|
|
13
|
-
*
|
|
14
|
-
* Useful, when you have default values, and want to preserve empty state in query.
|
|
15
|
-
* @example
|
|
16
|
-
* ```
|
|
17
|
-
* Options: {preserveEmptyState: true, prefix: 'filters'}
|
|
18
|
-
*
|
|
19
|
-
* When filters are empty we will get this in query string:
|
|
20
|
-
*
|
|
21
|
-
* /list?filters
|
|
22
|
-
*
|
|
23
|
-
* After page reload state will be not restored to default
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```
|
|
28
|
-
* Options: {preserveEmptyState: false, prefix: 'filters'}
|
|
29
|
-
*
|
|
30
|
-
* When filters are empty we will get this in query string:
|
|
31
|
-
*
|
|
32
|
-
* /list
|
|
33
|
-
*
|
|
34
|
-
* After page reload state will be restored to default
|
|
35
|
-
* ```
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```
|
|
39
|
-
* Options: {preserveEmptyState: true}
|
|
40
|
-
*
|
|
41
|
-
* When filters are empty we will get this in query string:
|
|
42
|
-
*
|
|
43
|
-
* /list?_
|
|
44
|
-
*
|
|
45
|
-
* After page reload state will be not restored to default.
|
|
46
|
-
* Underscore (_) is default value for emptyPlaceholder option
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
preserveEmptyState?: boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Default: true
|
|
52
|
-
*
|
|
53
|
-
* If transform option is not passed, ref will be merged with query only by keys that exists in ref.
|
|
54
|
-
*/
|
|
55
|
-
mergeOnlyExistingKeysWithoutTransform?: boolean;
|
|
56
|
-
}
|
|
57
|
-
export interface QueryHandlerBaseOptions extends QueryHandlerSharedOptions {
|
|
58
|
-
/**
|
|
59
|
-
* Default: replace
|
|
60
|
-
*
|
|
61
|
-
* Vue-router navigate mode.
|
|
62
|
-
* Use push if you want to add new query to history.
|
|
63
|
-
* Use replace if you want to replace current query without adding to history.
|
|
64
|
-
*/
|
|
65
|
-
mode?: 'replace' | 'push';
|
|
66
|
-
/**
|
|
67
|
-
* Default: _
|
|
68
|
-
*
|
|
69
|
-
* Placeholder for empty state, used when preserveEmptyState is true and all ref values are empty.
|
|
70
|
-
*/
|
|
71
|
-
emptyPlaceholder?: string;
|
|
72
|
-
/**
|
|
73
|
-
* Default: false
|
|
74
|
-
*
|
|
75
|
-
* If enabled - unused keys will be preserved in query.
|
|
76
|
-
* Unused keys are keys, that are not exists in ref.
|
|
77
|
-
*/
|
|
78
|
-
preserveUnusedKeys?: boolean;
|
|
79
|
-
}
|
|
80
|
-
export interface RegisterQueryHandlerBaseOptions<T> extends QueryHandlerSharedOptions {
|
|
81
|
-
/**
|
|
82
|
-
* Prefix in query string.
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```
|
|
86
|
-
* filters, table-1[filters], table-2[filters]
|
|
87
|
-
* ```
|
|
88
|
-
*/
|
|
89
|
-
prefix?: string;
|
|
90
|
-
transform?: (deserialized: DeepTransformValuesToLocationQueryValue<UnwrapNestedRefs<T>>, initialData: T) => UnwrapNestedRefs<T>;
|
|
91
|
-
}
|
|
92
|
-
export interface RegisterQueryHandlerOptions<T> extends RegisterBaseOptions, RegisterQueryHandlerBaseOptions<T> {
|
|
93
|
-
}
|
|
94
|
-
export interface IContextStorageQueryHandler extends ContextStorageHandler {
|
|
95
|
-
register: <T extends Record<string, unknown>>(data: MaybeRefOrGetter<T>, options: RegisterQueryHandlerOptions<T>) => () => void;
|
|
96
|
-
}
|
|
97
|
-
export interface ContextStorageQueryRegisteredItem<T extends Record<string, unknown>> {
|
|
98
|
-
data: MaybeRefOrGetter<T>;
|
|
99
|
-
initialData: T;
|
|
100
|
-
options: RegisterQueryHandlerOptions<T>;
|
|
101
|
-
watchHandle: WatchHandle;
|
|
102
|
-
}
|
|
103
|
-
export {};
|