Skip to content

Commit db11761

Browse files
authored
Merge pull request #8 from iamsomraj/7-add-documentation
Add type aliases and enhance documentation for vue-qs
2 parents ab438db + 9a03a9c commit db11761

60 files changed

Lines changed: 1873 additions & 12 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,9 @@ dist
44
.DS_Store
55
coverage
66
*.tgz
7+
docs/.vitepress/dist
8+
docs/.vitepress/cache
9+
docs/api
10+
11+
# Bun artifacts
12+
bun.lockb

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
11
# vue-qs
22

3+
<p align="center">
4+
<img src="./docs/public/banner.svg" alt="vue-qs banner" width="800" />
5+
</p>
6+
37
[![CI](https://github.com/iamsomraj/vue-qs/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/iamsomraj/vue-qs/actions/workflows/ci.yml)
8+
[![npm version](https://img.shields.io/npm/v/vue-qs.svg)](https://www.npmjs.com/package/vue-qs)
9+
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
10+
11+
Docs: https://iamsomraj.github.io/vue-qs/ · 中文文档: https://iamsomraj.github.io/vue-qs/zh/
412

513
Type-safe, reactive URL query params for Vue 3 — like nuqs, but for Vue.
614

715
## Install
816

917
```sh
1018
npm i vue-qs
19+
# or
20+
pnpm add vue-qs
21+
# or
22+
bun add vue-qs
1123
```
1224

1325
Peer deps: `vue@^3.3`. `vue-router@^4.2` is optional.
@@ -127,3 +139,11 @@ createApp(App)
127139
- createVueQs({ adapter }) / provideQueryAdapter(adapter)
128140

129141
That’s it — keep your state in the URL, with types and great DX.
142+
143+
## Contributing
144+
145+
- Dev: bun install, then bun run dev for build watch, bun run test for tests.
146+
- Lint/format: bun run lint, bun run format.
147+
- Docs: bun run docs:dev.
148+
149+
Issues and PRs are welcome. See CONTRIBUTING.md.

bun.lock

Lines changed: 303 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/.vitepress/config.ts

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import { defineConfig } from 'vitepress';
2+
3+
// https://vitepress.dev/reference/site-config
4+
const base = process.env.DOCS_BASE ?? '/';
5+
6+
export default defineConfig({
7+
base,
8+
lang: 'en-US',
9+
title: 'vue-qs',
10+
description: 'Type-safe URL query params state for Vue 3',
11+
titleTemplate: 'vue-qs',
12+
lastUpdated: true,
13+
cleanUrls: true,
14+
head: [
15+
['link', { rel: 'icon', type: 'image/svg+xml', href: `${base}favicon.svg` }],
16+
['meta', { property: 'og:title', content: 'vue-qs' }],
17+
[
18+
'meta',
19+
{ property: 'og:description', content: 'Type-safe, reactive URL query params for Vue 3' },
20+
],
21+
['meta', { property: 'og:image', content: `${base}og-image.svg` }],
22+
['meta', { name: 'twitter:card', content: 'summary_large_image' }],
23+
],
24+
locales: {
25+
root: {
26+
label: 'English',
27+
lang: 'en-US',
28+
link: '/',
29+
},
30+
zh: {
31+
label: '简体中文',
32+
lang: 'zh-CN',
33+
link: '/zh/',
34+
},
35+
},
36+
themeConfig: {
37+
logo: { src: '/logo.svg', alt: 'vue-qs' },
38+
nav: [
39+
{ text: 'Guide', link: '/guide/getting-started' },
40+
{ text: 'API', link: '/api/' },
41+
{ text: 'GitHub', link: 'https://github.com/iamsomraj/vue-qs' },
42+
],
43+
sidebar: {
44+
'/guide/': [
45+
{
46+
text: 'Guide',
47+
items: [
48+
{ text: 'Getting Started', link: '/guide/getting-started' },
49+
{ text: 'Examples', link: '/guide/examples' },
50+
{ text: 'Vue Router', link: '/guide/vue-router' },
51+
{ text: 'Two-way Sync', link: '/guide/two-way-sync' },
52+
{ text: 'Serializers', link: '/guide/serializers' },
53+
],
54+
},
55+
],
56+
'/api/': [
57+
{
58+
text: 'API',
59+
items: [{ text: 'Reference', link: '/api/' }],
60+
},
61+
],
62+
'/zh/guide/': [
63+
{
64+
text: '指南',
65+
items: [
66+
{ text: '快速开始', link: '/zh/guide/getting-started' },
67+
{ text: '示例', link: '/zh/guide/examples' },
68+
{ text: 'Vue Router', link: '/zh/guide/vue-router' },
69+
{ text: '双向同步', link: '/zh/guide/two-way-sync' },
70+
],
71+
},
72+
],
73+
},
74+
socialLinks: [{ icon: 'github', link: 'https://github.com/iamsomraj/vue-qs' }],
75+
editLink: {
76+
pattern: 'https://github.com/iamsomraj/vue-qs/edit/main/docs/:path',
77+
text: 'Edit this page on GitHub',
78+
},
79+
footer: {
80+
message: 'Released under the MIT License.',
81+
copyright: `Copyright © 2023-${new Date().getFullYear()} Somraj Mukherjee`,
82+
},
83+
},
84+
});

docs/.vitepress/theme/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import DefaultTheme from 'vitepress/theme';
2+
import './style.css';
3+
4+
export default {
5+
...DefaultTheme,
6+
};

docs/.vitepress/theme/style.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
:root {
2+
--vp-c-brand-1: #3fb27f;
3+
--vp-c-brand-2: #2b9b6b;
4+
}

docs/api/README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
**vue-qs v0.1.7**
2+
3+
***
4+
5+
# vue-qs v0.1.7
6+
7+
## Namespaces
8+
9+
- [serializers](vue-qs/namespaces/serializers/README.md)
10+
11+
## Type Aliases
12+
13+
- [QuerySync](type-aliases/QuerySync.md)
14+
- [Parser](type-aliases/Parser.md)
15+
- [Serializer](type-aliases/Serializer.md)
16+
- [QueryCodec](type-aliases/QueryCodec.md)
17+
- [ParamOption](type-aliases/ParamOption.md)
18+
- [ParamSchema](type-aliases/ParamSchema.md)
19+
- [UseQueryRefOptions](type-aliases/UseQueryRefOptions.md)
20+
- [UseQueryRefReturn](type-aliases/UseQueryRefReturn.md)
21+
- [UseQueryReactiveReturn](type-aliases/UseQueryReactiveReturn.md)
22+
- [UseQueryReactiveOptions](type-aliases/UseQueryReactiveOptions.md)
23+
- [QueryAdapter](type-aliases/QueryAdapter.md)
24+
- [RuntimeEnv](type-aliases/RuntimeEnv.md)
25+
26+
## Variables
27+
28+
- [AdapterSymbol](variables/AdapterSymbol.md)
29+
30+
## Functions
31+
32+
- [provideQueryAdapter](functions/provideQueryAdapter.md)
33+
- [useQueryAdapter](functions/useQueryAdapter.md)
34+
- [createVueQs](functions/createVueQs.md)
35+
- [createQuerySync](functions/createQuerySync.md)
36+
- [createVueRouterQueryAdapter](functions/createVueRouterQueryAdapter.md)
37+
- [useQueryReactive](functions/useQueryReactive.md)
38+
- [useQueryRef](functions/useQueryRef.md)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[**vue-qs v0.1.7**](../README.md)
2+
3+
***
4+
5+
[vue-qs](../README.md) / createQuerySync
6+
7+
# Function: createQuerySync()
8+
9+
> **createQuerySync**(): [`QuerySync`](../type-aliases/QuerySync.md)
10+
11+
Defined in: [querySync.ts:46](https://github.com/iamsomraj/vue-qs/blob/3914abe3b71638946c178175ac5cb09af4684d1b/src/querySync.ts#L46)
12+
13+
Create a default query adapter using the History API.
14+
SSR-safe: returns an in-memory cache on the server.
15+
16+
## Returns
17+
18+
[`QuerySync`](../type-aliases/QuerySync.md)

docs/api/functions/createVueQs.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
[**vue-qs v0.1.7**](../README.md)
2+
3+
***
4+
5+
[vue-qs](../README.md) / createVueQs
6+
7+
# Function: createVueQs()
8+
9+
> **createVueQs**(`options`): `object`
10+
11+
Defined in: [adapterContext.ts:19](https://github.com/iamsomraj/vue-qs/blob/3914abe3b71638946c178175ac5cb09af4684d1b/src/adapterContext.ts#L19)
12+
13+
Create a Vue plugin that provides the given [QueryAdapter](../type-aliases/QueryAdapter.md).
14+
15+
## Parameters
16+
17+
### options
18+
19+
#### adapter
20+
21+
[`QueryAdapter`](../type-aliases/QueryAdapter.md)
22+
23+
## Returns
24+
25+
`object`
26+
27+
### install()
28+
29+
> **install**(`app`): `void`
30+
31+
#### Parameters
32+
33+
##### app
34+
35+
`App`
36+
37+
#### Returns
38+
39+
`void`
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[**vue-qs v0.1.7**](../README.md)
2+
3+
***
4+
5+
[vue-qs](../README.md) / createVueRouterQueryAdapter
6+
7+
# Function: createVueRouterQueryAdapter()
8+
9+
> **createVueRouterQueryAdapter**(`router`): [`QueryAdapter`](../type-aliases/QueryAdapter.md)
10+
11+
Defined in: [routerAdapter.ts:5](https://github.com/iamsomraj/vue-qs/blob/3914abe3b71638946c178175ac5cb09af4684d1b/src/routerAdapter.ts#L5)
12+
13+
Create an adapter backed by a Vue Router instance.
14+
15+
## Parameters
16+
17+
### router
18+
19+
`Router`
20+
21+
## Returns
22+
23+
[`QueryAdapter`](../type-aliases/QueryAdapter.md)

0 commit comments

Comments
 (0)