1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | var __importStar = (this && this.__importStar) || function (mod) {
|
6 | if (mod && mod.__esModule) return mod;
|
7 | var result = {};
|
8 | if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
9 | result["default"] = mod;
|
10 | return result;
|
11 | };
|
12 | Object.defineProperty(exports, "__esModule", { value: true });
|
13 | const biguint_format_1 = __importDefault(require("biguint-format"));
|
14 | const crypto_1 = __importDefault(require("crypto"));
|
15 | const flake_idgen_1 = __importDefault(require("flake-idgen"));
|
16 | const winston = __importStar(require("winston"));
|
17 | const flaker = new flake_idgen_1.default({ id: Number.parseInt(process.env.SERVER_ID) || 0, epoch: 1514764800000 });
|
18 | var Security;
|
19 | (function (Security) {
|
20 | |
21 |
|
22 |
|
23 | function snowflake() {
|
24 | return new Promise((resolve, reject) => {
|
25 | flaker.next((err, id) => {
|
26 | err ? reject(err) : resolve(biguint_format_1.default(id, 'dec'));
|
27 | });
|
28 | });
|
29 | }
|
30 | Security.snowflake = snowflake;
|
31 | |
32 |
|
33 |
|
34 |
|
35 | function random(length) {
|
36 | return new Promise((resolve, reject) => {
|
37 | crypto_1.default.randomBytes(length / 2, function (err, buffer) {
|
38 | err ? reject(err) : resolve(buffer.toString("hex"));
|
39 | });
|
40 | });
|
41 | }
|
42 | Security.random = random;
|
43 | })(Security = exports.Security || (exports.Security = {}));
|
44 | var Miscellaneous;
|
45 | (function (Miscellaneous) {
|
46 | |
47 |
|
48 |
|
49 | function callbackPromise() {
|
50 | let struct = {};
|
51 | struct.promise = new Promise((resolve) => struct.cb = resolve);
|
52 | return struct;
|
53 | }
|
54 | Miscellaneous.callbackPromise = callbackPromise;
|
55 | function sortNumbersInObject(obj) {
|
56 | const sortable = [];
|
57 | for (let key in obj) {
|
58 | sortable.push([key, obj[key]]);
|
59 | }
|
60 | sortable.sort((a, b) => a[1] - b[1]);
|
61 | return sortable;
|
62 | }
|
63 | Miscellaneous.sortNumbersInObject = sortNumbersInObject;
|
64 | })(Miscellaneous = exports.Miscellaneous || (exports.Miscellaneous = {}));
|
65 | exports.Logger = new winston.Logger({
|
66 | transports: [
|
67 | new winston.transports.Console({
|
68 | level: "debug",
|
69 | handleExceptions: false,
|
70 | json: false,
|
71 | colorize: true,
|
72 | }),
|
73 | ],
|
74 | exitOnError: false,
|
75 | });
|
76 |
|
\ | No newline at end of file |