import type { Linter } from './interface'; import { lintWarning } from './utils'; const linter: Linter = (key, value, info) => { if (key === 'content') { // From emotion: https://github.com/emotion-js/emotion/blob/main/packages/serialize/src/index.js#L63 const contentValuePattern = /(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\(|(no-)?(open|close)-quote/; const contentValues = ['normal', 'none', 'initial', 'inherit', 'unset']; if ( typeof value !== 'string' || (contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || (value.charAt(0) !== '"' && value.charAt(0) !== "'"))) ) { lintWarning( `You seem to be using a value for 'content' without quotes, try replacing it with \`content: '"${value}"'\`.`, info, ); } } }; export default linter;