mirror of
https://github.com/sern-handler/cli
synced 2026-06-23 08:12:20 +00:00
* chore: start publish work * chore: more debug... who overwrote! permalink: http://whatthecommit.com/2e6bbd4fd1a21e16039ce52216c3c0b4 * update node version requirement (#106) * update node version requirement * publish progress * progress on publish * style: pretty pretty * chore: some progress i guess? * more progress on publish command * chore: remove magicast * more progress on command data * fix: adding extra fields to json output * fix: stringify again * rest field cli * style: run prettier * chore: friday 5pm permalink: http://whatthecommit.com/502256b954264d50f29967e1fef8394b * prettier and more progress on publish * progress on publishing * config can be function and publishing seems to be working correctly * fix, made mistakes * fix guild command publishing * fix guild ids not publishing correctly * edit correctly * upgrade fire readiers * refactor and separate some stuff * ^ * add default_member_permissions * refator * refactors * publish functionality done * seems like attachment loading works correctly * extrapolate * code splitting and faster startup * fix up bugs * forgot to merge prompts/plugin * remove unneeded esbuild plugin for simple define * build auto generate typings * fix: template dir after switching commands to dynamic imports * update preprocessor * fix: add experimental warning to publish and build * fix vulnerability * oops, false alarm * better sern.build.js config support * chore: remove pnpm lock * cleaner build and also some cli options * fix regression * add more cli options * optimize * no any --------- Co-authored-by: EvolutionX <evolutionx9777@gmail.com>
52 lines
1.8 KiB
TypeScript
52 lines
1.8 KiB
TypeScript
import { mkdir, readFile, writeFile } from 'fs/promises';
|
|
import { dirname, resolve } from 'node:path';
|
|
import { fileURLToPath, URL } from 'url';
|
|
const root = new URL('../../', import.meta.url);
|
|
const templates = new URL('./templates/', root);
|
|
const extraURL = new URL('./extra/', templates);
|
|
const extraFolder = fileURLToPath(extraURL);
|
|
|
|
/**
|
|
* It creates a file with the name `name.lang.sern` in the `location` directory
|
|
* @param name - The name of the file.
|
|
* @param lang - The language you want to use.
|
|
* @param location - The location of the file to be created.
|
|
* @param no_ext - If true, the file will be created without an extension.
|
|
*/
|
|
|
|
export async function create(name: string, lang: string, location: string, no_ext: boolean) {
|
|
const file = `${name}.${lang}.sern`;
|
|
|
|
const target = no_ext ? `${location}/${name}` : `${location}/${name}.${lang}`;
|
|
|
|
return createFile(file, target);
|
|
}
|
|
|
|
/**
|
|
* It reads a file from a template folder, and writes it to a target folder
|
|
* @param template - The name of the file to be created.
|
|
* @param target - The location of the file to be created.
|
|
*/
|
|
async function createFile(template: string, target: string) {
|
|
const location = `${extraFolder}${template}`;
|
|
|
|
const file = await readFile(location, 'utf8');
|
|
|
|
await writeFileRecursive(target, file);
|
|
}
|
|
|
|
/**
|
|
* It creates a directory recursively, then writes a file to it
|
|
* @param target - The path to the file you want to write to.
|
|
* @param data - The data to write to the file.
|
|
* @returns A promise that resolves to the result of the writeFile function.
|
|
*/
|
|
async function writeFileRecursive(target: string, data: string) {
|
|
const resolvedTarget = resolve(target);
|
|
const dir = dirname(resolvedTarget);
|
|
|
|
await mkdir(dir, { recursive: true });
|
|
|
|
return writeFile(resolvedTarget, data);
|
|
}
|