Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const getter = value => props => {
let res = value
if (!string(value) && !num(value)) return res
const cache = getCacheNamespace(props.theme, `__themeGetter${id}`)
if (cache.has(value)) return cache.get(value)
let variants = is(key) ? getThemeValue(props, key) : null
variants = is(variants) ? variants : defaultVariants
res = is(variants) ? getThemeValue(props, value, variants) : null
res = is(res) ? res : value
const transform =
(name && props.theme && props.theme.transformers
? props.theme.transformers[name]
: null) || defaultTransform
if (transform) {
res = transform(res, {
rawValue: value,
variants,
props,
})
}
res = compose ? compose(res)(props) : res
cache.set(value, res)
}) => props => {
const themeVariants = is(key) ? getThemeValue(props, key) : null
const computedVariants = merge(assign({}, variants), themeVariants)
const value = props[prop] !== undefined ? props[prop] : defaultValue
const result = getThemeValue(props, value, computedVariants)
warn(is(result), `variant "${value}" not found`)
return result
}
const getter = value => props => {
let res = value
if (!string(value) && !num(value)) return res
const cache = getCacheNamespace(props.theme, `__themeGetter${id}`)
if (cache.has(value)) return cache.get(value)
let variants = is(key) ? getThemeValue(props, key) : null
variants = is(variants) ? variants : defaultVariants
res = is(variants) ? getThemeValue(props, value, variants) : null
res = is(res) ? res : value
const transform =
(name && props.theme && props.theme.transformers
? props.theme.transformers[name]
: null) || defaultTransform
if (transform) {
res = transform(res, {
rawValue: value,
variants,
props,
})
}
res = compose ? compose(res)(props) : res
cache.set(value, res)
return res
}
}) => props => {
const themeVariants = is(key) ? getThemeValue(props, key) : null
const computedVariants = merge(assign({}, variants), themeVariants)
const value = props[prop] !== undefined ? props[prop] : defaultValue
const result = getThemeValue(props, value, computedVariants)
warn(is(result), `variant "${value}" not found`)
return result
}
export function getBreakpoints(props) {
const themeBreakpoints = getThemeValue(props, 'breakpoints')
if (is(themeBreakpoints)) return themeBreakpoints
return DEFAULT_BREAKPOINTS
}
transform: (_, { rawValue, variants, props }) => {
if (string(rawValue)) {
const neg = rawValue.startsWith('-')
const absoluteValue = neg ? rawValue.substr(1) : rawValue
const variantValue = getThemeValue(props, absoluteValue, variants)
const value = is(variantValue) ? variantValue : absoluteValue
return neg ? toNegative(value) : value
}
const abs = Math.abs(rawValue)
const neg = negative(rawValue)
const value = is(variants[abs]) ? variants[abs] : abs
return neg ? toNegative(value) : value
},
})
export const th = path => props => {
const value = getThemeValue(props, path)
warn(is(value), `value "${path}" not found in theme`)
return value
}
;[