hash to long keys
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
jusax23 2023-03-19 12:01:38 +01:00
parent 8210af9c6b
commit 5222fa22af
Signed by: jusax23
GPG key ID: 499E2AA870C1CD41
3 changed files with 6 additions and 1 deletions

View file

@ -13,7 +13,7 @@ Features:
- [x] remove unused Schema - [x] remove unused Schema
- [x] joins - [x] joins
- [x] table alias - [x] table alias
- [x] generell aliases - [x] general aliases
- [x] unified response - [x] unified response
- [ ] change Schema - [ ] change Schema
- [ ] Key-Value Store Shortcut - [ ] Key-Value Store Shortcut

View file

@ -3,6 +3,7 @@ import { Attribute, DB, insertResponse, readResponse, Table, writeResponse } fro
import { Aggregation, checkConstraint, joinCross, Datatype, foreignConstraint, Modifier, joinNatural, onJoin, uniqueConstraint, usingJoin } from "./dbStructure.js" import { Aggregation, checkConstraint, joinCross, Datatype, foreignConstraint, Modifier, joinNatural, onJoin, uniqueConstraint, usingJoin } from "./dbStructure.js"
import { insertQuery, Query, QueryBuilder, removeQuery, selectQuery, updateQuery } from "./query.js" import { insertQuery, Query, QueryBuilder, removeQuery, selectQuery, updateQuery } from "./query.js"
import { allModifierInput, joinType, onAction, primaryData } from "./types.js" import { allModifierInput, joinType, onAction, primaryData } from "./types.js"
import { sha256 } from "./tools.js"
export class Handler { export class Handler {
db: DB; db: DB;
@ -571,6 +572,7 @@ export class Handler {
}, },
escapeID: (key: string): string => { escapeID: (key: string): string => {
if (!key || key === "" || key.includes('\u0000')) throw new Error("Can not escape empty key or with null unicode!"); if (!key || key === "" || key.includes('\u0000')) throw new Error("Can not escape empty key or with null unicode!");
if (key.length > 64) key = sha256(key);
if (key.match(/^`.+`$/g)) return key; if (key.match(/^`.+`$/g)) return key;
return `\`${key.replace(/`/g, '``')}\``; return `\`${key.replace(/`/g, '``')}\``;
}, },

3
src/tools.ts Normal file
View file

@ -0,0 +1,3 @@
import crypto from "crypto";
export const sha256 = (d: any) => crypto.createHash('sha256').update(String(d)).digest('base64');