Passed
Push — main ( dffd8b...f3f4c9 )
by Andrii
02:15
created

src/map.ts   A

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 26
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 22
dl 0
loc 26
rs 10
c 0
b 0
f 0
wmc 2
mnd 1
bc 1
fnc 1
bpm 1
cpm 2
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A map.ts ➔ classNamesMap 0 19 2
1
import { ClassHash, ClassNamesProperty, CssModule } from "./defs";
2
import {resolver} from "./core"
3
4
const {keys: $keys} = Object
5
6
export default classNamesMap
7
8
function classNamesMap<
9
  Target extends ClassNamesProperty<CssModule>,
10
  Source extends ClassNamesProperty<CssModule>,
11
>(map: {
12
  [T in keyof Target["classnames"]]:
13
    {[S in keyof Source["classnames"]]?: ClassHash}
14
  }
15
): {classnames: {[T in keyof Target["classnames"]]: string}} {
16
  const keys = $keys(map) as (keyof Target["classnames"])[]
17
  , classnames = {} as {[T in keyof Target["classnames"]]: string}
18
19
  for (let i = keys.length; i--;) {
20
    const key = keys[i]
21
    
22
    classnames[key] = resolver(undefined, map[key]).join(" ")
23
  }
24
25
  return {classnames}
26
}