oberknecht-utils
Advanced tools
Comparing version 1.5.3 to 1.5.4
@@ -1,1 +0,1 @@ | ||
export declare function createID(length_?: number, preventDuplicates_?: boolean): string; | ||
export declare function createID(length?: number, preventDuplicates?: boolean, byPattern?: boolean, patternID_?: number[]): string; |
@@ -7,23 +7,58 @@ "use strict"; | ||
const usedIDs = []; | ||
function createID(length_, preventDuplicates_) { | ||
let preventDuplicates = !(0, _1.isNullUndefined)(preventDuplicates_) | ||
? preventDuplicates_ | ||
let patternIDs = []; | ||
function createID(length, preventDuplicates, byPattern, patternID_) { | ||
let preventDuplicates_ = !(0, _1.isNullUndefined)(preventDuplicates) | ||
? preventDuplicates | ||
: true; | ||
let length = length_ ?? 5; | ||
let byPattern_ = !(0, _1.isNullUndefined)(byPattern) ? byPattern : false; | ||
patternIDs = patternID_ ?? patternIDs; | ||
let length_ = length ?? 5; | ||
let r = ""; | ||
function actualCreateID() { | ||
if (usedIDs.length >= (chars.length ^ length)) | ||
length++; | ||
if (usedIDs.length >= (chars.length ^ length_)) | ||
length_++; | ||
let r2 = ""; | ||
for (let i = 0; i < length; i++) { | ||
for (let i = 0; i < length_; i++) { | ||
r2 += chars.charAt(Math.floor(Math.random() * chars.length)); | ||
} | ||
if (preventDuplicates && usedIDs.includes(r2)) | ||
if (preventDuplicates_ && usedIDs.includes(r2)) | ||
return actualCreateID(); | ||
usedIDs.push(r2); | ||
if (!usedIDs.includes(r2)) | ||
usedIDs.push(r2); | ||
r = r2; | ||
} | ||
actualCreateID(); | ||
function getCharByNum(n) { | ||
return chars[n]; | ||
} | ||
function actualCreatePatternID() { | ||
if (patternIDs.length === 0) | ||
patternIDs = [...Array(length_)].map((a) => 0); | ||
if (patternIDs.at(-1) >= chars.length) { | ||
patternIDs[patternIDs.length - 1] = chars.length - 1; | ||
let foundInPrevious; | ||
for (let i = patternIDs.length; i > 0; i--) { | ||
if (patternIDs[i] < chars.length - 1) { | ||
foundInPrevious = i; | ||
patternIDs[i]++; | ||
patternIDs | ||
.map((a, i2) => [a, i2]) | ||
.slice(i + 1) | ||
.forEach((a) => (patternIDs[a[1]] = 0)); | ||
break; | ||
} | ||
} | ||
if (!foundInPrevious) { | ||
patternIDs.push(0); | ||
patternIDs.forEach((a, i) => (patternIDs[i] = 0)); | ||
} | ||
} | ||
patternIDs.forEach((a) => (r += getCharByNum(a))); | ||
patternIDs[patternIDs.length - 1]++; | ||
} | ||
if (!byPattern_) | ||
actualCreateID(); | ||
else | ||
actualCreatePatternID(); | ||
return r; | ||
} | ||
exports.createID = createID; |
import { isNullUndefined } from "."; | ||
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"; | ||
const usedIDs = []; | ||
let patternIDs = []; | ||
export function createID(length_?: number, preventDuplicates_?: boolean) { | ||
let preventDuplicates = !isNullUndefined(preventDuplicates_) | ||
? preventDuplicates_ | ||
export function createID( | ||
length?: number, | ||
preventDuplicates?: boolean, | ||
byPattern?: boolean, | ||
patternID_?: number[] | ||
) { | ||
let preventDuplicates_ = !isNullUndefined(preventDuplicates) | ||
? preventDuplicates | ||
: true; | ||
let length = length_ ?? 5; | ||
let byPattern_ = !isNullUndefined(byPattern) ? byPattern : false; | ||
patternIDs = patternID_ ?? patternIDs; | ||
let length_ = length ?? 5; | ||
let r = ""; | ||
function actualCreateID() { | ||
if (usedIDs.length >= (chars.length ^ length)) length++; | ||
if (usedIDs.length >= (chars.length ^ length_)) length_++; | ||
let r2 = ""; | ||
for (let i = 0; i < length; i++) { | ||
for (let i = 0; i < length_; i++) { | ||
r2 += chars.charAt(Math.floor(Math.random() * chars.length)); | ||
} | ||
if (preventDuplicates && usedIDs.includes(r2)) return actualCreateID(); | ||
usedIDs.push(r2); | ||
if (preventDuplicates_ && usedIDs.includes(r2)) return actualCreateID(); | ||
if (!usedIDs.includes(r2)) usedIDs.push(r2); | ||
r = r2; | ||
} | ||
actualCreateID(); | ||
function getCharByNum(n: number) { | ||
return chars[n]; | ||
} | ||
function actualCreatePatternID() { | ||
if (patternIDs.length === 0) patternIDs = [...Array(length_)].map((a) => 0); | ||
if (patternIDs.at(-1) >= chars.length) { | ||
patternIDs[patternIDs.length - 1] = chars.length - 1; | ||
let foundInPrevious; | ||
for (let i = patternIDs.length; i > 0; i--) { | ||
if (patternIDs[i] < chars.length - 1) { | ||
foundInPrevious = i; | ||
patternIDs[i]++; | ||
patternIDs | ||
.map((a, i2) => [a, i2]) | ||
.slice(i + 1) | ||
.forEach((a) => (patternIDs[a[1]] = 0)); | ||
break; | ||
} | ||
} | ||
if (!foundInPrevious) { | ||
patternIDs.push(0); | ||
patternIDs.forEach((a, i) => (patternIDs[i] = 0)); | ||
} | ||
} | ||
patternIDs.forEach((a) => (r += getCharByNum(a))); | ||
patternIDs[patternIDs.length - 1]++; | ||
} | ||
if (!byPattern_) actualCreateID(); | ||
else actualCreatePatternID(); | ||
return r; | ||
} |
{ | ||
"name": "oberknecht-utils", | ||
"version": "1.5.3", | ||
"version": "1.5.4", | ||
"description": "Utils for oberknecht packages", | ||
@@ -5,0 +5,0 @@ "main": "./lib-ts/utils/index", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
128533
3489