🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@coverbase/radix

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@coverbase/radix - npm Package Compare versions

Package was removed
Sorry, it seems this package was removed from the registry
Comparing version
0.0.1
to
0.0.2
+13
dist/src/index.d.ts
export type Match<T> = {
value: T;
parameters: Record<string, string>;
};
export declare class Radix<T> {
value?: T;
parameter?: string;
children: Record<string, Radix<T>>;
constructor(parameter?: string);
insert: (key: string, value: T) => void;
match: (key: string) => Match<T> | undefined;
}
export declare const combineRadix: <T>(firstNode: Radix<T>, secondNode: Radix<T>) => Radix<T>;
+1
-1

@@ -1,1 +0,1 @@

class G{rootNode;constructor(){this.rootNode=E()}insert=(q,A)=>{let j=this.rootNode;for(let w of q.split("/")){const z=w.startsWith(":"),B=z?":":w;let D=j.children[B];if(D===void 0)D=z?E(w.substring(1)):E(),j.children[B]=D;j=D}j.value=A};match=(q,A)=>{let j=this.rootNode;for(let w of q.split("/")){const z=j.children[w]??j.children[":"];if(z){if(j=z,j.parameter)A[j.parameter]=w}}return j.value};merge=(q)=>{this.rootNode=F(this.rootNode,q.rootNode)}}var E=(q)=>{return{parameter:q,children:{}}},F=(q,A)=>{const j=E();j.value=q.value!==void 0?q.value:A.value,j.parameter=q.parameter!==void 0?q.parameter:A.parameter;for(let w of new Set([...Object.keys(q.children),...Object.keys(A.children)])){const z=q.children[w],B=A.children[w];if(z&&B)j.children[w]=F(z,B);else if(z)j.children[w]=z;else if(B)j.children[w]=B}return j};export{E as createNode,F as combineNodes,G as Radix};
class D{value;parameter;children;constructor(q){this.parameter=q,this.children={}}insert=(q,T)=>{let j=this;for(let w of q.split("/")){const z=w.startsWith(":"),A=z?":":w;let B=j.children[A];if(B===void 0)B=z?new D(w.substring(1)):new D,j.children[A]=B;j=B}j.value=T};match=(q)=>{let T=this;const j={};for(let w of q.split("/"))if(T=T.children[w]??T.children[":"],T?.parameter)j[T.parameter]=w;if(T?.value)return{value:T.value,parameters:j}}}var E=(q,T)=>{const j=new D;j.value=q.value!==void 0?q.value:T.value,j.parameter=q.parameter!==void 0?q.parameter:T.parameter;for(let w of new Set([...Object.keys(q.children),...Object.keys(T.children)])){const z=q.children[w],A=T.children[w];if(z&&A)j.children[w]=E(z,A);else if(z)j.children[w]=z;else if(A)j.children[w]=A}return j};export{E as combineRadix,D as Radix};
{
"name": "@coverbase/radix",
"version": "0.0.1",
"version": "0.0.2",
"type": "module",

@@ -5,0 +5,0 @@ "exports": {

export type Node<T> = {
value?: T;
parameter?: string;
children: Record<string, Node<T>>;
};
export declare class Radix<T> {
rootNode: Node<T>;
constructor();
insert: (key: string, value: T) => void;
match: (key: string, parameters: Record<string, string>) => T | undefined;
merge: (radix: Radix<T>) => void;
}
export declare const createNode: <T>(parameter?: string) => Node<T>;
export declare const combineNodes: <T>(firstNode: Node<T>, secondNode: Node<T>) => Node<T>;