fix: prevent adaptor wikitext overwrite by tiddlyweb plugin

Try to workaround https://github.com/Jermolene/TiddlyWiki5/issues/7553
This commit is contained in:
lin onetwo 2023-06-19 17:42:44 +08:00
parent 926b0c29c0
commit bd69eefa1a
34 changed files with 80 additions and 52 deletions

View file

@ -7,31 +7,35 @@
import esbuild from 'esbuild';
// put it here, so it can be loaded via `'+plugins/linonetwo/tidgi'` in cli, and get copied in scripts/afterPack.js when copying tiddlywiki (no need to copy this plugin again)
const outDir = path.join(__dirname, '../node_modules/@tiddlygit/tiddlywiki/plugins/linonetwo/tidgi');
await fs.mkdirp(outDir);
const tidgiIpcSyncadaptorOutDir = path.join(__dirname, '../node_modules/@tiddlygit/tiddlywiki/plugins/linonetwo/tidgi-ipc-syncadaptor');
await fs.mkdirp(tidgiIpcSyncadaptorOutDir);
const tsconfigPath = path.join(__dirname, '../tsconfig.json');
const sourceFolder = '../src/services/wiki/plugin/ipcSyncAdaptor';
const tidgiIpcSyncadaptorSourceFolder = '../src/services/wiki/plugin/ipcSyncAdaptor';
const sharedConfig = {
logLevel: 'info',
bundle: true,
// use node so we have `exports`, otherwise `module.adaptorClass` in $:/core/modules/startup.js will be undefined
platform: 'node',
minify: true,
outdir: outDir,
outdir: tidgiIpcSyncadaptorOutDir,
tsconfig: tsconfigPath,
target: 'ESNEXT',
};
await Promise.all([
esbuild.build({
...sharedConfig,
entryPoints: [path.join(__dirname, sourceFolder, 'ipc-syncadaptor.ts')],
entryPoints: [path.join(__dirname, tidgiIpcSyncadaptorSourceFolder, 'ipc-syncadaptor.ts')],
}),
esbuild.build({
...sharedConfig,
entryPoints: [path.join(__dirname, sourceFolder, 'electron-ipc-cat.ts')],
entryPoints: [path.join(__dirname, tidgiIpcSyncadaptorSourceFolder, 'electron-ipc-cat.ts')],
}),
]);
const filterFunc = (src) => {
return !src.endsWith('.ts');
};
await fs.copy(path.join(__dirname, sourceFolder), outDir, { filter: filterFunc });
await fs.copy(path.join(__dirname, tidgiIpcSyncadaptorSourceFolder), tidgiIpcSyncadaptorOutDir, { filter: filterFunc });
const tidgiIpcSyncadaptorUISourceFolder = '../src/services/wiki/plugin/ipcSyncAdaptorUI';
const tidgiIpcSyncadaptorUIOutDir = path.join(__dirname, '../node_modules/@tiddlygit/tiddlywiki/plugins/linonetwo/tidgi-ipc-syncadaptor-ui');
await fs.copy(path.join(__dirname, tidgiIpcSyncadaptorUISourceFolder), tidgiIpcSyncadaptorUIOutDir, { filter: filterFunc });