@bracketed/hono-router 1.0.2 → 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 CHANGED
@@ -1,5 +1,5 @@
1
- 'use strict';var chunkUMZ4WAPA_cjs=require('./chunk-UMZ4WAPA.cjs'),fastGlob=require('fast-glob'),e=require('path'),base_cjs=require('./base.cjs');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var e__default=/*#__PURE__*/_interopDefault(e);var R=chunkUMZ4WAPA_cjs.a(d=>(d.debug=d.debug??false,{resolveId:chunkUMZ4WAPA_cjs.a((r,o)=>r.startsWith("@router/")?`@router/${e__default.default.resolve(e__default.default.dirname(o),r.slice(8))}`:void 0,"resolveId"),load:chunkUMZ4WAPA_cjs.a(async r=>{if(!r.startsWith("@router/"))return;let o=r.slice(8),l=(await fastGlob.glob.async("**/*.{js,mjs,ts,mts}",{onlyFiles:true,cwd:o})).map((t,s)=>{let y=e__default.default.dirname(t),u=y==="."?"":y,c=e__default.default.basename(t,e__default.default.extname(e__default.default.basename(t))),m=`${u}/${c}`,n=JSON.stringify(e__default.default.resolve(o,t)),g=/^\[\[.+\]\]$/.test(c),w=/\[.+?\]/.test(m),a=`route${s}`;return c.toLocaleLowerCase()==="+middleware"?{type:"middleware",route:`${u}/*`,url:n,varname:a}:w?g?{type:"wildcard",route:`${u}/*`,url:n,varname:a}:{type:"params",route:m.replace(/\[(.+?)\]/,(C,h)=>`:${h}`),url:n,varname:a}:{type:"static",route:m,url:n,varname:a}}),f=l.map(t=>`import * as ${t.varname} from ${t.url}`),p=["middleware","static","params","wildcard"],$=l.sort((t,s)=>p.indexOf(t.type)-p.indexOf(s.type)).map(t=>`addRoute(${[JSON.stringify(t.route),t.varname,JSON.stringify(t.type)].join(", ")})`);return [f.join(`
2
- `),base_cjs.base,`const options = ${JSON.stringify(d,null,4)}`,$.join(`
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
@@ -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","cwd","map","f","idx","pathDir","dir","name","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 { base } from './base';\r\n\r\ninterface FileRouteOptions {\r\n\tdebug: boolean;\r\n}\r\n\r\ninterface RollupPlugin {\r\n\tresolveId: (id: string, parent: string) => string | undefined;\r\n\tload: (file: string) => Promise<string | undefined>;\r\n}\r\n\r\nexport default (options: Partial<FileRouteOptions>): RollupPlugin => {\r\n\toptions.debug = options.debug ?? false;\r\n\r\n\treturn {\r\n\t\tresolveId: (id, parent) =>\r\n\t\t\t!id.startsWith('@router/')\r\n\t\t\t\t? void 0\r\n\t\t\t\t: `@router/${path.resolve(path.dirname(parent), id.slice('@router/'.length))}`,\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"]}
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"]}
@@ -1,10 +1,8 @@
1
+ import { Plugin } from 'rollup';
2
+
1
3
  interface FileRouteOptions {
2
4
  debug: boolean;
3
5
  }
4
- interface RollupPlugin {
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 };
@@ -1,10 +1,8 @@
1
+ import { Plugin } from 'rollup';
2
+
1
3
  interface FileRouteOptions {
2
4
  debug: boolean;
3
5
  }
4
- interface RollupPlugin {
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 e from'path';import {base}from'./base.mjs';var R=a(d=>(d.debug=d.debug??false,{resolveId:a((r,o)=>r.startsWith("@router/")?`@router/${e.resolve(e.dirname(o),r.slice(8))}`:void 0,"resolveId"),load:a(async r=>{if(!r.startsWith("@router/"))return;let o=r.slice(8),l=(await glob.async("**/*.{js,mjs,ts,mts}",{onlyFiles:true,cwd:o})).map((t,s)=>{let y=e.dirname(t),u=y==="."?"":y,c=e.basename(t,e.extname(e.basename(t))),m=`${u}/${c}`,n=JSON.stringify(e.resolve(o,t)),g=/^\[\[.+\]\]$/.test(c),w=/\[.+?\]/.test(m),a=`route${s}`;return c.toLocaleLowerCase()==="+middleware"?{type:"middleware",route:`${u}/*`,url:n,varname:a}:w?g?{type:"wildcard",route:`${u}/*`,url:n,varname:a}:{type:"params",route:m.replace(/\[(.+?)\]/,(C,h)=>`:${h}`),url:n,varname:a}:{type:"static",route:m,url:n,varname:a}}),f=l.map(t=>`import * as ${t.varname} from ${t.url}`),p=["middleware","static","params","wildcard"],$=l.sort((t,s)=>p.indexOf(t.type)-p.indexOf(s.type)).map(t=>`addRoute(${[JSON.stringify(t.route),t.varname,JSON.stringify(t.type)].join(", ")})`);return [f.join(`
2
- `),base,`const options = ${JSON.stringify(d,null,4)}`,$.join(`
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
@@ -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","cwd","map","f","idx","pathDir","dir","name","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 { base } from './base';\r\n\r\ninterface FileRouteOptions {\r\n\tdebug: boolean;\r\n}\r\n\r\ninterface RollupPlugin {\r\n\tresolveId: (id: string, parent: string) => string | undefined;\r\n\tload: (file: string) => Promise<string | undefined>;\r\n}\r\n\r\nexport default (options: Partial<FileRouteOptions>): RollupPlugin => {\r\n\toptions.debug = options.debug ?? false;\r\n\r\n\treturn {\r\n\t\tresolveId: (id, parent) =>\r\n\t\t\t!id.startsWith('@router/')\r\n\t\t\t\t? void 0\r\n\t\t\t\t: `@router/${path.resolve(path.dirname(parent), id.slice('@router/'.length))}`,\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"]}
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.2",
5
+ "version": "1.0.3",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -67,6 +67,7 @@
67
67
  "node": ">=18"
68
68
  },
69
69
  "dependencies": {
70
- "fast-glob": "^3.3.3"
70
+ "fast-glob": "^3.3.3",
71
+ "rollup": "^4.57.1"
71
72
  }
72
73
  }