Skip to content

Commit 07e2722

Browse files
authored
perf: avoid repeated evaluation in each function call (#39)
1 parent dd21a41 commit 07e2722

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

index.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,14 @@ export default function bem(
4242
prefix = defaults.prefix,
4343
} = {},
4444
) {
45-
return (elementOrModifiers?: string | Modifiers, modifiers?: Modifiers) => {
46-
if (namespace && prefix) {
47-
throw new TypeError(`prefix('${prefix}') is deprecated. Use namespace('${namespace}') instead.`)
48-
}
45+
if (namespace && prefix) {
46+
throw new TypeError(`prefix('${prefix}') is deprecated. Use namespace('${namespace}') instead.`)
47+
}
4948

50-
const nsDelim = namespace ? namespaceDelimiter : ''
51-
const pre = prefix || `${namespace}${nsDelim}`
49+
const nsDelim = namespace ? namespaceDelimiter : ''
50+
const pre = prefix || `${namespace}${nsDelim}`
51+
52+
return (elementOrModifiers?: string | Modifiers, modifiers?: Modifiers) => {
5253
let base = `${pre}${block}`
5354

5455
if (!elementOrModifiers) {

test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,9 @@ testCases.forEach(({ description, tested, expectations }) => {
144144

145145
describe('`namespace` and `prefix` at the same time', () => {
146146
it('throws `TypeError`', () => {
147-
const b = block('block', { namespace: 'ns', prefix: 'pre' })
148-
expect(() => b()).toThrow(TypeError)
149-
expect(() => b()).toThrow("prefix('pre') is deprecated. Use namespace('ns') instead.")
147+
const fn = () => block('block', { namespace: 'ns', prefix: 'pre' })
148+
expect(fn).toThrow(TypeError)
149+
expect(fn).toThrow("prefix('pre') is deprecated. Use namespace('ns') instead.")
150150
})
151151
})
152152

0 commit comments

Comments
 (0)