Procházet zdrojové kódy

feat: add unique, randomRange, autoSleep, sleep

Acathur před 4 roky
rodič
revize
d2ce3b8799
6 změnil soubory, kde provedl 63 přidání a 1 odebrání
  1. 1 0
      dist/lib/index.d.ts
  2. 6 1
      dist/lib/index.js
  3. 4 0
      dist/lib/misc.d.ts
  4. 28 0
      dist/lib/misc.js
  5. 1 0
      src/lib/index.ts
  6. 23 0
      src/lib/misc.ts

+ 1 - 0
dist/lib/index.d.ts

@@ -1,2 +1,3 @@
 export { request } from './request';
 export { Ids, IdsConfig, IdsChannel, IdsCrawlRule, IdsArticle } from './ids';
+export { unique, randomRange, autoSleep, sleep } from './misc';

+ 6 - 1
dist/lib/index.js

@@ -1,8 +1,13 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.IdsChannel = exports.Ids = exports.request = void 0;
+exports.sleep = exports.autoSleep = exports.randomRange = exports.unique = exports.IdsChannel = exports.Ids = exports.request = void 0;
 var request_1 = require("./request");
 Object.defineProperty(exports, "request", { enumerable: true, get: function () { return request_1.request; } });
 var ids_1 = require("./ids");
 Object.defineProperty(exports, "Ids", { enumerable: true, get: function () { return ids_1.Ids; } });
 Object.defineProperty(exports, "IdsChannel", { enumerable: true, get: function () { return ids_1.IdsChannel; } });
+var misc_1 = require("./misc");
+Object.defineProperty(exports, "unique", { enumerable: true, get: function () { return misc_1.unique; } });
+Object.defineProperty(exports, "randomRange", { enumerable: true, get: function () { return misc_1.randomRange; } });
+Object.defineProperty(exports, "autoSleep", { enumerable: true, get: function () { return misc_1.autoSleep; } });
+Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return misc_1.sleep; } });

+ 4 - 0
dist/lib/misc.d.ts

@@ -0,0 +1,4 @@
+export declare const unique: (input: any[]) => any[];
+export declare const randomRange: (min: number, max: number) => number;
+export declare const sleep: (ms: number) => Promise<unknown>;
+export declare const autoSleep: (min?: number | undefined, max?: number | undefined) => Promise<unknown>;

+ 28 - 0
dist/lib/misc.js

@@ -0,0 +1,28 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.autoSleep = exports.sleep = exports.randomRange = exports.unique = void 0;
+const chalk_1 = __importDefault(require("chalk"));
+const unique = (input) => {
+    return [...new Set(input)];
+};
+exports.unique = unique;
+const randomRange = (min, max) => {
+    return Math.floor(Math.random() * (max - min) + min);
+};
+exports.randomRange = randomRange;
+const sleep = (ms) => {
+    console.debug(chalk_1.default.white(`[sleep] ${ms}ms`));
+    return new Promise(resolve => {
+        setTimeout(resolve, ms);
+    });
+};
+exports.sleep = sleep;
+const autoSleep = (min, max) => {
+    min = min || 1000;
+    max = Math.max(min, max || min * 5);
+    return exports.sleep(exports.randomRange(min, max));
+};
+exports.autoSleep = autoSleep;

+ 1 - 0
src/lib/index.ts

@@ -1,2 +1,3 @@
 export { request } from './request'
 export { Ids, IdsConfig, IdsChannel, IdsCrawlRule, IdsArticle } from './ids'
+export { unique, randomRange, autoSleep, sleep } from './misc'

+ 23 - 0
src/lib/misc.ts

@@ -0,0 +1,23 @@
+import chalk from 'chalk'
+
+export const unique = (input: any[]) => {
+  return [...new Set(input)]
+}
+
+export const randomRange = (min: number, max: number) => {
+  return Math.floor(Math.random() * (max - min) + min)
+}
+
+export const sleep = (ms: number) => {
+  console.debug(chalk.white(`[sleep] ${ms}ms`))
+
+  return new Promise(resolve => {
+    setTimeout(resolve, ms)
+  })
+}
+
+export const autoSleep = (min?: number, max?: number) => {
+  min = min || 1000
+  max = Math.max(min, max || min * 5)
+  return sleep(randomRange(min, max))
+}