@mapl/router 0.6.4 → 0.7.0

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/constants.d.ts CHANGED
@@ -1,12 +1,7 @@
1
- export declare const REQ = "r";
2
1
  export declare const PATH = "p";
3
2
  export declare const PATH_START = "s";
4
3
  export declare const PATH_END = "e";
5
- export declare const URL = "u";
6
4
  export declare const PATH_LEN = "l";
7
5
  export declare const PARAMS = "q";
8
6
  export declare const PREV_PARAM_IDX = "i";
9
7
  export declare const CURRENT_PARAM_IDX = "j";
10
- export declare const TMP = "t";
11
- export declare const DEP = "f";
12
- export declare const CTX = "c";
package/constants.js CHANGED
@@ -1 +1 @@
1
- export let REQ=`r`;export let PATH=`p`;export let PATH_START=`s`;export let PATH_END=`e`;export let URL=`u`;export let PATH_LEN=`l`;export let PARAMS=`q`;export let PREV_PARAM_IDX=`i`;export let CURRENT_PARAM_IDX=`j`;export let TMP=`t`;export let DEP=`f`;export let CTX=`c`;
1
+ export let PATH=`p`;export let PATH_START=`s`;export let PATH_END=`e`;export let PATH_LEN=`l`;export let PARAMS=`q`;export let PREV_PARAM_IDX=`i`;export let CURRENT_PARAM_IDX=`j`;
@@ -0,0 +1,13 @@
1
+ import type { Router } from "./index.js";
2
+ declare const _default: (router: Router<string>, methodInput: string, parsePath: string, startIndex: 0 | 1) => string;
3
+ /**
4
+ * Faster string comparisons for frameworks as most request URL strings are not optimized for slice & comparison.
5
+ *
6
+ * @example
7
+ * // Example path parser
8
+ * let $PATH = req.url,
9
+ * $PATH_START = p.indexOf('/', 12) + 1,
10
+ * $PATH_END = p.indexOf('?', s),
11
+ * $PATH_LEN = e === -1 ? p.length : e;
12
+ */
13
+ export default _default;
@@ -0,0 +1 @@
1
+ import{compile}from"../tree/compiler.js";export default (router,methodInput,parsePath,startIndex)=>{let allRouter=router[``];let str=``;for(let key in router)key!==``&&(str+=(str===``?`if(`:`else if(`)+methodInput+`==="`+key+`"){`+(allRouter==null?parsePath:``)+compile(router[key],0,-startIndex,`s+`)+`}`);return allRouter==null?str:parsePath+str+compile(allRouter,0,-startIndex,`s+`)};
@@ -0,0 +1,4 @@
1
+ import { type Node } from "../tree/node.js";
2
+ export type Router<T = unknown> = Record<string, Node<T>>;
3
+ export declare const createRouter: <T>() => Router<T>;
4
+ export declare const insertItem: <T>(router: Router<T>, method: string, path: string, item: T) => void;
@@ -0,0 +1 @@
1
+ import{createNode,insertItem as nodeInsertItem}from"../tree/node.js";export let createRouter=()=>({});export let insertItem=(router,method,path,item)=>{nodeInsertItem(router[method]??=createNode(`/`),path,item)};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapl/router",
3
- "version": "0.6.4",
3
+ "version": "0.7.0",
4
4
  "description": "The fastest possible JS router",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,16 +8,16 @@
8
8
  },
9
9
  "license": "MIT",
10
10
  "type": "module",
11
- "main": "./index.js",
12
- "types": "./index.d.ts",
13
- "packageManager": "pnpm@10.12.1+sha512.f0dda8580f0ee9481c5c79a1d927b9164f2c478e90992ad268bbb2465a736984391d6333d2c327913578b2804af33474ca554ba29c04a8b13060a717675ae3ac",
14
11
  "exports": {
15
- "./constants": "./constants.js",
16
- "./method/compiler": "./method/compiler.js",
17
- "./tree/compiler": "./tree/compiler.js",
18
- "./path": "./path/index.js",
19
12
  "./path/compiler": "./path/compiler.js",
13
+ "./method/compiler": "./method/compiler.js",
14
+ "./utils": "./utils.js",
15
+ "./fast-method/compiler": "./fast-method/compiler.js",
16
+ "./tree/node": "./tree/node.js",
17
+ "./constants": "./constants.js",
20
18
  "./method": "./method/index.js",
21
- "./tree/node": "./tree/node.js"
19
+ "./tree/compiler": "./tree/compiler.js",
20
+ "./fast-method": "./fast-method/index.js",
21
+ "./path": "./path/index.js"
22
22
  }
23
23
  }
package/path/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { type Node } from "../tree/node.js";
2
- export type Router<T = unknown> = [staticMap: [path: string, item: T][], root: Node<T> | undefined];
2
+ export type Router<T = unknown> = [staticMap: [path: string, item: T][], root: Node<T> | null];
3
3
  export declare const createRouter: <T>() => Router<T>;
4
4
  export declare const insertItem: <T>(router: Router<T>, path: string, item: T) => void;
5
- export declare const countParams: (path: string) => number;
package/path/index.js CHANGED
@@ -1 +1 @@
1
- import{createNode,insertItem as nodeInsertItem}from"../tree/node.js";export let createRouter=()=>[[],,];export let insertItem=(router,path,item)=>{if(path.includes(`*`))nodeInsertItem(router[1]??=createNode(`/`),path,item);else router[0].push([path,item])};export let countParams=path=>{let cnt=path.endsWith(`**`)?2:0;for(let i=path.length-cnt;(i=path.lastIndexOf(`*`,i-1))!==-1;cnt++);return cnt};
1
+ import{createNode,insertItem as nodeInsertItem}from"../tree/node.js";export let createRouter=()=>[[],null];export let insertItem=(router,path,item)=>{if(path.includes(`*`))nodeInsertItem(router[1]??=createNode(`/`),path,item);else router[0].push([path,item])};
package/utils.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const countParams: (path: string) => number;
package/utils.js ADDED
@@ -0,0 +1 @@
1
+ export let countParams=path=>{let cnt=path.endsWith(`**`)?2:0;for(let i=path.length-cnt;(i=path.lastIndexOf(`*`,i-1))!==-1;cnt++);return cnt};