vite-plugin-generoutes 0.0.17 → 0.0.18

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.
Files changed (2) hide show
  1. package/dist/index.js +11 -12
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -10,17 +10,18 @@ function VitePluginGeneroutes(options = {}) {
10
10
  const defineOptionsCache = /* @__PURE__ */ new Map();
11
11
  let rootDir;
12
12
  let routesFolder = "src/router/generoutes/";
13
- const writerRoutesFile = debounce(500, async () => {
13
+ async function writerRoutesFile() {
14
14
  const { routes } = generateMenusAndRoutes();
15
15
  let routesStr = `
16
16
  // ! \u6B64\u6587\u4EF6\u7531 vite-plugin-generoutes \u81EA\u52A8\u751F\u6210\uFF0C\u8BF7\u52FF\u4FEE\u6539\uFF0C\u8BF7\u52FF\u4FEE\u6539\uFF0C\u8BF7\u52FF\u4FEE\u6539!!!
17
17
 
18
18
  export const routes = ${JSON.stringify(routes, null, 2)}
19
- `.replace(/"##(.*)##"/g, (_, p1) => `() => import('${p1}')`);
19
+ `;
20
+ routesStr = routesStr.replace(/"##(.*)##"/g, (_, p1) => `() => import('${p1}')`);
20
21
  routesStr = await prettier.format(routesStr, { parser: "babel", semi: false, singleQuote: true });
21
- const filePath = `${routesFolder}/index.js`;
22
- fs.writeFileSync(filePath, routesStr);
23
- });
22
+ fs.writeFileSync(`${routesFolder}/index.js`, routesStr);
23
+ }
24
+ const debounceWriter = debounce(500, writerRoutesFile);
24
25
  function generateMenusAndRoutes() {
25
26
  const pages = globSync("src/pages/**/index.vue");
26
27
  const routes = pages.map((filePath) => {
@@ -60,7 +61,7 @@ function VitePluginGeneroutes(options = {}) {
60
61
  const watcher = chokidar.watch("src/pages/**/index.vue", { ignoreInitial: true });
61
62
  return watcher.on("all", async (event, path2) => {
62
63
  if (path2.endsWith("index.vue") && (event === "add" || event === "unlink")) {
63
- writerRoutesFile();
64
+ debounceWriter();
64
65
  await watcher.close();
65
66
  createWatcher();
66
67
  }
@@ -72,20 +73,18 @@ function VitePluginGeneroutes(options = {}) {
72
73
  rootDir = config.root;
73
74
  routesFolder = slash(path.resolve(rootDir, routesFolder));
74
75
  await fs.ensureDir(routesFolder);
75
- },
76
- buildStart() {
77
- writerRoutesFile();
76
+ await writerRoutesFile();
78
77
  !options.isBuild && createWatcher();
79
78
  },
80
79
  async handleHotUpdate({ file, read }) {
81
80
  if (file.includes("src/pages") && file.endsWith("index.vue")) {
82
81
  const prevDefineOptions = defineOptionsCache.get(slash(path.relative(rootDir, file)));
83
82
  if (!prevDefineOptions) {
84
- writerRoutesFile();
83
+ debounceWriter();
85
84
  } else {
86
85
  const defineOptions = JSON.stringify(parseDefineOptions(file, await read()));
87
- if (defineOptions && prevDefineOptions !== defineOptions) {
88
- writerRoutesFile();
86
+ if (prevDefineOptions !== defineOptions) {
87
+ debounceWriter();
89
88
  }
90
89
  }
91
90
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vite-plugin-generoutes",
3
3
  "type": "module",
4
- "version": "0.0.17",
4
+ "version": "0.0.18",
5
5
  "packageManager": "pnpm@9.1.1",
6
6
  "description": "_description_",
7
7
  "author": "Ronnie Zhang <zclzone@outlook.com>",