UNPKG

react-scoped-styles

Version:
24 lines (23 loc) 945 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const include_hash_1 = require("./lib/include-hash"); const dirhash_1 = require("./lib/dirhash"); const classRegex = /(?<=\.)[_a-zA-Z]+[_a-zA-Z0-9-]*/g; const ruleBodyRegex = /\{.*?\}/g; function styleLoader(source) { var _a; const includeHash = (0, include_hash_1.getInclude)(this); const strippedSrc = source.replace(ruleBodyRegex, ''); const dirHash = (0, dirhash_1.createDirHash)(this.context); const classes = (_a = strippedSrc .match(classRegex)) === null || _a === void 0 ? void 0 : _a.reduce((acc, curr) => { return acc.includes(curr) ? acc : acc.concat(curr); }, []); let ret = source; classes === null || classes === void 0 ? void 0 : classes.forEach(className => { ret = ret.replace(new RegExp(className, 'g'), c => includeHash(c, dirHash)); }); return ret; } exports.default = styleLoader; ;