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 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,
@@ -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.map((extra) => `@quasar/extras/${extra}/${extra}.css`);
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';
@@ -8,6 +8,7 @@ export interface QuasarConf {
8
8
  directives?: string[];
9
9
  plugins?: string[];
10
10
  lang?: string;
11
+ iconSet?: string;
11
12
  };
12
13
  animations: string[];
13
14
  extras: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vitrify",
3
- "version": "0.8.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",
@@ -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.map(
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';