mirror of
https://github.com/ful1e5/Bibata_Cursor.git
synced 2025-05-24 20:14:29 -04:00
🖼️ BitmapsGenerator init
This commit is contained in:
parent
4329aca7aa
commit
99dde92a8a
3 changed files with 90 additions and 2 deletions
72
bitmapper/packages/core/src/BitmapsGenerator.ts
Normal file
72
bitmapper/packages/core/src/BitmapsGenerator.ts
Normal file
|
@ -0,0 +1,72 @@
|
|||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
import * as puppeteer from "puppeteer";
|
||||
|
||||
class BitmapsGenerator {
|
||||
/**
|
||||
* Generate Png files from svg code.
|
||||
* @param themeName Give name, So all bitmaps files are organized in one directory.
|
||||
* @param bitmapsDir `absolute` or `relative` path, Where `.png` files will store.
|
||||
*/
|
||||
constructor(
|
||||
private bitmapsDir: string,
|
||||
private readonly themeName: string
|
||||
) {
|
||||
this.bitmapsDir = path.resolve(bitmapsDir, themeName);
|
||||
this.createDir(this.bitmapsDir);
|
||||
|
||||
// TODO
|
||||
console.log(this.themeName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare headless browser.
|
||||
*/
|
||||
async initialize() {}
|
||||
|
||||
static async create(bitmapsDir: string, themeName: string) {
|
||||
const newObject = new BitmapsGenerator(bitmapsDir, themeName);
|
||||
await newObject.initialize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create directory if it doesn't exists.
|
||||
* @param dirPath directory `absolute` path.
|
||||
*/
|
||||
private createDir(dirPath: string) {
|
||||
if (!fs.existsSync(dirPath)) {
|
||||
fs.mkdirSync(dirPath, { recursive: true });
|
||||
}
|
||||
}
|
||||
|
||||
protected async staticPng(page: puppeteer.Page) {
|
||||
// TODO
|
||||
console.log("Static");
|
||||
await page.close();
|
||||
}
|
||||
|
||||
protected async animatedPng(page: puppeteer.Page) {
|
||||
// TODO
|
||||
console.log("animated");
|
||||
await page.close();
|
||||
}
|
||||
|
||||
public async getBrowser() {
|
||||
return await puppeteer.launch({
|
||||
ignoreDefaultArgs: [" --single-process ", "--no-sandbox"],
|
||||
headless: true,
|
||||
});
|
||||
}
|
||||
public async toPng(
|
||||
browser: puppeteer.Browser,
|
||||
content: string,
|
||||
animated: boolean = false
|
||||
) {
|
||||
const page = await browser.newPage();
|
||||
await page.setContent(content);
|
||||
|
||||
animated ? this.animatedPng(page) : this.staticPng(page);
|
||||
}
|
||||
}
|
||||
export { BitmapsGenerator };
|
|
@ -1,3 +1,4 @@
|
|||
import { BitmapsGenerator } from "./BitmapsGenerator";
|
||||
import * as SVGHandler from "./SVGHandler";
|
||||
|
||||
export { SVGHandler };
|
||||
export { BitmapsGenerator, SVGHandler };
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
import path from "path";
|
||||
|
||||
import { BitmapsGenerator, SVGHandler } from "bibata-core";
|
||||
|
||||
const root = path.resolve(__dirname, "../../../../");
|
||||
const svgDir = path.resolve(root, "svg", "modern");
|
||||
|
||||
const main = async () => {
|
||||
console.log("Bibata Modern");
|
||||
const SVG = new SVGHandler.SvgDirectoryParser(svgDir);
|
||||
|
||||
SVG.getStatic().forEach((svg) => {
|
||||
console.log(svg);
|
||||
});
|
||||
|
||||
SVG.getAnimated().forEach((svg) => {
|
||||
console.log(svg);
|
||||
});
|
||||
};
|
||||
|
||||
main();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue