@bracketed/hono-router 1.0.1 → 1.0.3
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/lib/cjs/index.cjs +2 -2
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/index.d.ts +3 -5
- package/lib/esm/index.d.mts +3 -5
- package/lib/esm/index.mjs +2 -2
- package/lib/esm/index.mjs.map +1 -1
- package/package.json +4 -3
package/lib/cjs/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'use strict';var chunkUMZ4WAPA_cjs=require('./chunk-UMZ4WAPA.cjs'),fastGlob=require('fast-glob'),
|
|
2
|
-
`),base_cjs.base,`const options = ${JSON.stringify(
|
|
1
|
+
'use strict';var chunkUMZ4WAPA_cjs=require('./chunk-UMZ4WAPA.cjs'),fastGlob=require('fast-glob'),t=require('path'),base_cjs=require('./base.cjs');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var t__default=/*#__PURE__*/_interopDefault(t);var R=chunkUMZ4WAPA_cjs.a(u=>(u.debug=u.debug??false,{name:"hono-router",resolveId:chunkUMZ4WAPA_cjs.a((r,o)=>r.startsWith("@router/")?o?`@router/${t__default.default.resolve(t__default.default.dirname(o),r.slice(8))}`:`@router/${t__default.default.resolve(process.cwd(),r.slice(8))}`:void 0,"resolveId"),load:chunkUMZ4WAPA_cjs.a(async r=>{if(!r.startsWith("@router/"))return;let o=r.slice(8),m=(await fastGlob.glob.async("**/*.{js,mjs,ts,mts}",{onlyFiles:true,cwd:o})).map((e,s)=>{let f=t__default.default.dirname(e),c=f==="."?"":f,d=t__default.default.basename(e,t__default.default.extname(t__default.default.basename(e))),l=`${c}/${d}`,n=JSON.stringify(t__default.default.resolve(o,e)),h=/^\[\[.+\]\]$/.test(d),w=/\[.+?\]/.test(l),a=`route${s}`;return d.toLocaleLowerCase()==="+middleware"?{type:"middleware",route:`${c}/*`,url:n,varname:a}:w?h?{type:"wildcard",route:`${c}/*`,url:n,varname:a}:{type:"params",route:l.replace(/\[(.+?)\]/,(C,v)=>`:${v}`),url:n,varname:a}:{type:"static",route:l,url:n,varname:a}}),g=m.map(e=>`import * as ${e.varname} from ${e.url}`),p=["middleware","static","params","wildcard"],$=m.sort((e,s)=>p.indexOf(e.type)-p.indexOf(s.type)).map(e=>`addRoute(${[JSON.stringify(e.route),e.varname,JSON.stringify(e.type)].join(", ")})`);return [g.join(`
|
|
2
|
+
`),base_cjs.base,`const options = ${JSON.stringify(u,null,4)}`,$.join(`
|
|
3
3
|
`),"export default app"].join(`
|
|
4
4
|
`)},"load")}),"default");module.exports=R;//# sourceMappingURL=index.cjs.map
|
|
5
5
|
//# sourceMappingURL=index.cjs.map
|
package/lib/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["index_default","__name","options","debug","resolveId","i","id","parent","startsWith","path","resolve","dirname","slice","load","file","routes","async","onlyFiles","
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["index_default","__name","options","debug","name","resolveId","i","id","parent","startsWith","path","resolve","dirname","slice","target","process","cwd","load","file","routes","async","onlyFiles","map","f","idx","pathDir","dir","basename","extname","pattern","url","JSON","stringify","root","wildcard","test","param","varname","toLocaleLowerCase","type","route","replace","_","paramName","imports","types","routeCode","sort","a","b","indexOf","info","join","base"],"mappings":"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","file":"index.cjs","sourcesContent":["import { glob } from 'fast-glob';\r\nimport path from 'node:path';\r\nimport type { Plugin } from 'rollup';\r\nimport { base } from './base';\r\n\r\ninterface FileRouteOptions {\r\n\tdebug: boolean;\r\n}\r\n\r\nexport default (options: Partial<FileRouteOptions>): Plugin => {\r\n\toptions.debug = options.debug ?? false;\r\n\r\n\treturn {\r\n\t\tname: 'hono-router',\r\n\r\n\t\tresolveId: (id, parent) => {\r\n\t\t\tif (!id.startsWith('@router/')) return;\r\n\r\n\t\t\tif (!parent) return `@router/${path.resolve(process.cwd(), id.slice('@router/'.length))}`;\r\n\r\n\t\t\tconst target = path.resolve(path.dirname(parent), id.slice('@router/'.length));\r\n\t\t\treturn `@router/${target}`;\r\n\t\t},\r\n\r\n\t\tload: async (file) => {\r\n\t\t\tif (!file.startsWith('@router/')) return;\r\n\r\n\t\t\tconst root = file.slice('@router/'.length);\r\n\t\t\tconst files = await glob.async('**/*.{js,mjs,ts,mts}', {\r\n\t\t\t\tonlyFiles: true,\r\n\t\t\t\tcwd: root,\r\n\t\t\t});\r\n\r\n\t\t\tconst routes = files.map((f, idx) => {\r\n\t\t\t\tconst dir = path.dirname(f);\r\n\t\t\t\tconst pathDir = dir === '.' ? '' : dir;\r\n\t\t\t\tconst name = path.basename(f, path.extname(path.basename(f)));\r\n\t\t\t\tconst pattern = `${pathDir}/${name}`;\r\n\r\n\t\t\t\tconst url = JSON.stringify(path.resolve(root, f));\r\n\t\t\t\tconst wildcard = /^\\[\\[.+\\]\\]$/.test(name);\r\n\t\t\t\tconst param = /\\[.+?\\]/.test(pattern);\r\n\t\t\t\tconst varname = `route${idx}`;\r\n\r\n\t\t\t\tif (name.toLocaleLowerCase() === '+middleware')\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttype: 'middleware',\r\n\t\t\t\t\t\troute: `${pathDir}/*`,\r\n\t\t\t\t\t\turl,\r\n\t\t\t\t\t\tvarname,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\tif (!param)\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttype: 'static',\r\n\t\t\t\t\t\troute: pattern,\r\n\t\t\t\t\t\turl,\r\n\t\t\t\t\t\tvarname,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\tif (!wildcard)\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttype: 'params',\r\n\t\t\t\t\t\troute: pattern.replace(/\\[(.+?)\\]/, (_, paramName) => `:${paramName}`),\r\n\t\t\t\t\t\turl,\r\n\t\t\t\t\t\tvarname,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttype: 'wildcard',\r\n\t\t\t\t\troute: `${pathDir}/*`,\r\n\t\t\t\t\turl,\r\n\t\t\t\t\tvarname,\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\tconst imports = routes.map((route) => `import * as ${route.varname} from ${route.url}`);\r\n\r\n\t\t\tconst types = ['middleware', 'static', 'params', 'wildcard'];\r\n\t\t\tconst orderedRoutes = routes.sort((a, b) => types.indexOf(a.type) - types.indexOf(b.type));\r\n\r\n\t\t\tconst routeCode = orderedRoutes.map((info) => {\r\n\t\t\t\tconst args = [JSON.stringify(info.route), info.varname, JSON.stringify(info.type)];\r\n\t\t\t\treturn `addRoute(${args.join(', ')})`;\r\n\t\t\t});\r\n\r\n\t\t\tconst codeChunks = [\r\n\t\t\t\timports.join('\\n'),\r\n\t\t\t\tbase,\r\n\t\t\t\t`const options = ${JSON.stringify(options, null, 4)}`,\r\n\t\t\t\trouteCode.join('\\n'),\r\n\t\t\t\t'export default app',\r\n\t\t\t];\r\n\r\n\t\t\treturn codeChunks.join('\\n');\r\n\t\t},\r\n\t};\r\n};\r\n"]}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
+
import { Plugin } from 'rollup';
|
|
2
|
+
|
|
1
3
|
interface FileRouteOptions {
|
|
2
4
|
debug: boolean;
|
|
3
5
|
}
|
|
4
|
-
|
|
5
|
-
resolveId: (id: string, parent: string) => string | undefined;
|
|
6
|
-
load: (file: string) => Promise<string | undefined>;
|
|
7
|
-
}
|
|
8
|
-
declare const _default: (options: Partial<FileRouteOptions>) => RollupPlugin;
|
|
6
|
+
declare const _default: (options: Partial<FileRouteOptions>) => Plugin;
|
|
9
7
|
|
|
10
8
|
export { _default as default };
|
package/lib/esm/index.d.mts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
+
import { Plugin } from 'rollup';
|
|
2
|
+
|
|
1
3
|
interface FileRouteOptions {
|
|
2
4
|
debug: boolean;
|
|
3
5
|
}
|
|
4
|
-
|
|
5
|
-
resolveId: (id: string, parent: string) => string | undefined;
|
|
6
|
-
load: (file: string) => Promise<string | undefined>;
|
|
7
|
-
}
|
|
8
|
-
declare const _default: (options: Partial<FileRouteOptions>) => RollupPlugin;
|
|
6
|
+
declare const _default: (options: Partial<FileRouteOptions>) => Plugin;
|
|
9
7
|
|
|
10
8
|
export { _default as default };
|
package/lib/esm/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {a}from'./chunk-QWPVIX2T.mjs';import {glob}from'fast-glob';import
|
|
2
|
-
`),base,`const options = ${JSON.stringify(
|
|
1
|
+
import {a}from'./chunk-QWPVIX2T.mjs';import {glob}from'fast-glob';import t from'path';import {base}from'./base.mjs';var R=a(u=>(u.debug=u.debug??false,{name:"hono-router",resolveId:a((r,o)=>r.startsWith("@router/")?o?`@router/${t.resolve(t.dirname(o),r.slice(8))}`:`@router/${t.resolve(process.cwd(),r.slice(8))}`:void 0,"resolveId"),load:a(async r=>{if(!r.startsWith("@router/"))return;let o=r.slice(8),m=(await glob.async("**/*.{js,mjs,ts,mts}",{onlyFiles:true,cwd:o})).map((e,s)=>{let f=t.dirname(e),c=f==="."?"":f,d=t.basename(e,t.extname(t.basename(e))),l=`${c}/${d}`,n=JSON.stringify(t.resolve(o,e)),h=/^\[\[.+\]\]$/.test(d),w=/\[.+?\]/.test(l),a=`route${s}`;return d.toLocaleLowerCase()==="+middleware"?{type:"middleware",route:`${c}/*`,url:n,varname:a}:w?h?{type:"wildcard",route:`${c}/*`,url:n,varname:a}:{type:"params",route:l.replace(/\[(.+?)\]/,(C,v)=>`:${v}`),url:n,varname:a}:{type:"static",route:l,url:n,varname:a}}),g=m.map(e=>`import * as ${e.varname} from ${e.url}`),p=["middleware","static","params","wildcard"],$=m.sort((e,s)=>p.indexOf(e.type)-p.indexOf(s.type)).map(e=>`addRoute(${[JSON.stringify(e.route),e.varname,JSON.stringify(e.type)].join(", ")})`);return [g.join(`
|
|
2
|
+
`),base,`const options = ${JSON.stringify(u,null,4)}`,$.join(`
|
|
3
3
|
`),"export default app"].join(`
|
|
4
4
|
`)},"load")}),"default");export{R as default};//# sourceMappingURL=index.mjs.map
|
|
5
5
|
//# sourceMappingURL=index.mjs.map
|
package/lib/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["index_default","__name","options","debug","resolveId","i","id","parent","startsWith","path","resolve","dirname","slice","load","file","routes","async","onlyFiles","
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["index_default","__name","options","debug","name","resolveId","i","id","parent","startsWith","path","resolve","dirname","slice","target","process","cwd","load","file","routes","async","onlyFiles","map","f","idx","pathDir","dir","basename","extname","pattern","url","JSON","stringify","root","wildcard","test","param","varname","toLocaleLowerCase","type","route","replace","_","paramName","imports","types","routeCode","sort","a","b","indexOf","info","join","base"],"mappings":"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","file":"index.mjs","sourcesContent":["import { glob } from 'fast-glob';\r\nimport path from 'node:path';\r\nimport type { Plugin } from 'rollup';\r\nimport { base } from './base';\r\n\r\ninterface FileRouteOptions {\r\n\tdebug: boolean;\r\n}\r\n\r\nexport default (options: Partial<FileRouteOptions>): Plugin => {\r\n\toptions.debug = options.debug ?? false;\r\n\r\n\treturn {\r\n\t\tname: 'hono-router',\r\n\r\n\t\tresolveId: (id, parent) => {\r\n\t\t\tif (!id.startsWith('@router/')) return;\r\n\r\n\t\t\tif (!parent) return `@router/${path.resolve(process.cwd(), id.slice('@router/'.length))}`;\r\n\r\n\t\t\tconst target = path.resolve(path.dirname(parent), id.slice('@router/'.length));\r\n\t\t\treturn `@router/${target}`;\r\n\t\t},\r\n\r\n\t\tload: async (file) => {\r\n\t\t\tif (!file.startsWith('@router/')) return;\r\n\r\n\t\t\tconst root = file.slice('@router/'.length);\r\n\t\t\tconst files = await glob.async('**/*.{js,mjs,ts,mts}', {\r\n\t\t\t\tonlyFiles: true,\r\n\t\t\t\tcwd: root,\r\n\t\t\t});\r\n\r\n\t\t\tconst routes = files.map((f, idx) => {\r\n\t\t\t\tconst dir = path.dirname(f);\r\n\t\t\t\tconst pathDir = dir === '.' ? '' : dir;\r\n\t\t\t\tconst name = path.basename(f, path.extname(path.basename(f)));\r\n\t\t\t\tconst pattern = `${pathDir}/${name}`;\r\n\r\n\t\t\t\tconst url = JSON.stringify(path.resolve(root, f));\r\n\t\t\t\tconst wildcard = /^\\[\\[.+\\]\\]$/.test(name);\r\n\t\t\t\tconst param = /\\[.+?\\]/.test(pattern);\r\n\t\t\t\tconst varname = `route${idx}`;\r\n\r\n\t\t\t\tif (name.toLocaleLowerCase() === '+middleware')\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttype: 'middleware',\r\n\t\t\t\t\t\troute: `${pathDir}/*`,\r\n\t\t\t\t\t\turl,\r\n\t\t\t\t\t\tvarname,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\tif (!param)\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttype: 'static',\r\n\t\t\t\t\t\troute: pattern,\r\n\t\t\t\t\t\turl,\r\n\t\t\t\t\t\tvarname,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\tif (!wildcard)\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttype: 'params',\r\n\t\t\t\t\t\troute: pattern.replace(/\\[(.+?)\\]/, (_, paramName) => `:${paramName}`),\r\n\t\t\t\t\t\turl,\r\n\t\t\t\t\t\tvarname,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttype: 'wildcard',\r\n\t\t\t\t\troute: `${pathDir}/*`,\r\n\t\t\t\t\turl,\r\n\t\t\t\t\tvarname,\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\tconst imports = routes.map((route) => `import * as ${route.varname} from ${route.url}`);\r\n\r\n\t\t\tconst types = ['middleware', 'static', 'params', 'wildcard'];\r\n\t\t\tconst orderedRoutes = routes.sort((a, b) => types.indexOf(a.type) - types.indexOf(b.type));\r\n\r\n\t\t\tconst routeCode = orderedRoutes.map((info) => {\r\n\t\t\t\tconst args = [JSON.stringify(info.route), info.varname, JSON.stringify(info.type)];\r\n\t\t\t\treturn `addRoute(${args.join(', ')})`;\r\n\t\t\t});\r\n\r\n\t\t\tconst codeChunks = [\r\n\t\t\t\timports.join('\\n'),\r\n\t\t\t\tbase,\r\n\t\t\t\t`const options = ${JSON.stringify(options, null, 4)}`,\r\n\t\t\t\trouteCode.join('\\n'),\r\n\t\t\t\t'export default app',\r\n\t\t\t];\r\n\r\n\t\t\treturn codeChunks.join('\\n');\r\n\t\t},\r\n\t};\r\n};\r\n"]}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@bracketed/hono-router",
|
|
3
3
|
"description": "A typed CF worker compatible hono file system router based on the hono router by @axel669.",
|
|
4
4
|
"packageManager": "yarn@4.9.2",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.3",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"update": "yarn upgrade-interactive"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
+
"@biomejs/biome": "^2.3.13",
|
|
49
50
|
"@bracketed/tsup-configuration": "^1.0.5",
|
|
50
51
|
"@bracketed/typescript-config": "^4.7.1",
|
|
51
52
|
"@swc/core": "^1.12.5",
|
|
@@ -66,7 +67,7 @@
|
|
|
66
67
|
"node": ">=18"
|
|
67
68
|
},
|
|
68
69
|
"dependencies": {
|
|
69
|
-
"
|
|
70
|
-
"
|
|
70
|
+
"fast-glob": "^3.3.3",
|
|
71
|
+
"rollup": "^4.57.1"
|
|
71
72
|
}
|
|
72
73
|
}
|