From d4e635c78e355f77ee5f0134c4a0e59995214b69 Mon Sep 17 00:00:00 2001 From: Richard King Date: Sat, 19 Aug 2023 16:46:29 +0200 Subject: [PATCH] feat(pick): use RandomGenerator as the base class --- packages/pick/package-lock.json | 51 +++++++++++++++++---------- packages/pick/package.json | 8 ++--- packages/pick/src/RandomPick/index.ts | 25 +++++++------ packages/pick/src/index.ts | 2 +- 4 files changed, 50 insertions(+), 36 deletions(-) diff --git a/packages/pick/package-lock.json b/packages/pick/package-lock.json index aaf0567..0ae2dce 100644 --- a/packages/pick/package-lock.json +++ b/packages/pick/package-lock.json @@ -9,8 +9,8 @@ "version": "0.0.0-development", "license": "MIT", "dependencies": { - "@grandom/core": "^1.6.0", - "@grandom/engines": "^1.0.2" + "@grandom/core": "^2.4.0", + "@grandom/engines": "^2.1.0" }, "devDependencies": { "@rollup/plugin-terser": "^0.4.3", @@ -25,7 +25,7 @@ "@types/semantic-release": "^20.0.1", "jest": "^29.6.2", "jest-extended": "^4.0.1", - "rollup": "^3.26.3", + "rollup": "^3.28.0", "semantic-release": "^19.0.5", "semantic-release-monorepo": "^7.0.5", "snazzy": "^9.0.0", @@ -33,7 +33,7 @@ "ts-jest": "^29.1.1", "ts-node": "^10.9.1", "ts-standard": "^12.0.2", - "tslib": "^2.6.0", + "tslib": "^2.6.2", "typescript": "^4.9.4" }, "engines": { @@ -806,24 +806,33 @@ } }, "node_modules/@grandom/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@grandom/core/-/core-1.6.0.tgz", - "integrity": "sha512-k4TmcJxN+/9afNf5e3yjap3n7cVaPpLCSe4yd+q/lm24CQ3KcOVfGwF2q1gemgPzbrcJSiza4RrIkxPGHvsXqA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@grandom/core/-/core-2.4.0.tgz", + "integrity": "sha512-5otCr5zsfIwl/eDB2KseaEjS6cvVSY6ySrnykQvksmVQR+tKBJSV9P+97Rpnnpv6zYQsWmayTl16n2cAN6Tgjg==", "engines": { "node": ">= 16" } }, "node_modules/@grandom/engines": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@grandom/engines/-/engines-1.3.0.tgz", - "integrity": "sha512-mX2m9/aYvZehAc+MT9l6W/smigyrOsaYXUIGMzElhz4WsiynssoAesEjoVhNKjoQo6A/9zXjYQ0Bve+ZIIv1WQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@grandom/engines/-/engines-2.1.0.tgz", + "integrity": "sha512-DcQqKpSoVnk3tu+fNSA4T+Ag+p6nu4Yf/SXMhlYpdUKykErK58+7EUZxQUqSRXDSSlhisim2i/b6lhEI9B/rWA==", "dependencies": { - "@grandom/core": "^1.6.0" + "@grandom/core": "^2.4.0", + "@grandom/mt19937": "^1.0.0" }, "engines": { "node": ">= 16" } }, + "node_modules/@grandom/mt19937": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@grandom/mt19937/-/mt19937-1.0.0.tgz", + "integrity": "sha512-Ym/YOLU+/ldfTpc0+7UG3h/lkXZhA1H0ABSeM9Lq/Z06TOGg9u6aFyExHN3BfmqCIexzui4bqSefiutCSHtBXA==", + "engines": { + "node": ">= 16" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", @@ -13209,18 +13218,24 @@ "dev": true }, "@grandom/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@grandom/core/-/core-1.6.0.tgz", - "integrity": "sha512-k4TmcJxN+/9afNf5e3yjap3n7cVaPpLCSe4yd+q/lm24CQ3KcOVfGwF2q1gemgPzbrcJSiza4RrIkxPGHvsXqA==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@grandom/core/-/core-2.4.0.tgz", + "integrity": "sha512-5otCr5zsfIwl/eDB2KseaEjS6cvVSY6ySrnykQvksmVQR+tKBJSV9P+97Rpnnpv6zYQsWmayTl16n2cAN6Tgjg==" }, "@grandom/engines": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@grandom/engines/-/engines-1.3.0.tgz", - "integrity": "sha512-mX2m9/aYvZehAc+MT9l6W/smigyrOsaYXUIGMzElhz4WsiynssoAesEjoVhNKjoQo6A/9zXjYQ0Bve+ZIIv1WQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@grandom/engines/-/engines-2.1.0.tgz", + "integrity": "sha512-DcQqKpSoVnk3tu+fNSA4T+Ag+p6nu4Yf/SXMhlYpdUKykErK58+7EUZxQUqSRXDSSlhisim2i/b6lhEI9B/rWA==", "requires": { - "@grandom/core": "^1.6.0" + "@grandom/core": "^2.4.0", + "@grandom/mt19937": "^1.0.0" } }, + "@grandom/mt19937": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@grandom/mt19937/-/mt19937-1.0.0.tgz", + "integrity": "sha512-Ym/YOLU+/ldfTpc0+7UG3h/lkXZhA1H0ABSeM9Lq/Z06TOGg9u6aFyExHN3BfmqCIexzui4bqSefiutCSHtBXA==" + }, "@humanwhocodes/config-array": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", diff --git a/packages/pick/package.json b/packages/pick/package.json index 39c751f..c67bf1b 100644 --- a/packages/pick/package.json +++ b/packages/pick/package.json @@ -50,7 +50,7 @@ "@types/semantic-release": "^20.0.1", "jest": "^29.6.2", "jest-extended": "^4.0.1", - "rollup": "^3.26.3", + "rollup": "^3.28.0", "semantic-release": "^19.0.5", "semantic-release-monorepo": "^7.0.5", "snazzy": "^9.0.0", @@ -58,11 +58,11 @@ "ts-jest": "^29.1.1", "ts-node": "^10.9.1", "ts-standard": "^12.0.2", - "tslib": "^2.6.0", + "tslib": "^2.6.2", "typescript": "^4.9.4" }, "dependencies": { - "@grandom/core": "^1.6.0", - "@grandom/engines": "^1.0.2" + "@grandom/core": "^2.4.0", + "@grandom/engines": "^2.1.0" } } diff --git a/packages/pick/src/RandomPick/index.ts b/packages/pick/src/RandomPick/index.ts index e996642..349220f 100644 --- a/packages/pick/src/RandomPick/index.ts +++ b/packages/pick/src/RandomPick/index.ts @@ -1,8 +1,7 @@ - // TODO: include / exclude / filter function // TODO: implement edge cases (including infinite loops) -import { RandomEngine } from '@grandom/core' +import { RandomGenerator } from '@grandom/core' const DEFAULT_FALLBACK = undefined @@ -82,20 +81,20 @@ const unique = grandom.pick.multiple.unique([1, 2, 3], { count: 2, default: -1 } // } // } -export default class RandomPick { - private readonly _engine: RandomEngine +export default class RandomPick extends RandomGenerator { + // private readonly _engine: RandomEngine - constructor (engine: RandomEngine) { - this._engine = engine + // constructor (engine: RandomEngine) { + // this._engine = engine - // const pick: Pick = (arg1: any, arg2?: any): any => {} - // pick.multiple = (arg1: any, arg2: any): any => {} - // // pick.multiple.unique = (arg1: any, arg2?: any): any => { return () => null } - // pick.unique = (arg1: any, arg2?: any) => { return (): any => null } - // pick.unique.multiple = (arg1: any, arg2: any) => { return (): any => null } + // // const pick: Pick = (arg1: any, arg2?: any): any => {} + // // pick.multiple = (arg1: any, arg2: any): any => {} + // // // pick.multiple.unique = (arg1: any, arg2?: any): any => { return () => null } + // // pick.unique = (arg1: any, arg2?: any) => { return (): any => null } + // // pick.unique.multiple = (arg1: any, arg2: any) => { return (): any => null } - // this.pick = pick - } + // // this.pick = pick + // } // pick: Pick diff --git a/packages/pick/src/index.ts b/packages/pick/src/index.ts index 6c07941..1a625f5 100644 --- a/packages/pick/src/index.ts +++ b/packages/pick/src/index.ts @@ -1,4 +1,4 @@ -import { BasicEngine } from '@grandom/engines' +import BasicEngine from '@grandom/engines/basic' import RandomPick from './RandomPick' const random = new RandomPick(new BasicEngine())