import { RoutiderRouteRecord } from '../route/route' import { LocationQuery } from 'vue-router' import { IfNotString } from '../type' export const createQueries = ( ...queries: [T, ...T[]] ): Array> => { if (__DEV__) { const qs = new Set() for (const q of queries) { if (qs.has(q)) { console.warn( `vue-routider: duplicated query key was passed to createQueries. (${q})` ) } qs.add(q) } } return (queries as unknown) as Array> } export type ExtractQueries< Route extends RoutiderRouteRecord > = Route extends RoutiderRouteRecord ? IfNotString> : never type LocationQueryValue = LocationQuery[keyof LocationQuery] export type QueryMap = Record< Queries, LocationQueryValue >