Skip to content

Instantly share code, notes, and snippets.

@awcodes
Created August 22, 2022 16:05
Show Gist options
  • Save awcodes/b8846894a65fadfd81209a9bcd7e7625 to your computer and use it in GitHub Desktop.
Save awcodes/b8846894a65fadfd81209a9bcd7e7625 to your computer and use it in GitHub Desktop.
const fs = require("fs");
const axios = require("axios").default;
function getStylesArray(css) {
return css
.split("}")
.map(function (rule) {
return rule ? rule.split("{")[0] : "";
})
.filter(function (rule, index, self) {
return self.indexOf(rule) === index;
});
}
function getStylesSelectors(css) {
return css
.split("}")
.map(function (rule) {
return rule ? rule.trim() + "}" : "";
})
.filter(function (rule, index, self) {
return self.indexOf(rule) === index;
});
}
const pluginCss = "./resources/dist/filament-curator.css";
axios
.get("https://raw.githubusercontent.com/filamentphp/filament/2.x/packages/admin/dist/app.css")
.then(({ data }) => {
const pluginStylesRaw = fs.readFileSync(pluginCss, "utf8");
const filamentStylesArray = getStylesArray(data);
let pluginStylesArray = getStylesArray(pluginStylesRaw);
let pluginStyles = getStylesSelectors(pluginStylesRaw);
diffedStyles = pluginStylesArray.filter((val) => !filamentStylesArray.includes(val));
newPluginStyles = pluginStyles.filter((val) => {
return diffedStyles.includes(val.split("{")[0]);
});
fs.writeFileSync(pluginCss, newPluginStyles.join(""));
})
.catch((e) => console.log(e));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment