Skip to content

Commit 37addfb

Browse files
refactor: change rotateAndMultiply to higher order fn
1 parent 3ac40de commit 37addfb

File tree

4 files changed

+9
-6
lines changed

4 files changed

+9
-6
lines changed

src/affine.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ const transform = (input, options) => {
1616
if (!LEGAL_MULT_KEYS.includes(options.keys[0])) {
1717
throw new Error('Illegal keys')
1818
}
19+
const rotateAndMultiplyWithOptions = rotateAndMultiply(getConfig(options))
1920

20-
return [...input].map(c => rotateAndMultiply(c, getRotateAndMultiplyConfig(options))).join('')
21+
return [...input].map(rotateAndMultiplyWithOptions).join('')
2122
}
2223

23-
const getRotateAndMultiplyConfig = options => ({
24+
const getConfig = options => ({
2425
types: [ROTATE_AND_MULTIPLY_TYPES.LOWERCASE, ROTATE_AND_MULTIPLY_TYPES.UPPERCASE],
2526
keys: options.keys,
2627
failOnUnknownCharacter: options.failOnUnknownCharacter,

src/helpers/rotateAndMultiply.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { modInverse, throwOrSilent } from './index'
22

3-
export const rotateAndMultiply = (c, options) => {
3+
export const rotateAndMultiply = options => c => {
44
options = { ...DEFAULT_ROTATE_AND_MULTIPLY_OPTIONS, ...options }
55
const type = getType(c)
66

src/multiplicative.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ const transform = (input, options) => {
1616
if (!LEGAL_KEYS.includes(options.key)) {
1717
throw new Error('Illegal key')
1818
}
19+
const rotateAndMultiplyWithOptions = rotateAndMultiply(getConfig(options))
1920

20-
return [...input].map(c => rotateAndMultiply(c, getRotateAndMultiplyConfig(options))).join('')
21+
return [...input].map(rotateAndMultiplyWithOptions).join('')
2122
}
2223

2324
const DEFAULT_OPTIONS = {
@@ -26,7 +27,7 @@ const DEFAULT_OPTIONS = {
2627
omitUnknownCharacter: false
2728
}
2829

29-
const getRotateAndMultiplyConfig = options => ({
30+
const getConfig = options => ({
3031
types: [ROTATE_AND_MULTIPLY_TYPES.LOWERCASE, ROTATE_AND_MULTIPLY_TYPES.UPPERCASE],
3132
keys: [options.key, 0],
3233
failOnUnknownCharacter: options.failOnUnknownCharacter,

src/rot.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ import { ROTATE_AND_MULTIPLY_TYPES, rotateAndMultiply } from './helpers/rotateAn
1717

1818
export default (input, options = {}) => {
1919
options = { ...DEFAULT_OPTIONS, ...options }
20-
return [...input].map(c => rotateAndMultiply(c, getConfig(options))).join('')
20+
const rotateAndMultiplyWithOptions = rotateAndMultiply(getConfig(options))
21+
return [...input].map(rotateAndMultiplyWithOptions).join('')
2122
}
2223

2324
const getConfig = options => ({

0 commit comments

Comments
 (0)