wails-auto-ipc
Version:
generate single app.go for wails app from multiple files
106 lines (101 loc) • 2.33 kB
JavaScript
// @ts-check
import { readFile, writeFile } from 'fs';
import { xixth } from 'xixth';
const on = {
async failed({ dest, src }) {
console.error({ errorCopy: { dest, src } });
},
async success({ dest, src }) {
console.log({ successCopy: { dest, src } });
},
};
new xixth({
packageName: 'wails-auto-ipc',
pathCopyHandlers: {
vorth: {
src: './vorth-src/',
dest: './vorth-src/',
on,
},
vorthConfig: {
src: './vorth.config.mjs',
dest: './vorth.config.mjs',
on,
},
code: {
src: './.vscode/',
dest: './.vscode/',
on,
},
neinth: {
src: './neinth-src/',
dest: './neinth-src/',
on,
},
readme: {
src: './README.md',
dest: './README.wails-auto-ipc.md',
on,
},
jsconfig: {
src: './jsconfig.json',
dest: './jsconfig.json',
on,
},
packagejson: {
src: './package.tocopy.json',
dest: './package.json',
on,
},
},
flagCallbacks: {
async afterCopy({
/** packageManagerXecutable */ pmx = undefined,
/** packageName */ pn = undefined,
}) {
if (pmx) {
const pathTopackageJson = this.generateProjectAbsolutePath('./package.json');
readFile(pathTopackageJson, (err, content) => {
if (err) {
console.error(err);
return;
}
const newPackagejsonContent = JSON.parse(content.toString());
newPackagejsonContent.scripts = {
dev: `concurrently '${pmx} vorth' '${pmx} neinth' 'wails dev'`,
'fe-dev': `concurrently '${pmx} vorth' '${pmx} neinth'`,
};
writeFile(pathTopackageJson, JSON.stringify(newPackagejsonContent), (err) => {
if (!err) {
return;
}
console.error(err);
});
});
}
if (pn) {
const pathToTemplateApp = this.generateProjectAbsolutePath(
'./neinth-src/wails-auto-ipc/templateApp.mjs'
);
readFile(pathToTemplateApp, (err, content) => {
if (err) {
console.error(err);
return;
}
const newTemplateAppContent = content.toString().replace(
/export\s+class\s+templateApp\s+{\s+static #packageName\s+=\s+'wails-auto-ipc';/gm,
`export class templateApp {
static #packageName = '${pn}';`
);
writeFile(pathToTemplateApp, newTemplateAppContent, (err) => {
if (!err) {
return;
}
console.error(err);
});
});
}
},
},
});