Skip to content

Commit 4185956

Browse files
committed
Fix optimize binding for newly added encoders
The encoders added in 1.3.0 were incorrectly defaulting to the basic custom encoder
1 parent a0f1c0d commit 4185956

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

src/lib/encoder/crockford32.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ import boundEncoder from './boundEncoder'
66
// c: 0123456789 ABCDEFGH JK MN PQRST VWXYZ
77

88
export default (): PuidEncoder => {
9+
const zero = '0'.charCodeAt(0)
910
const A = 'A'.charCodeAt(0)
1011
const J = 'J'.charCodeAt(0)
1112
const M = 'M'.charCodeAt(0)
1213
const P = 'P'.charCodeAt(0)
1314
const V = 'V'.charCodeAt(0)
1415

1516
const puidEncoder = (n: number) => {
16-
if (n < 10) return n
17+
if (n < 10) return n + zero
1718
if (n < 18) return n - 10 + A
1819
if (n < 20) return n - 18 + J
1920
if (n < 22) return n - 20 + M

src/lib/encoder/wordSafe32.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export default (): PuidEncoder => {
2727
if (n === 12) return J
2828
if (n === 13) return M
2929
if (n < 17) return n - 14 + P
30-
if (n < 20) return n - 16 + V
30+
if (n < 20) return n - 17 + V
3131
if (n === 20) return c
3232
if (n < 24) return n - 21 + f
3333
if (n === 24) return j

src/lib/puid.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ test('puid total/risk and bits', (t) => {
4444
const puidGenerator = (config?: PuidConfig): Puid => {
4545
const { generator } = puid(config)
4646
if (generator) return generator
47+
4748
const cxError = () => 'CxError'
4849
// eslint-disable-next-line functional/immutable-data
4950
cxError.info = {

src/lib/puidEncoder.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,36 @@ import { Chars } from './chars'
44
import alphaEncoder from './encoder/alpha'
55
import alphaCaseEncoder from './encoder/alphaCase'
66
import alphaNumEncoder from './encoder/alphaNum'
7+
import base16Encoder from './encoder/base16'
78
import base32Encoder from './encoder/base32'
89
import base32HexCaseEncoder from './encoder/base32HexCase'
10+
import crockford32Encoder from './encoder/crockford32'
911
import customEncoder from './encoder/custom'
1012
import decimalEncoder from './encoder/decimal'
1113
import hexCaseEncoder from './encoder/hexCase'
1214
import safe32Encoder from './encoder/safe32'
1315
import safe64Encoder from './encoder/safe64'
1416
import safeAsciiEncoder from './encoder/safeAscii'
1517
import symbolEncoder from './encoder/symbol'
18+
import wordSafe32Encoder from './encoder/wordSafe32'
1619

1720
export default (chars: string): PuidEncoder => {
1821
if (chars === Chars.Alpha) return alphaEncoder()
1922
if (chars === Chars.AlphaLower) return alphaCaseEncoder()
2023
if (chars === Chars.AlphaUpper) return alphaCaseEncoder(true)
2124
if (chars === Chars.AlphaNum) return alphaNumEncoder()
25+
if (chars === Chars.Base16) return base16Encoder()
2226
if (chars === Chars.Base32) return base32Encoder()
2327
if (chars === Chars.Base32Hex) return base32HexCaseEncoder()
2428
if (chars === Chars.Base32HexUpper) return base32HexCaseEncoder(true)
29+
if (chars === Chars.Crockford32) return crockford32Encoder()
2530
if (chars === Chars.Decimal) return decimalEncoder()
2631
if (chars === Chars.Hex) return hexCaseEncoder()
2732
if (chars === Chars.HexUpper) return hexCaseEncoder(true)
2833
if (chars === Chars.Safe32) return safe32Encoder()
2934
if (chars === Chars.Safe64) return safe64Encoder()
3035
if (chars === Chars.SafeAscii) return safeAsciiEncoder()
3136
if (chars === Chars.Symbol) return symbolEncoder()
37+
if (chars === Chars.WordSafe32) return wordSafe32Encoder()
3238
return customEncoder(chars)
3339
}

0 commit comments

Comments
 (0)