bun-plugin-stx 0.2.148 → 0.2.149

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.
@@ -75,21 +75,35 @@ function filePathToPattern(filePath, pagesDir) {
75
75
  }
76
76
  function patternToRegex(pattern) {
77
77
  const params = [];
78
- let regexStr = pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&");
79
- regexStr = regexStr.replace(/\/:([^/]+)\?/g, (_, name) => {
80
- params.push(name);
81
- return "(?:/([^/]+))?";
82
- });
83
- regexStr = regexStr.replace(/:([^/]+)\*/g, (_, name) => {
84
- params.push(name);
85
- return "(.+)";
86
- });
87
- regexStr = regexStr.replace(/:([^/]+)/g, (_, name) => {
88
- params.push(name);
89
- return "([^/]+)";
90
- });
91
- regexStr = `^${regexStr}$`;
92
- return { regex: new RegExp(regexStr), params };
78
+ let regexStr = "";
79
+ let i = 0;
80
+ while (i < pattern.length) {
81
+ const rest = pattern.slice(i);
82
+ const optional = /^\/:([^/?*]+)\?/.exec(rest);
83
+ if (optional) {
84
+ params.push(optional[1]);
85
+ regexStr += "(?:/([^/]+))?";
86
+ i += optional[0].length;
87
+ continue;
88
+ }
89
+ const catchAll = /^:([^/?*]+)\*/.exec(rest);
90
+ if (catchAll) {
91
+ params.push(catchAll[1]);
92
+ regexStr += "(.+)";
93
+ i += catchAll[0].length;
94
+ continue;
95
+ }
96
+ const required = /^:([^/?*]+)/.exec(rest);
97
+ if (required) {
98
+ params.push(required[1]);
99
+ regexStr += "([^/]+)";
100
+ i += required[0].length;
101
+ continue;
102
+ }
103
+ regexStr += pattern[i].replace(/[.+^${}()|[\]\\*?]/g, "\\$&");
104
+ i += 1;
105
+ }
106
+ return { regex: new RegExp(`^${regexStr}$`), params };
93
107
  }
94
108
  function matchRoute(pathname, routes) {
95
109
  const normalizedPath = pathname === "" ? "/" : pathname;
package/dist/serve.js CHANGED
@@ -9361,7 +9361,7 @@ After installing: bun add bun-plugin-stx`);
9361
9361
  pageMiddlewarePatterns.length = 0;
9362
9362
  await Promise.all(files.map((f) => detectPageMiddleware(f)));
9363
9363
  try {
9364
- const { Router } = await import("./chunk-7xv85mm2.js");
9364
+ const { Router } = await import("./chunk-7nan8etz.js");
9365
9365
  const pagesDirs = patterns.map((p) => p.replace(/\/$/, "")).filter(Boolean);
9366
9366
  const router = new Router(process19.cwd(), { pagesDirs, stateDir: stateDirName() });
9367
9367
  if (!options.quiet)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bun-plugin-stx",
3
3
  "type": "module",
4
- "version": "0.2.148",
4
+ "version": "0.2.149",
5
5
  "description": "A Bun plugin that allows for using Laravel Blade-like syntax.",
6
6
  "author": "Chris Breuer <chris@stacksjs.org>",
7
7
  "license": "MIT",