UNPKG

@oarepo/vue-query-synchronizer

Version:

Browser vue-router query synchronization library

50 lines (49 loc) 1.98 kB
import { LocationQuery, Router } from 'vue-router'; import { DataType, GenericParsedQuery, NavigationOperation, ParsedQuery, QueryParameterDefinitions, TypedParsedQuery } from './types'; export * from './datatypes'; export * from './types'; declare const proxiedQuery: ParsedQuery; /** * The main composition API entrypoint. Returns a reactive Query object with parsed values * * @typeParam T The type of the returned query object. An interface defining query parameters and their types * might be passed. If not a generic (untyped) interface is used. */ export declare function useQuery<T = GenericParsedQuery>(): TypedParsedQuery<T>; /** * @internal */ export declare function useRawQuery(): { query: { [x: string]: any; define: (key: string, datatype: DataType<any>, defaultValue: any) => void; addValue: (key: string, value: any, datatype?: DataType<any> | undefined) => void; removeValue: (key: string, value: any, datatype?: DataType<any> | undefined) => void; __definition: QueryParameterDefinitions; }; rawQuery: LocationQuery; enabled: boolean; serializedId: number; }; export declare function watchQuery(fn: (...x: any[]) => any): void; export declare function queryWatchSource(): number; declare const QuerySynchronizer: { install(app: any, { router, datatypes, debug, navigationOperation }: { router: Router; datatypes?: DataType<any>[] | undefined; debug?: boolean | undefined; navigationOperation?: NavigationOperation | undefined; }): void; }; /** * Vue plugin. Usage: * ``` * createApp(App).use(router).use(QuerySynchronizer, { router, debug: true }) * ``` * * @param router application's router * @param datatypes an optional array of custom (user-defined) datatypes * @param debug if set to true, print library's debug messages */ export default QuerySynchronizer; export { proxiedQuery as query };