@monkeyplus/flow 5.0.0-beta.1 → 5.0.0-beta.11

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.
@@ -10,12 +10,12 @@ export default eventHandler(async (event) => {
10
10
  const chunks = { head: [], body: [] };
11
11
  const generate = {};
12
12
  const { page, locale, params, view } = flow.router.byUrl.lookup(url) || {};
13
+ if (!page)
14
+ return;
13
15
  await flow.callHook("page:scripts", scripts);
14
16
  if (view.bundle)
15
17
  await flow.callHook("page:chunks", view.bundle, chunks);
16
18
  const templateContext = {};
17
- if (!page)
18
- return;
19
19
  const dynamyc = params?._;
20
20
  const contextPage = {};
21
21
  const utils = Object.assign({ getLocale: () => locale }, flow.app.utils);
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createHooks } from 'hookable';
2
2
  import { dirname, resolve, normalize, join, isAbsolute, relative, extname } from 'pathe';
3
- import { defineFlowModule, addPlugin, defineNuxtModule, logger, addTemplate, addPluginTemplate, addVitePlugin, useNuxt, resolveAlias, resolveFiles, addDevServerHandler, nuxtCtx, installModule, loadFlowConfig, templateUtils, normalizeTemplate, compileTemplate, normalizePlugin, resolveFilesFlow, isIgnoredFlow } from '@monkeyplus/flow-kit';
3
+ import { defineFlowModule, addPlugin, defineNuxtModule, logger, addTemplate, addPluginTemplate, addVitePlugin, useNuxt, resolveAlias, resolveFilesFlow, nuxtCtx, installModule, loadFlowConfig, templateUtils, normalizeTemplate, compileTemplate, normalizePlugin, isIgnoredFlow } from '@monkeyplus/flow-kit';
4
4
  import { fileURLToPath, pathToFileURL } from 'node:url';
5
5
  import { defineUnimportPreset, createUnimport, toImports, scanDirExports } from 'unimport';
6
6
  import { createUnplugin } from 'unplugin';
@@ -27,7 +27,7 @@ import { isExternal as isExternal$1, ExternalsDefaults } from 'externality';
27
27
  import { createHash } from 'node:crypto';
28
28
  import MagicString from 'magic-string';
29
29
 
30
- const version = "5.0.0-beta.1";
30
+ const version = "5.0.0-beta.11";
31
31
 
32
32
  let _distDir = dirname(fileURLToPath(import.meta.url));
33
33
  if (_distDir.endsWith("chunks"))
@@ -225,7 +225,7 @@ async function resolvePagesRoutes() {
225
225
  const nuxt = useNuxt();
226
226
  const pagesDirs = [...new Set(nuxt.options._layers.map((layer) => resolve(layer.config.srcDir, layer.config.dir?.pages || "pages")))];
227
227
  const allRoutes = (await Promise.all(pagesDirs.map(async (dir) => {
228
- const files = await resolveFiles(dir, `**/*{${nuxt.options.extensions.join(",")}}`);
228
+ const files = await resolveFilesFlow(dir, `**/*{${nuxt.options.extensions.join(",")}}`);
229
229
  files.sort();
230
230
  return files.map((file) => {
231
231
  const segments = relative(dir, file).replace(new RegExp(`${escapeRE(extname(file))}$`), "").split("/").join("_");
@@ -306,11 +306,15 @@ const createClient = async (flow) => {
306
306
  manifest: true
307
307
  },
308
308
  server: {
309
+ watch: {
310
+ ignored: ["**/.env/**", "**/.env*"]
311
+ },
309
312
  middlewareMode: "ssr"
310
313
  }
311
314
  });
312
315
  const _doReload = () => {
313
- vite.ws.send({ type: "full-reload" });
316
+ if (vite)
317
+ vite?.ws?.send({ type: "full-reload" });
314
318
  };
315
319
  const doReload = debounce(_doReload, 50);
316
320
  flow.hook("bundler:change", () => {
@@ -344,11 +348,14 @@ const viteModule = defineFlowModule({
344
348
  async setup(_options, flow) {
345
349
  const runtimeDir = resolve(distDir, "vite-client/runtime");
346
350
  flow.options.alias["#viteManifest"] = resolve(flow.options.buildDir, "viteManifest.mjs");
351
+ let vite;
347
352
  if (flow.options.dev) {
348
- const _vite = await createClient(flow);
349
- addDevServerHandler({
350
- handler: _vite.middlewares,
351
- route: _options.route
353
+ flow.hook("nitro:init", async (nitro) => {
354
+ vite = await createClient(flow);
355
+ nitro.options.devHandlers.push({
356
+ handler: vite.middlewares,
357
+ route: _options.route
358
+ });
352
359
  });
353
360
  addTemplate({
354
361
  filename: "viteManifest.mjs",
@@ -848,7 +855,6 @@ function isExternal(opts, id) {
848
855
  ...ssrConfig.noExternal
849
856
  ],
850
857
  external: [
851
- ...ssrConfig.external,
852
858
  /node_modules/
853
859
  ],
854
860
  resolve: {
@@ -1067,6 +1073,7 @@ const buildServer = async (ctx) => {
1067
1073
  "/__vue-jsx",
1068
1074
  "#app",
1069
1075
  /(nuxt|nuxt3)\/(dist|src|app)/,
1076
+ /@monkeyplus\/flow\/(dist|src|app)/,
1070
1077
  /@nuxt\/nitro\/(dist|src)/
1071
1078
  ]
1072
1079
  },
@@ -1248,6 +1255,7 @@ async function bundleVite(flow) {
1248
1255
  nuxt: flow,
1249
1256
  flow,
1250
1257
  config: vite.mergeConfig({
1258
+ mode: flow.options.dev ? "development" : void 0,
1251
1259
  resolve: {
1252
1260
  alias: {
1253
1261
  ...flow.options.alias,
@@ -1294,6 +1302,8 @@ async function bundleVite(flow) {
1294
1302
  }
1295
1303
  }, flow.options.vite)
1296
1304
  };
1305
+ if (flow.options.dev)
1306
+ ctx.config.mode = process.env.NODE_ENV || "development";
1297
1307
  await flow.callHook("vite:extend", ctx);
1298
1308
  flow.hook("vite:serverCreated", (server) => {
1299
1309
  ctx.nuxt.hook("app:templatesGenerated", () => {
@@ -1334,6 +1344,7 @@ function watch(flow) {
1334
1344
  cwd: flow.options.srcDir,
1335
1345
  ignoreInitial: true,
1336
1346
  ignored: [
1347
+ isIgnoredFlow,
1337
1348
  ".flow",
1338
1349
  "node_modules"
1339
1350
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monkeyplus/flow",
3
- "version": "5.0.0-beta.1",
3
+ "version": "5.0.0-beta.11",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "exports": {
@@ -14,10 +14,9 @@
14
14
  "flow": "./bin/flow.mjs"
15
15
  },
16
16
  "dependencies": {
17
- "@monkeyplus/flow-cli": "5.0.0-beta.1",
18
- "@monkeyplus/flow-kit": "5.0.0-beta.1",
19
- "@monkeyplus/flow-schema": "5.0.0-beta.1",
20
- "@nuxt/vite-builder": "3.0.0-rc.1",
17
+ "@monkeyplus/flow-cli": "5.0.0-beta.11",
18
+ "@monkeyplus/flow-kit": "5.0.0-beta.11",
19
+ "@monkeyplus/flow-schema": "5.0.0-beta.11",
21
20
  "@rollup/plugin-replace": "^4.0.0",
22
21
  "@vueuse/head": "^0.7.6",
23
22
  "c12": "^0.2.7",
@@ -56,7 +55,7 @@
56
55
  "unplugin": "^0.6.3",
57
56
  "untyped": "^0.4.4",
58
57
  "vite": "^2.9.9",
59
- "vue": "^3"
58
+ "vue": "^3.2.33"
60
59
  },
61
60
  "devDependencies": {
62
61
  "@types/fs-extra": "^9.0.13"
@@ -1,6 +1,7 @@
1
1
  import { normalize } from 'pathe';
2
2
  import chokidar from 'chokidar';
3
3
  import type { Flow } from '@monkeyplus/flow-schema';
4
+ import { isIgnoredFlow } from '@monkeyplus/flow-kit';
4
5
  import { debounce } from 'perfect-debounce';
5
6
  import { generateApp as _generateApp, createApp } from './app';
6
7
 
@@ -36,7 +37,7 @@ function watch(flow: Flow) {
36
37
  cwd: flow.options.srcDir,
37
38
  ignoreInitial: true,
38
39
  ignored: [
39
- // isIgnored,
40
+ isIgnoredFlow,
40
41
  '.flow',
41
42
  'node_modules',
42
43
  ],
@@ -17,12 +17,14 @@ export default eventHandler(async(event) => {
17
17
 
18
18
  // console.log(flow);
19
19
  const { page, locale, params, view } = flow.router.byUrl.lookup(url!) || {};
20
+ // Truncate page
21
+ if (!page) return;
22
+
20
23
  await flow.callHook('page:scripts', scripts);
21
24
  if (view.bundle)
22
25
  await flow.callHook('page:chunks', view.bundle, chunks);
23
26
 
24
27
  const templateContext = {} as any;
25
- if (!page) return;
26
28
 
27
29
  const dynamyc = params?._;
28
30
  const contextPage = {} as any;
@@ -38,7 +38,8 @@ function isExternal(opts: TransformOptions, id: string) {
38
38
  ...ssrConfig.noExternal,
39
39
  ],
40
40
  external: [
41
- ...ssrConfig.external,
41
+ // * Remove to omit fixed un build
42
+ // ...ssrConfig.external,
42
43
  /node_modules/,
43
44
  ],
44
45
  resolve: {
@@ -22,6 +22,7 @@ export async function bundleVite(flow: Flow) {
22
22
  nuxt: flow,
23
23
  flow,
24
24
  config: vite.mergeConfig({
25
+ mode: flow.options.dev ? 'development' : undefined,
25
26
  resolve: {
26
27
  alias: {
27
28
  ...flow.options.alias,
@@ -71,6 +72,9 @@ export async function bundleVite(flow: Flow) {
71
72
  },
72
73
  }, flow.options.vite),
73
74
  };
75
+ if (flow.options.dev)
76
+ ctx.config.mode = process.env.NODE_ENV || 'development';
77
+
74
78
  await flow.callHook('vite:extend', ctx);
75
79
 
76
80
  flow.hook('vite:serverCreated', (server: vite.ViteDevServer) => {
@@ -33,6 +33,7 @@ export const buildServer = async(ctx: ViteBuildContext) => {
33
33
  '/__vue-jsx',
34
34
  '#app',
35
35
  /(nuxt|nuxt3)\/(dist|src|app)/,
36
+ /@monkeyplus\/flow\/(dist|src|app)/,
36
37
  /@nuxt\/nitro\/(dist|src)/,
37
38
  ],
38
39
  },
@@ -7,15 +7,22 @@ export const createClient = async(flow: Flow) => {
7
7
  const vite = await createServer({
8
8
  root: resolve(flow.options.rootDir),
9
9
  base: '/_vite/',
10
+
10
11
  build: {
12
+
11
13
  manifest: true,
12
14
  },
13
15
  server: {
16
+ watch: {
17
+ ignored: ['**/.env/**', '**/.env*'],
18
+ },
14
19
  middlewareMode: 'ssr',
20
+ //
15
21
  },
16
22
  });
17
23
  const _doReload = () => {
18
- vite.ws.send({ type: 'full-reload' });
24
+ if (vite)
25
+ vite?.ws?.send({ type: 'full-reload' });
19
26
  };
20
27
 
21
28
  const doReload = debounce(_doReload, 50);
@@ -1,5 +1,5 @@
1
1
 
2
- import { resolveFiles, useNuxt } from '@monkeyplus/flow-kit';
2
+ import { resolveFilesFlow, useNuxt } from '@monkeyplus/flow-kit';
3
3
  import { extname, relative, resolve } from 'pathe';
4
4
  import escapeRE from 'escape-string-regexp';
5
5
  import { camelCase } from 'scule';
@@ -17,7 +17,7 @@ export async function resolvePagesRoutes(): Promise<Pages[]> {
17
17
 
18
18
  const allRoutes: Pages[] = (await Promise.all(
19
19
  pagesDirs.map(async(dir) => {
20
- const files = await resolveFiles(dir, `**/*{${nuxt.options.extensions.join(',')}}`);
20
+ const files = await resolveFilesFlow(dir, `**/*{${nuxt.options.extensions.join(',')}}`);
21
21
 
22
22
  // Sort to make sure parent are listed first
23
23
 
@@ -22,12 +22,23 @@ export default defineFlowModule<OptionsViteClient>({
22
22
  const runtimeDir = resolve(distDir, 'vite-client/runtime');
23
23
  flow.options.alias['#viteManifest'] = resolve(flow.options.buildDir, 'viteManifest.mjs');
24
24
 
25
+ let vite: any;
25
26
  if (flow.options.dev) {
26
- const _vite = await createClient(flow);
27
- addDevServerHandler({
28
- handler: _vite.middlewares,
29
- route: _options.route,
27
+ flow.hook('nitro:init', async(nitro) => {
28
+ vite = await createClient(flow);
29
+ // return vite.middlewares;
30
+ nitro.options.devHandlers.push({
31
+ handler: vite.middlewares,
32
+ route: _options.route,
33
+ });
30
34
  });
35
+ // addDevServerHandler({
36
+ // route: _options.route,
37
+ // handler: async(req, res) => {
38
+ // return await vite.middlewares(req, res);
39
+ // },
40
+ // });
41
+
31
42
  addTemplate({
32
43
  filename: 'viteManifest.mjs',
33
44
  async getContents() {