vitrify 0.8.0 → 0.9.0
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/bin/dev.js +8 -1
- package/dist/plugins/quasar.js +11 -2
- package/dist/types/plugins/quasar.d.ts +1 -0
- package/package.json +2 -1
- package/src/node/bin/dev.ts +9 -1
- package/src/node/plugins/quasar.ts +13 -2
package/dist/bin/dev.js
CHANGED
|
@@ -2,6 +2,13 @@ import { searchForWorkspaceRoot } from 'vite';
|
|
|
2
2
|
import { baseConfig } from '../index.js';
|
|
3
3
|
import fastify from 'fastify';
|
|
4
4
|
import { fastifySsrPlugin } from '../frameworks/vue/fastify-ssr-plugin.js';
|
|
5
|
+
import isPortReachable from 'is-port-reachable';
|
|
6
|
+
const getFirstOpenPort = async (portNumber) => {
|
|
7
|
+
if (!(await isPortReachable(portNumber, { host: 'localhost' }))) {
|
|
8
|
+
return portNumber;
|
|
9
|
+
}
|
|
10
|
+
return getFirstOpenPort(portNumber + 1);
|
|
11
|
+
};
|
|
5
12
|
export async function createVitrifyDevServer({ port = 3000, logLevel = 'info',
|
|
6
13
|
// mode = 'csr',
|
|
7
14
|
ssr, framework = 'vue', host, appDir, publicDir, base }) {
|
|
@@ -29,7 +36,7 @@ ssr, framework = 'vue', host, appDir, publicDir, base }) {
|
|
|
29
36
|
https: config.server?.https,
|
|
30
37
|
hmr: {
|
|
31
38
|
protocol: config.server?.https ? 'wss' : 'ws',
|
|
32
|
-
port: 24678
|
|
39
|
+
port: await getFirstOpenPort(24678)
|
|
33
40
|
},
|
|
34
41
|
port,
|
|
35
42
|
// middlewareMode: mode === 'ssr' ? 'ssr' : undefined,
|
package/dist/plugins/quasar.js
CHANGED
|
@@ -52,7 +52,7 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
52
52
|
enforce: 'pre',
|
|
53
53
|
config: async (config, env) => {
|
|
54
54
|
const { vitrify: { urls } = {}, quasar } = config;
|
|
55
|
-
const globalCss = quasar?.extras
|
|
55
|
+
const globalCss = quasar?.extras?.map((extra) => `@quasar/extras/${extra}/${extra}.css`);
|
|
56
56
|
const localPackages = ['@quasar/extras', 'quasar'];
|
|
57
57
|
// const localPackages: string[] = []
|
|
58
58
|
await (async () => {
|
|
@@ -77,10 +77,13 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
77
77
|
const directives = await import('virtual:quasar-directives');
|
|
78
78
|
// @ts-ignore
|
|
79
79
|
const { default: lang } = await import('virtual:quasar-lang');
|
|
80
|
+
// @ts-ignore
|
|
81
|
+
const { default: iconSet } = await import('virtual:quasar-iconSet');
|
|
80
82
|
app.use(staticImports?.Quasar, {
|
|
81
83
|
plugins: quasarPlugins,
|
|
82
84
|
directives,
|
|
83
|
-
lang
|
|
85
|
+
lang,
|
|
86
|
+
iconSet
|
|
84
87
|
}, ssrContext);
|
|
85
88
|
}
|
|
86
89
|
];
|
|
@@ -163,6 +166,8 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
163
166
|
return 'virtual:quasar-directives';
|
|
164
167
|
case 'virtual:quasar-lang':
|
|
165
168
|
return 'virtual:quasar-lang';
|
|
169
|
+
case 'virtual:quasar-iconSet':
|
|
170
|
+
return 'virtual:quasar-iconSet';
|
|
166
171
|
case 'virtual:quasar':
|
|
167
172
|
return { id: 'virtual:quasar', moduleSideEffects: false };
|
|
168
173
|
default:
|
|
@@ -179,6 +184,10 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
|
|
|
179
184
|
else if (id === 'virtual:quasar-lang') {
|
|
180
185
|
return `import lang from 'quasar/lang/${quasarConf?.framework?.lang || 'en-US'}';
|
|
181
186
|
export default lang`;
|
|
187
|
+
}
|
|
188
|
+
else if (id === 'virtual:quasar-iconSet') {
|
|
189
|
+
return `import iconSet from 'quasar/icon-set/${quasarConf?.framework.iconSet || 'material-icons'}';
|
|
190
|
+
export default iconSet`;
|
|
182
191
|
}
|
|
183
192
|
else if (id === 'virtual:quasar') {
|
|
184
193
|
return `export * from 'quasar/src/plugins.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vitrify",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Stefan van Herwijnen",
|
|
6
6
|
"description": "Pre-configured Vite CLI for your framework",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"fastify": "^4.3.0",
|
|
71
71
|
"glob": "^8.0.3",
|
|
72
72
|
"happy-dom": "^6.0.4",
|
|
73
|
+
"is-port-reachable": "^4.0.0",
|
|
73
74
|
"magic-string": "^0.26.2",
|
|
74
75
|
"merge-deep": "^3.0.3",
|
|
75
76
|
"readline": "^1.3.0",
|
package/src/node/bin/dev.ts
CHANGED
|
@@ -6,6 +6,14 @@ import fastify from 'fastify'
|
|
|
6
6
|
import type { FastifyServerOptions } from 'fastify'
|
|
7
7
|
import { fastifySsrPlugin } from '../frameworks/vue/fastify-ssr-plugin.js'
|
|
8
8
|
import type { OnRenderedHook, VitrifyConfig } from '../vitrify-config.js'
|
|
9
|
+
import isPortReachable from 'is-port-reachable'
|
|
10
|
+
|
|
11
|
+
const getFirstOpenPort = async (portNumber: number): Promise<number> => {
|
|
12
|
+
if (!(await isPortReachable(portNumber, { host: 'localhost' }))) {
|
|
13
|
+
return portNumber
|
|
14
|
+
}
|
|
15
|
+
return getFirstOpenPort(portNumber + 1)
|
|
16
|
+
}
|
|
9
17
|
|
|
10
18
|
export async function createVitrifyDevServer({
|
|
11
19
|
port = 3000,
|
|
@@ -55,7 +63,7 @@ export async function createVitrifyDevServer({
|
|
|
55
63
|
https: config.server?.https,
|
|
56
64
|
hmr: {
|
|
57
65
|
protocol: config.server?.https ? 'wss' : 'ws',
|
|
58
|
-
port: 24678
|
|
66
|
+
port: await getFirstOpenPort(24678)
|
|
59
67
|
},
|
|
60
68
|
port,
|
|
61
69
|
// middlewareMode: mode === 'ssr' ? 'ssr' : undefined,
|
|
@@ -17,6 +17,7 @@ export interface QuasarConf {
|
|
|
17
17
|
directives?: string[]
|
|
18
18
|
plugins?: string[]
|
|
19
19
|
lang?: string
|
|
20
|
+
iconSet?: string
|
|
20
21
|
}
|
|
21
22
|
animations: string[]
|
|
22
23
|
extras: string[]
|
|
@@ -109,7 +110,7 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
109
110
|
config: async (config: VitrifyConfig, env): Promise<VitrifyConfig> => {
|
|
110
111
|
const { vitrify: { urls } = {}, quasar } = config
|
|
111
112
|
|
|
112
|
-
const globalCss = quasar?.extras
|
|
113
|
+
const globalCss = quasar?.extras?.map(
|
|
113
114
|
(extra) => `@quasar/extras/${extra}/${extra}.css`
|
|
114
115
|
)
|
|
115
116
|
|
|
@@ -143,13 +144,16 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
143
144
|
const directives = await import('virtual:quasar-directives')
|
|
144
145
|
// @ts-ignore
|
|
145
146
|
const { default: lang } = await import('virtual:quasar-lang')
|
|
147
|
+
// @ts-ignore
|
|
148
|
+
const { default: iconSet } = await import('virtual:quasar-iconSet')
|
|
146
149
|
|
|
147
150
|
app.use(
|
|
148
151
|
staticImports?.Quasar,
|
|
149
152
|
{
|
|
150
153
|
plugins: quasarPlugins,
|
|
151
154
|
directives,
|
|
152
|
-
lang
|
|
155
|
+
lang,
|
|
156
|
+
iconSet
|
|
153
157
|
},
|
|
154
158
|
ssrContext
|
|
155
159
|
)
|
|
@@ -239,6 +243,8 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
239
243
|
return 'virtual:quasar-directives'
|
|
240
244
|
case 'virtual:quasar-lang':
|
|
241
245
|
return 'virtual:quasar-lang'
|
|
246
|
+
case 'virtual:quasar-iconSet':
|
|
247
|
+
return 'virtual:quasar-iconSet'
|
|
242
248
|
case 'virtual:quasar':
|
|
243
249
|
return { id: 'virtual:quasar', moduleSideEffects: false }
|
|
244
250
|
default:
|
|
@@ -255,6 +261,11 @@ export const QuasarPlugin: VitrifyPlugin = async ({
|
|
|
255
261
|
quasarConf?.framework?.lang || 'en-US'
|
|
256
262
|
}';
|
|
257
263
|
export default lang`
|
|
264
|
+
} else if (id === 'virtual:quasar-iconSet') {
|
|
265
|
+
return `import iconSet from 'quasar/icon-set/${
|
|
266
|
+
quasarConf?.framework.iconSet || 'material-icons'
|
|
267
|
+
}';
|
|
268
|
+
export default iconSet`
|
|
258
269
|
} else if (id === 'virtual:quasar') {
|
|
259
270
|
return `export * from 'quasar/src/plugins.js';
|
|
260
271
|
export * from 'quasar/src/components.js';
|