diff --git a/.gitignore b/.gitignore index c8e8adf..9234a9f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ coverage/ .vscode/ package-lock.json yarn.lock -*.log \ No newline at end of file +*.log +test/__*__.js \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index a794ffd..c3ff80d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. +## [v1.0.2](https://github.com/pauldenver/generate-api-key/compare/v1.0.1...v1.0.2) + +### Bug Fixes + +* Updated how the key length is determined when using the `bytes` method ([#3](https://github.com/pauldenver/generate-api-key/issues/3)). +* Fixed a typo in the `chance.natural` usage in the `string` method. + ## [v1.0.1](https://github.com/pauldenver/generate-api-key/compare/v1.0.0...v1.0.1) ### Features diff --git a/dist/generate_api_key.d.ts.map b/dist/generate_api_key.d.ts.map index 7f27e90..554fe69 100644 --- a/dist/generate_api_key.d.ts.map +++ b/dist/generate_api_key.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"generate_api_key.d.ts","sourceRoot":"","sources":["../src/generate_api_key.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,iBAAiB,EACjB,aAAa,EAMd,MAAM,SAAS,CAAC;AAsNjB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,aAAa,iBAAiB,KAAQ,aAgDhE,CAAC;AAEF,eAAe,cAAc,CAAC"} \ No newline at end of file +{"version":3,"file":"generate_api_key.d.ts","sourceRoot":"","sources":["../src/generate_api_key.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,iBAAiB,EACjB,aAAa,EAMd,MAAM,SAAS,CAAC;AAkNjB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,aAAa,iBAAiB,KAAQ,aAgDhE,CAAC;AAEF,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/dist/generate_api_key.js b/dist/generate_api_key.js index 2693318..3653d82 100644 --- a/dist/generate_api_key.js +++ b/dist/generate_api_key.js @@ -19,7 +19,7 @@ const constants_1 = require("./constants"); * @returns The API key. */ const getCryptoApiKey = (options) => { - let totalBytes; + var _a; let apiKey; // Get the options. options = (0, utils_1.getOptions)(options, { @@ -28,24 +28,18 @@ const getCryptoApiKey = (options) => { }); // Get a 'Chance' instance. const chance = new chance_1.default(); - if (options.length) { - totalBytes = Math.ceil(options.length / 2); - } - else { - // Get a random number. - const numVal = chance.natural({ min: options.min, max: options.max }); - // Set the total bytes. - totalBytes = Math.ceil(numVal / 2); - } + // Determine the length for the key. + const length = (_a = options.length) !== null && _a !== void 0 ? _a : chance.natural({ + min: options.min, + max: options.max + }); + // Set the total bytes. + const totalBytes = Math.ceil(length / 2); // Generate the API key. apiKey = (0, crypto_1.randomBytes)(totalBytes).toString('hex'); // Check the key length. - if (options.length && (apiKey.length > options.length)) { - const endIndex = apiKey.length - (apiKey.length - options.length); - apiKey = apiKey.slice(0, endIndex); - } - else if (apiKey.length > options.max) { - const endIndex = apiKey.length - (apiKey.length - options.max); + if (apiKey.length > length) { + const endIndex = apiKey.length - (apiKey.length - length); apiKey = apiKey.slice(0, endIndex); } return apiKey; @@ -69,7 +63,7 @@ const getRandomStringApiKey = (options) => { // Determine the length for the key. const length = (_a = options.length) !== null && _a !== void 0 ? _a : chance.natural({ min: options.min, - max: options.min + max: options.max }); // Generate the string. return chance.string({ length, pool: options.pool }); diff --git a/dist/generate_api_key.js.map b/dist/generate_api_key.js.map index cfdec75..650d2bd 100644 --- a/dist/generate_api_key.js.map +++ b/dist/generate_api_key.js.map @@ -1 +1 @@ -{"version":3,"file":"generate_api_key.js","sourceRoot":"","sources":["../src/generate_api_key.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"generate_api_key.js","sourceRoot":"","sources":["../src/generate_api_key.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index b4a106c..c0e7d66 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "generate-api-key", "description": "A library for generating random API key/access tokens", - "version": "1.0.1", + "version": "1.0.2", "main": "./dist/index.js", "types": "./dist/index.d.ts", "keywords": [ diff --git a/src/generate_api_key.ts b/src/generate_api_key.ts index 62d2e52..569e8e4 100644 --- a/src/generate_api_key.ts +++ b/src/generate_api_key.ts @@ -38,7 +38,6 @@ import { * @returns The API key. */ const getCryptoApiKey = (options: BytesGenerationOptions): string => { - let totalBytes: number; let apiKey: string; // Get the options. @@ -50,24 +49,21 @@ const getCryptoApiKey = (options: BytesGenerationOptions): string => { // Get a 'Chance' instance. const chance = new Chance(); - if (options.length) { - totalBytes = Math.ceil(options.length / 2); - } else { - // Get a random number. - const numVal = chance.natural({ min: options.min, max: options.max }); - // Set the total bytes. - totalBytes = Math.ceil(numVal / 2); - } + // Determine the length for the key. + const length = options.length ?? chance.natural({ + min: options.min, + max: options.max + }); + + // Set the total bytes. + const totalBytes = Math.ceil(length / 2); // Generate the API key. apiKey = randomBytes(totalBytes).toString('hex'); // Check the key length. - if (options.length && (apiKey.length > options.length)) { - const endIndex = apiKey.length - (apiKey.length - options.length); - apiKey = apiKey.slice(0, endIndex); - } else if (apiKey.length > options.max) { - const endIndex = apiKey.length - (apiKey.length - options.max); + if (apiKey.length > length) { + const endIndex = apiKey.length - (apiKey.length - length); apiKey = apiKey.slice(0, endIndex); } @@ -94,7 +90,7 @@ const getRandomStringApiKey = (options: StringGenerationOptions): string => { // Determine the length for the key. const length = options.length ?? chance.natural({ min: options.min, - max: options.min + max: options.max }); // Generate the string.