UNPKG

shopify-accelerate

Version:

Shopify Theme development with full Typescript Support

49 lines (42 loc) 1.51 kB
import chalk from "chalk"; import fs from "fs"; import path from "path"; import { config, root_dir } from "../../shopify-accelerate"; import { deleteFile, writeCompareFile, writeOnlyNew } from "../utils/fs"; export const generateAssetFiles = () => { const { theme_path, sources, targets, delete_external_assets, ignore_assets } = config; sources.assets.forEach((file) => { const fileName = file.split(/[\\/]/gi).at(-1); const targetPath = path.join(process.cwd(), theme_path, "assets", fileName); const rawContent = fs.readFileSync(file, { encoding: "utf-8" }); if (ignore_assets?.includes(targetPath.split(/[/\\]/)?.at(-1))) { console.log( `[${chalk.gray(new Date().toLocaleTimeString())}]: ${chalk.greenBright( `Ignored: ${targetPath.replace(process.cwd(), "")}` )}` ); writeOnlyNew(targetPath, rawContent); } else { writeCompareFile(targetPath, rawContent); } }); if (delete_external_assets) { targets.assets.forEach((file) => { const fileName = file.split(/[\\/]/gi).at(-1); const targetFile = sources.assets.find((sourcePath) => sourcePath.split(/[\\/]/gi).at(-1).includes(fileName) ); if ( /^replo/gi.test(fileName) || /^pandectes/gi.test(fileName) || /^locksmith/gi.test(fileName) || /^shogun/gi.test(fileName) ) { return; } if (!targetFile) { deleteFile(path.join(process.cwd(), file)); } }); } };