UNPKG

3.99 kBSource Map (JSON)View Raw
1{"version":3,"file":"util.js","sourceRoot":"./src/","sources":["util.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAAwC;AACxC,oDAA4B;AAC5B,8DAAgC;AAChC,iDAAmC;AAGnC,MAAM,MAAM,GAAG,IAAI,qBAAK,CAAC,EAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAC,CAAC,CAAC;AAE5G,IAAiB,QAAQ,CAsBxB;AAtBD,WAAiB,QAAQ;IACrB;;OAEG;IACH,SAAgB,SAAS;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;gBACpB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IANe,kBAAS,YAMxB,CAAA;IACD;;;OAGG;IACH,SAAgB,MAAM,CAAC,MAAc;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,gBAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,UAAS,GAAG,EAAE,MAAM;gBAC/C,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAA;IACN,CAAC;IANe,eAAM,SAMrB,CAAA;AACL,CAAC,EAtBgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAsBxB;AAED,IAAiB,aAAa,CAqB7B;AArBD,WAAiB,aAAa;IAC1B;;OAEG;IACH,SAAgB,eAAe;QAC3B,IAAI,MAAM,GAAsD,EAAE,CAAC;QACnE,MAAM,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;QAC/D,OAAO,MAAa,CAAC;IACzB,CAAC;IAJe,6BAAe,kBAI9B,CAAA;IAED,SAAgB,mBAAmB,CAAC,GAA4B;QAC5D,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAE7C,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAClC;QAED,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAVe,iCAAmB,sBAUlC,CAAA;AACL,CAAC,EArBgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAqB7B;AAEY,QAAA,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACrC,UAAU,EAAE;QACR,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAC3B,KAAK,EAAE,OAAO;YACd,gBAAgB,EAAE,KAAK;YACvB,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;SACjB,CAAC;KACL;IACD,WAAW,EAAE,KAAK;CACrB,CAAC,CAAC","sourcesContent":["import uintformat from \"biguint-format\";\nimport crypto from \"crypto\";\nimport flake from \"flake-idgen\";\nimport * as winston from \"winston\";\nimport { Constants } from \".\";\n\nconst flaker = new flake({id: Number.parseInt(process.env.SERVER_ID as string) || 0, epoch: 1514764800000});\n\nexport namespace Security {\n /**\n * Creates a unique snowflake\n */\n export function snowflake(): Promise<string> {\n return new Promise((resolve, reject) => {\n flaker.next((err, id) => {\n err ? reject(err) : resolve(uintformat(id, 'dec'));\n });\n });\n }\n /**\n * Creates a secure random string of a given length\n * @param length the length\n */\n export function random(length: number): Promise<string> {\n return new Promise((resolve, reject) => {\n crypto.randomBytes(length / 2, function(err, buffer) {\n err ? reject(err) : resolve(buffer.toString(\"hex\"));\n });\n })\n }\n}\n\nexport namespace Miscellaneous {\n /**\n * Returns an object with a promise and a callback\n */\n export function callbackPromise(): {cb: () => void, promise: Promise<void>} {\n let struct: Partial<{cb: () => void, promise: Promise<void>}> = {};\n struct.promise = new Promise((resolve) => struct.cb = resolve);\n return struct as any;\n }\n\n export function sortNumbersInObject(obj: {[key: string]: number}) {\n const sortable: Array<[string, number]> = [];\n\n for (let key in obj) {\n sortable.push([key, obj[key]]);\n }\n\n sortable.sort((a, b) => a[1] - b[1]);\n\n return sortable;\n }\n}\n\nexport const Logger = new winston.Logger({\n transports: [\n new winston.transports.Console({\n level: \"debug\",\n handleExceptions: false,\n json: false,\n colorize: true,\n }),\n ],\n exitOnError: false,\n});"]}
\No newline at end of file