GoScrobble/web/node_modules/jss/src/utils/createRule.js

26 lines
590 B
JavaScript

// @flow
import warning from 'tiny-warning'
import type {Rule, RuleOptions, JssStyle} from '../types'
import cloneStyle from './cloneStyle'
/**
* Create a rule instance.
*/
export default function createRule(
name: string = 'unnamed',
decl: JssStyle,
options: RuleOptions
): Rule | null {
const {jss} = options
const declCopy = cloneStyle(decl)
const rule = jss.plugins.onCreateRule(name, declCopy, options)
if (rule) return rule
// It is an at-rule and it has no instance.
if (name[0] === '@') {
warning(false, `[JSS] Unknown rule ${name}`)
}
return null
}