UNPKG

@lusito/require-libs

Version:

Some libraries to setup require hooks

36 lines (35 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addScopes = addScopes; const regex_1 = require("./regex"); function addScopes(css, generateScopedName) { const result = { css, keyframes: {}, classes: {} }; result.css = result.css .replace(regex_1.classRegex, (_, prefix, name) => { const scopedName = generateScopedName(name); result.classes[name] = scopedName; return prefix + scopedName; }) .replace(regex_1.keyframesRegex, (_, prefix, name) => { if (prefix.startsWith("@-global-")) { return prefix.replace("@-global-", "@") + name; } const scopedName = generateScopedName(name); result.keyframes[name] = scopedName; return prefix + scopedName; }); return replaceAnimations(result); } function replaceAnimations(result) { const unscoped = Object.keys(result.keyframes); if (!unscoped.length) return result; const regexStr = `((?:animation|animation-name)\\s*:[^};]*)(${unscoped.join("|")})([;\\s])${regex_1.ignoreComments}`; const regex = new RegExp(regexStr, "g"); const css = result.css.replace(regex, (_, preamble, name, ending) => `${preamble}${result.keyframes[name]}${ending}`); return { css, keyframes: result.keyframes, classes: result.classes, }; }