mirror of
https://github.com/ful1e5/Bibata_Cursor.git
synced 2025-05-25 04:24:33 -04:00
💅 Code refactor
This commit is contained in:
parent
027b2be19b
commit
6c44d15642
3 changed files with 26 additions and 25 deletions
|
@ -65,7 +65,7 @@ class BitmapsGenerator {
|
||||||
const page = await browser.newPage();
|
const page = await browser.newPage();
|
||||||
const svg = await this.getSvgElement(page, content);
|
const svg = await this.getSvgElement(page, content);
|
||||||
|
|
||||||
const out = path.resolve(this.bitmapsDir, key);
|
const out = path.resolve(this.bitmapsDir, `${key}.png`);
|
||||||
|
|
||||||
console.log("Saving", key, "...");
|
console.log("Saving", key, "...");
|
||||||
await svg.screenshot({ omitBackground: true, path: out });
|
await svg.screenshot({ omitBackground: true, path: out });
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
|
||||||
|
interface Svg {
|
||||||
|
key: string;
|
||||||
|
content: string;
|
||||||
|
}
|
||||||
|
|
||||||
class SvgDirectoryParser {
|
class SvgDirectoryParser {
|
||||||
/**
|
/**
|
||||||
* Manage and Parse SVG file path in `absolute` fashion.
|
* Manage and Parse SVG file path in `absolute` fashion.
|
||||||
|
@ -18,10 +23,16 @@ class SvgDirectoryParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private readData(f: string): Svg {
|
||||||
|
const content = fs.readFileSync(f, "utf-8");
|
||||||
|
const key = path.basename(f, ".svg");
|
||||||
|
return { content, key };
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return absolute paths array of SVG files located inside '@svgDir/static'
|
* Return absolute paths array of SVG files data located inside '@svgDir/static'
|
||||||
*/
|
*/
|
||||||
public getStatic(): string[] {
|
public getStatic(): Svg[] {
|
||||||
const staticDir = path.resolve(this.svgDir, "static");
|
const staticDir = path.resolve(this.svgDir, "static");
|
||||||
|
|
||||||
if (!fs.existsSync(staticDir)) {
|
if (!fs.existsSync(staticDir)) {
|
||||||
|
@ -29,38 +40,37 @@ class SvgDirectoryParser {
|
||||||
this.semiAnimated = true;
|
this.semiAnimated = true;
|
||||||
return [];
|
return [];
|
||||||
} else {
|
} else {
|
||||||
const staticCursors = fs
|
const svgs = fs
|
||||||
.readdirSync(staticDir)
|
.readdirSync(staticDir)
|
||||||
.map((f) => path.resolve(staticDir, f));
|
.map((f) => this.readData(path.resolve(staticDir, f)));
|
||||||
|
|
||||||
if (staticCursors.length == 0) {
|
if (svgs.length == 0) {
|
||||||
throw new Error("Static Cursors directory is empty");
|
throw new Error("Static Cursors directory is empty");
|
||||||
}
|
}
|
||||||
return staticCursors;
|
return svgs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return absolute paths array of SVG files located inside '@svgDir/animated'
|
* Return absolute paths array of SVG files data located inside '@svgDir/animated'
|
||||||
*/
|
*/
|
||||||
public getAnimated(): string[] {
|
public getAnimated(): Svg[] {
|
||||||
const animatedDir = path.resolve(this.svgDir, "animated");
|
const animatedDir = path.resolve(this.svgDir, "animated");
|
||||||
|
|
||||||
if (!fs.existsSync(animatedDir)) {
|
if (!fs.existsSync(animatedDir)) {
|
||||||
throw new Error("Animated Cursors directory not found");
|
throw new Error("Animated Cursors directory not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
const animatedCursors = fs
|
const svgs = fs
|
||||||
.readdirSync(animatedDir)
|
.readdirSync(animatedDir)
|
||||||
.map((f) => path.resolve(animatedDir, f));
|
.map((f) => this.readData(path.resolve(animatedDir, f)));
|
||||||
|
|
||||||
if (animatedCursors.length == 0 && this.semiAnimated) {
|
if (svgs.length == 0 && this.semiAnimated) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Can't parse svg directory ${this.svgDir} as semi-animated theme`
|
`Can't parse svg directory ${this.svgDir} as semi-animated theme`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return animatedCursors;
|
return svgs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import fs from "fs";
|
|
||||||
|
|
||||||
import { BitmapsGenerator, SVGHandler } from "bibata-core";
|
import { BitmapsGenerator, SVGHandler } from "bibata-core";
|
||||||
import { Colors } from "bibata-core/src/types";
|
import { Colors } from "bibata-core/src/types";
|
||||||
|
@ -24,21 +23,13 @@ const main = async () => {
|
||||||
const png = new BitmapsGenerator(bitmapsDir);
|
const png = new BitmapsGenerator(bitmapsDir);
|
||||||
const browser = await png.getBrowser();
|
const browser = await png.getBrowser();
|
||||||
|
|
||||||
for (const svg of SVG.getStatic()) {
|
for (let { key, content } of SVG.getStatic()) {
|
||||||
const key = `${path.basename(svg, ".svg")}.png`;
|
|
||||||
|
|
||||||
let content = fs.readFileSync(svg, "utf-8");
|
|
||||||
content = SVGHandler.colorSvg(content, color);
|
content = SVGHandler.colorSvg(content, color);
|
||||||
|
|
||||||
await png.generateStatic(browser, content, key);
|
await png.generateStatic(browser, content, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const svg of SVG.getAnimated()) {
|
for (let { key, content } of SVG.getAnimated()) {
|
||||||
const key = `${path.basename(svg, ".svg")}.png`;
|
|
||||||
|
|
||||||
let content = fs.readFileSync(svg, "utf-8");
|
|
||||||
content = SVGHandler.colorSvg(content, color);
|
content = SVGHandler.colorSvg(content, color);
|
||||||
|
|
||||||
await png.generateAnimated(browser, content, key);
|
await png.generateAnimated(browser, content, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue