Skip to content

Commit 7d3300c

Browse files
committed
feat(vue-playground/vue-xrender/class-mock): supports vuepress 2.0.0-beta.45, merge lib dts files
1 parent 67d0a03 commit 7d3300c

File tree

34 files changed

+903
-659
lines changed

34 files changed

+903
-659
lines changed

packages/class-mock/scripts/build.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,9 @@ import {minifyConfig, unMinifyConfig, packagePath} from '../vite.config'
44
buildUtils.build({
55
minifyConfig,
66
unMinifyConfig,
7-
packagePath
7+
packagePath,
8+
dtsOptions: {
9+
// merge all .d.ts files
10+
rollupTypes: true
11+
}
812
})

packages/class-mock/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,5 @@ export {createMock} from './utils/create-mock'
4848
export type {CreateMockOptions} from './utils/create-mock'
4949
export {setLocale, seed} from './utils/common'
5050
export * from './utils/types-helper'
51+
52+
export default {}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
import {defineClientConfig} from '@vuepress/client'
2+
import {configLoadSandbox, SHOW_DARK_MODE_INJECT_KEY} from 'vuepress-plugin-sandbox/client'
3+
import {useMutationObserver} from '@vueuse/core'
4+
import {provide, ref} from 'vue'
5+
import vueXrenderTypes from 'vue-xrender/dist/index.d.ts?raw'
6+
import classMockTypes from 'class-mock/dist/index.d.ts?raw'
7+
8+
export default defineClientConfig({
9+
async enhance() {
10+
if (!__VUEPRESS_SSR__) {
11+
configLoadSandbox(preOptions => {
12+
return {
13+
...preOptions,
14+
lifeCycle: {
15+
// TODO: FIX types declaration
16+
loadTsLibs(_, defaultTsLibs) {
17+
const tsLibs = [
18+
{content: `declare module 'vue-xrender' { ${vueXrenderTypes} }`},
19+
{content: `declare module 'class-mock' { ${classMockTypes} }`},
20+
{content: `declare module '@faker-js/*'`}
21+
]
22+
return [...defaultTsLibs, ...tsLibs]
23+
},
24+
loadWorkers: async () => {
25+
await Promise.all([
26+
// load workers
27+
(async () => {
28+
const [
29+
{default: EditorWorker},
30+
{default: JsonWorker},
31+
{default: HtmlWorker},
32+
{default: TsWorker},
33+
{default: CssWorker}
34+
] = await Promise.all([
35+
import('monaco-editor/esm/vs/editor/editor.worker?worker'),
36+
import('monaco-editor/esm/vs/language/json/json.worker?worker'),
37+
import('monaco-editor/esm/vs/language/html/html.worker?worker'),
38+
import('monaco-editor/esm/vs/language/typescript/ts.worker?worker'),
39+
import('monaco-editor/esm/vs/language/css/css.worker?worker')
40+
])
41+
42+
self.MonacoEnvironment = {
43+
getWorker: function (workerId, label) {
44+
switch (label) {
45+
case 'json':
46+
return new JsonWorker()
47+
case 'css':
48+
case 'scss':
49+
case 'less':
50+
return new CssWorker()
51+
case 'html':
52+
case 'handlebars':
53+
case 'razor':
54+
return new HtmlWorker()
55+
case 'typescript':
56+
case 'javascript':
57+
return new TsWorker()
58+
default:
59+
return new EditorWorker()
60+
}
61+
}
62+
}
63+
})()
64+
])
65+
}
66+
}
67+
}
68+
}, self)
69+
}
70+
},
71+
setup() {
72+
if (!__VUEPRESS_SSR__) {
73+
const html = document.documentElement
74+
const sandboxDark = ref(false)
75+
76+
// watch vuepress dark mode
77+
useMutationObserver(
78+
html,
79+
mutations => {
80+
if (mutations.every(m => m.attributeName !== 'class')) return
81+
const isVuepressDark = Boolean(html.classList.contains('dark'))
82+
sandboxDark.value = isVuepressDark
83+
},
84+
{
85+
attributes: true
86+
}
87+
)
88+
89+
// set all sandbox dark mode
90+
provide(SHOW_DARK_MODE_INJECT_KEY, sandboxDark)
91+
}
92+
}
93+
})

packages/doc-site/.vuepress/clientAppEnhance.ts

Lines changed: 0 additions & 67 deletions
This file was deleted.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * as navbar from './navbar'
2-
export * as sidebar from './sidebar'
1+
export * as navbar from './navbar'
2+
export * as sidebar from './sidebar'
Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
import type {NavbarConfig} from '@vuepress/theme-default'
2-
import {version} from '../../utils/common'
3-
4-
export const en: NavbarConfig = [
5-
{
6-
text: 'Guide',
7-
link: '/guide/'
8-
},
9-
{
10-
text: 'Libs',
11-
children: [
12-
{
13-
text: 'vue-xrender',
14-
children: ['/libs/vue-xrender/README.md']
15-
},
16-
{
17-
text: 'class-mock',
18-
children: ['/libs/class-mock/README.md']
19-
}
20-
]
21-
},
22-
{
23-
text: `v${version}`,
24-
children: [
25-
{
26-
text: 'Releases',
27-
link: 'https://github.com/2214962083/vue-superman/releases'
28-
}
29-
]
30-
}
31-
]
1+
import type {NavbarConfig} from '@vuepress/theme-default'
2+
import {version} from '../../utils/common'
3+
4+
export const en: NavbarConfig = [
5+
{
6+
text: 'Guide',
7+
link: '/guide/'
8+
},
9+
{
10+
text: 'Libs',
11+
children: [
12+
{
13+
text: 'vue-xrender',
14+
children: ['/libs/vue-xrender/README.md']
15+
},
16+
{
17+
text: 'class-mock',
18+
children: ['/libs/class-mock/README.md']
19+
}
20+
]
21+
},
22+
{
23+
text: `v${version}`,
24+
children: [
25+
{
26+
text: 'Releases',
27+
link: 'https://github.com/2214962083/vue-superman/releases'
28+
}
29+
]
30+
}
31+
]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from './en'
2-
export * from './zh'
1+
export * from './en'
2+
export * from './zh'
Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
import type {NavbarConfig} from '@vuepress/theme-default'
2-
import {version} from '../../utils/common'
3-
4-
export const zh: NavbarConfig = [
5-
{
6-
text: '指南',
7-
link: '/zh/guide/'
8-
},
9-
{
10-
text: '库列表',
11-
children: [
12-
{
13-
text: 'vue-xrender',
14-
link: '/zh/libs/vue-xrender/README.md'
15-
},
16-
{
17-
text: 'class-mock',
18-
link: '/zh/libs/class-mock/README.md'
19-
}
20-
]
21-
},
22-
{
23-
text: `v${version}`,
24-
children: [
25-
{
26-
text: '更新日志',
27-
link: 'https://github.com/2214962083/vue-superman/releases'
28-
}
29-
]
30-
}
31-
]
1+
import type {NavbarConfig} from '@vuepress/theme-default'
2+
import {version} from '../../utils/common'
3+
4+
export const zh: NavbarConfig = [
5+
{
6+
text: '指南',
7+
link: '/zh/guide/'
8+
},
9+
{
10+
text: '库列表',
11+
children: [
12+
{
13+
text: 'vue-xrender',
14+
link: '/zh/libs/vue-xrender/README.md'
15+
},
16+
{
17+
text: 'class-mock',
18+
link: '/zh/libs/class-mock/README.md'
19+
}
20+
]
21+
},
22+
{
23+
text: `v${version}`,
24+
children: [
25+
{
26+
text: '更新日志',
27+
link: 'https://github.com/2214962083/vue-superman/releases'
28+
}
29+
]
30+
}
31+
]
Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
import type {SidebarConfig} from '@vuepress/theme-default'
2-
3-
export const en: SidebarConfig = {
4-
'/guide/': [
5-
{
6-
text: 'Guide',
7-
children: ['/guide/README.md', '/guide/getting-started.md']
8-
}
9-
],
10-
'/libs/vue-xrender/': [
11-
{
12-
text: 'vue-xrender',
13-
children: ['/libs/vue-xrender/README.md']
14-
}
15-
],
16-
'/libs/class-mock/': [
17-
{
18-
text: 'class-mock',
19-
children: ['/libs/class-mock/README.md']
20-
}
21-
]
22-
}
1+
import type {SidebarConfig} from '@vuepress/theme-default'
2+
3+
export const en: SidebarConfig = {
4+
'/guide/': [
5+
{
6+
text: 'Guide',
7+
children: ['/guide/README.md', '/guide/getting-started.md']
8+
}
9+
],
10+
'/libs/vue-xrender/': [
11+
{
12+
text: 'vue-xrender',
13+
children: ['/libs/vue-xrender/README.md']
14+
}
15+
],
16+
'/libs/class-mock/': [
17+
{
18+
text: 'class-mock',
19+
children: ['/libs/class-mock/README.md']
20+
}
21+
]
22+
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from './en'
2-
export * from './zh'
1+
export * from './en'
2+
export * from './zh'

0 commit comments

Comments
 (0)