refactor darkmode

This commit is contained in:
Mukles
2024-05-16 10:39:54 +06:00
parent d34a3f5489
commit 2379fb3598
+43 -13
View File
@@ -1,20 +1,49 @@
const fs = require("fs");
const path = require("path");
const rootDirs = ["src/pages", "src/hooks", "src/layouts", "src/styles"];
(function () {
const rootDirs = ["src/pages", "src/hooks", "src/layouts", "src/styles"];
const configFiles = [
const deleteAssetList = [
"public/images/logo-darkmode.png",
"src/layouts/components/ThemeSwitcher.astro",
];
const configFiles = [
{
filePath: "tailwind.config.js",
patterns: ["darkmode:\\s*{[^}]*},", 'darkMode:\\s*"class",'],
},
{ filePath: "src/config/theme.json", patterns: ["colors.darkmode"] },
];
];
rootDirs.forEach(removeDarkModeFromPages);
configFiles.forEach(removeDarkMode);
const filePaths = [
{
filePath: "src/layouts/partials/Header.astro",
patterns: [
"<ThemeSwitchers*(?:\\s+[^>]+)?\\s*(?:\\/\\>|>([\\s\\S]*?)<\\/ThemeSwitchers*>)",
],
},
];
function removeDarkModeFromFiles(filePath, regexPatterns) {
filePaths.forEach(({ filePath, patterns }) => {
removeDarkModeFromFiles(filePath, patterns);
});
deleteAssetList.forEach(deleteAsset);
function deleteAsset(asset) {
try {
fs.unlinkSync(asset);
console.log(`${path.basename(asset)} deleted successfully!`);
} catch (error) {
console.error(`${asset} not found`);
}
}
rootDirs.forEach(removeDarkModeFromPages);
configFiles.forEach(removeDarkMode);
function removeDarkModeFromFiles(filePath, regexPatterns) {
const fileContent = fs.readFileSync(filePath, "utf8");
let updatedContent = fileContent;
regexPatterns.forEach((pattern) => {
@@ -22,9 +51,9 @@ function removeDarkModeFromFiles(filePath, regexPatterns) {
updatedContent = updatedContent.replace(regex, "");
});
fs.writeFileSync(filePath, updatedContent, "utf8");
}
}
function removeDarkModeFromPages(directoryPath) {
function removeDarkModeFromPages(directoryPath) {
const files = fs.readdirSync(directoryPath);
files.forEach((file) => {
@@ -38,9 +67,9 @@ function removeDarkModeFromPages(directoryPath) {
]);
}
});
}
}
function removeDarkMode(configFile) {
function removeDarkMode(configFile) {
const { filePath, patterns } = configFile;
if (filePath === "tailwind.config.js") {
removeDarkModeFromFiles(filePath, patterns);
@@ -49,9 +78,9 @@ function removeDarkMode(configFile) {
patterns.forEach((pattern) => deleteNestedProperty(contentFile, pattern));
fs.writeFileSync(filePath, JSON.stringify(contentFile));
}
}
}
function deleteNestedProperty(obj, propertyPath) {
function deleteNestedProperty(obj, propertyPath) {
const properties = propertyPath.split(".");
let currentObj = obj;
for (let i = 0; i < properties.length - 1; i++) {
@@ -63,4 +92,5 @@ function deleteNestedProperty(obj, propertyPath) {
}
}
delete currentObj[properties[properties.length - 1]];
}
}
})();