import { readFileSync } from "fs"; import path from "path"; import { stringify, parse } from "css"; export { stringify, parse }; // TODO import.meta.resolve is supposed to accomplish this without "path" const GMI_CSS = path.resolve( path.dirname(new URL(import.meta.url).pathname), "./gmi.css" ); export const CORE = parse(`p, a, pre, h1, h2, h3, ul, blockquote, img, audio, video { display: block; margin: 0; padding: 0; overflow-wrap: anywhere; max-width: 100%; }`); export const FULL = parse(readFileSync(GMI_CSS, "utf-8")); export function rootVariables({ stylesheet }) { return stylesheet.rules .find( ({ type, selectors }) => type === "rule" && selectors.includes(":root") ) .declarations.reduce( (obj, { property, value }) => !/^\-\-/.test(property) ? obj : Object.assign(obj, { [property.replace("--", "")]: value }), {} ); } export function resolve(arg, options) { return stringify(parse(readFileSync(path.resolve(arg), "utf-8")), options); }