@mapcss/preset-svg
Version:
SVG as CSS for MapCSS
27 lines (26 loc) • 889 B
JavaScript
import { AtRule, Declaration, isNumber, isObject, isString, prop, Rule, } from "../../deps.js";
const reValidSelector = /(?!\d|-{2}|-\d)[a-zA-Z0-9\u00A0-\uFFFF-_:%-?]/;
export function isValidSelector(selector) {
return reValidSelector.test(selector);
}
export function isBlockDefinition(value) {
if (!isObject(value))
return false;
return Object.values(value).every((v) => isString(v) || isNumber(v));
}
export function isCSSObject(value) {
return isCSSDefinition(value) || isBlockDefinition(value);
}
export function isCSSDefinition(value) {
return isObject(value) && prop("type", value) === "css" &&
isObject(prop("value", value));
}
export function isDeclaration(node) {
return node instanceof Declaration;
}
export function isRule(node) {
return node instanceof Rule;
}
export function isAtRule(node) {
return node instanceof AtRule;
}