view esbuild.config.mjs @ 40:96e86650043b

Fix issues with files opened in multiple panes. The previous code was problematic since it opened files at the top for no obvious reason. Now we always restore any saved state if we have it, and if not we restore the current state from another pane if we find the same file is already open.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 20 Sep 2023 17:18:47 -0700
parents 1c8e46c3e941
children d52beb77d109
line wrap: on
line source

import esbuild from "esbuild";
import process from "process";
import builtins from 'builtin-modules'

const banner =
`/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit one of the following:
https://hg.bolt80.com/obsidian-remember-file-state
https://hg.sr.ht/~ludovicchabant/obsidian-remember-file-state
https://github.com/ludovicchabant/obsidian-remember-file-state
*/
`;

const prod = (process.argv[2] === 'production');

var outdir = (process.argv[2] === 'dogfood' ? process.argv[3] : '');
if (outdir != undefined && outdir != '') {
	if (outdir.slice(-1) != '/' && outdir.slice(-1) != "\\") {
		outdir += '/';
	}
} else {
	throw("Please provide an output directory to put the dog food into");
}

const outfile = outdir + 'main.js';

esbuild.build({
	banner: {
		js: banner,
	},
	entryPoints: ['src/main.ts'],
	bundle: true,
	external: [
		'obsidian',
		'electron',
		'@codemirror/autocomplete',
		'@codemirror/closebrackets',
		'@codemirror/collab',
		'@codemirror/commands',
		'@codemirror/comment',
		'@codemirror/fold',
		'@codemirror/gutter',
		'@codemirror/highlight',
		'@codemirror/history',
		'@codemirror/language',
		'@codemirror/lint',
		'@codemirror/matchbrackets',
		'@codemirror/panel',
		'@codemirror/rangeset',
		'@codemirror/rectangular-selection',
		'@codemirror/search',
		'@codemirror/state',
		'@codemirror/stream-parser',
		'@codemirror/text',
		'@codemirror/tooltip',
		'@codemirror/view',
		...builtins],
	format: 'cjs',
	watch: !prod,
	target: 'es2016',
	logLevel: "info",
	sourcemap: prod ? false : 'inline',
	treeShaking: true,
	outfile: outfile,
}).catch(() => process.exit(1));