hash to long keys #16
4 changed files with 7 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "dblang",
|
"name": "dblang",
|
||||||
"version": "0.8.0",
|
"version": "0.8.1",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/db.js",
|
"main": "dist/db.js",
|
||||||
"types": "dist/db.d.ts",
|
"types": "dist/db.d.ts",
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
3
src/tools.ts
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import crypto from "crypto";
|
||||||
|
|
||||||
|
export const sha256 = (d: any) => crypto.createHash('sha256').update(String(d)).digest('base64');
|
Loading…
Reference in a new issue