this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

improve random() performance

Patrik Csak c0f65b7e c09a8b78

+16 -11
+1
changelog.md
··· 10 10 ### Changed 11 11 12 12 - **BREAKING**: Require Node.js v20 13 + - Improved performance of `random()` 13 14 14 15 ### Fixed 15 16
+5 -5
package-lock.json
··· 9 9 "version": "4.0.0", 10 10 "license": "MIT", 11 11 "dependencies": { 12 - "random-item": "^4.0.1" 12 + "random-int": "^3.0.0" 13 13 }, 14 14 "devDependencies": { 15 15 "@ava/typescript": "^6.0.0", ··· 6382 6382 ], 6383 6383 "license": "MIT" 6384 6384 }, 6385 - "node_modules/random-item": { 6386 - "version": "4.0.1", 6387 - "resolved": "https://registry.npmjs.org/random-item/-/random-item-4.0.1.tgz", 6388 - "integrity": "sha512-52SyTkFhFm6YP6MN9U5+txr8lBN5/fE2+xjzp1snaDzDNHN8a6Lu/G9fSc3gvD1+bmT+kIS7A0EP9QJQgRBfsg==", 6385 + "node_modules/random-int": { 6386 + "version": "3.0.0", 6387 + "resolved": "https://registry.npmjs.org/random-int/-/random-int-3.0.0.tgz", 6388 + "integrity": "sha512-QvewnOwigesW2WFyTHiQzR6XUUcSQO/BqmfgRz5N5GpGrKQnTf7ebMz8UtuwaET8IfO1n0wLx8/fHsI8E0Jpow==", 6389 6389 "license": "MIT", 6390 6390 "engines": { 6391 6391 "node": ">=12"
+1 -1
package.json
··· 31 31 "test:coverage": "del-cli coverage && eslint && prettier --check . && sort-package-json --check && c8 ava" 32 32 }, 33 33 "dependencies": { 34 - "random-item": "^4.0.1" 34 + "random-int": "^3.0.0" 35 35 }, 36 36 "devDependencies": { 37 37 "@ava/typescript": "^6.0.0",
+9 -5
source/random.ts
··· 1 - import randomItem from 'random-item'; 2 - import range from './range.js'; 1 + import randomInteger from 'random-int'; 2 + import toBb26 from './to-bb26.js'; 3 + import toDecimal from './to-decimal.js'; 3 4 4 5 export default function random(upper: string): string; 5 6 export default function random(lower: string, upper: string): string; ··· 14 15 * @returns Random string 15 16 */ 16 17 export default function random(lower: string, upper?: string): string { 17 - const start = upper ? lower : 'A'; 18 - const end = upper ?? lower; 18 + const lowerDecimal = upper === undefined ? 1 : toDecimal(lower); 19 + const upperDecimal = 20 + upper === undefined ? toDecimal(lower) : toDecimal(upper); 21 + 22 + const integer = randomInteger(lowerDecimal, upperDecimal); 19 23 20 - return randomItem(range(start, end)); 24 + return toBb26(integer); 21 25 }