Minor Changes + Housekeeping

This commit is contained in:
SukkaW
2024-07-02 10:50:09 +08:00
parent b325f31990
commit dda0555c0b
8 changed files with 34 additions and 67 deletions

View File

@@ -13,35 +13,6 @@ const createNode = (): Node => {
return node;
};
const deepNodeToJSON = (node: Node, wset: WeakSet<Node>) => {
if (wset.has(node)) {
return 'circular';
}
wset.add(node);
const obj: Record<string, any> = {};
if (node[WORDEND]) {
obj['[end]'] = node[WORDEND];
}
node.forEach((value, key) => {
obj[key] = deepNodeToJSON(value, wset);
});
return obj;
};
function createNodeInspectCustom(node: Node) {
const wset = new WeakSet<Node>();
return () => {
try {
return JSON.stringify(deepNodeToJSON(node, wset), null, 2);
} catch (e) {
console.error(e);
return '';
}
};
}
const createKeywordFilter = (keys: string[] | Set<string>) => {
const root = createNode();
@@ -92,7 +63,7 @@ const createKeywordFilter = (keys: string[] | Set<string>) => {
// };
// build();
const tester = (text: string) => {
return (text: string) => {
let node: Node | undefined = root;
for (let i = 0, textLen = text.length; i < textLen; i++) {
@@ -111,10 +82,6 @@ const createKeywordFilter = (keys: string[] | Set<string>) => {
return false;
};
tester[Bun.inspect.custom] = createNodeInspectCustom(root);
return tester;
};
export default createKeywordFilter;