Files
react-native-svg/src/lib/extract/extractBrush.ts
2019-09-09 05:44:29 +03:00

36 lines
825 B
TypeScript

import extractColor, { integerColor } from './extractColor';
import { Color } from './types';
const urlIdPattern = /^url\(#(.+)\)$/;
const currentColorBrush = [2];
export default function extractBrush(color?: Color) {
if (typeof color === 'number') {
if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {
return [0, integerColor(color)];
}
}
if (!color || color === 'none') {
return null;
}
if (color === 'currentColor') {
return currentColorBrush;
}
const brush = typeof color === 'string' && color.match(urlIdPattern);
if (brush) {
return [1, brush[1]];
}
const int32ARGBColor = extractColor(color);
if (typeof int32ARGBColor === 'number') {
return [0, int32ARGBColor];
}
console.warn(`"${color}" is not a valid color or brush`);
return null;
}