annotate esbuild.config.mjs @ 37:8be02002ed66

Use Obsidian's view APIs for scrolling state Obsidian does some asynchronous formatting upon opening a file which can affect the vertical positioning of things, especially when there are tables for instance. Setting the scrolling position via the CM6 APIs gets invalidated by this, so we're using the Obsidian view API instead even if it only allows getting/setting vertical scrolling (not horizontal).
author Ludovic Chabant <ludovic@chabant.com>
date Mon, 14 Aug 2023 10:44:55 -0700
parents 1c8e46c3e941
children d52beb77d109
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 import esbuild from "esbuild";
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 import process from "process";
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 import builtins from 'builtin-modules'
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 const banner =
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 `/*
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
34
1c8e46c3e941 Add URL to hosted repos in the generated code file.
Ludovic Chabant <ludovic@chabant.com>
parents: 32
diff changeset
8 if you want to view the source, please visit one of the following:
1c8e46c3e941 Add URL to hosted repos in the generated code file.
Ludovic Chabant <ludovic@chabant.com>
parents: 32
diff changeset
9 https://hg.bolt80.com/obsidian-remember-file-state
1c8e46c3e941 Add URL to hosted repos in the generated code file.
Ludovic Chabant <ludovic@chabant.com>
parents: 32
diff changeset
10 https://hg.sr.ht/~ludovicchabant/obsidian-remember-file-state
1c8e46c3e941 Add URL to hosted repos in the generated code file.
Ludovic Chabant <ludovic@chabant.com>
parents: 32
diff changeset
11 https://github.com/ludovicchabant/obsidian-remember-file-state
0
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12 */
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 `;
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 const prod = (process.argv[2] === 'production');
19
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
16
24
61fd7dde51d3 Fix build script
Ludovic Chabant <ludovic@chabant.com>
parents: 19
diff changeset
17 var outdir = (process.argv[2] === 'dogfood' ? process.argv[3] : '');
32
141f0a7d1986 Better error handling for npm dogfood command. Expand the README info.
Ludovic Chabant <ludovic@chabant.com>
parents: 24
diff changeset
18 if (outdir != undefined && outdir != '') {
24
61fd7dde51d3 Fix build script
Ludovic Chabant <ludovic@chabant.com>
parents: 19
diff changeset
19 if (outdir.slice(-1) != '/' && outdir.slice(-1) != "\\") {
61fd7dde51d3 Fix build script
Ludovic Chabant <ludovic@chabant.com>
parents: 19
diff changeset
20 outdir += '/';
61fd7dde51d3 Fix build script
Ludovic Chabant <ludovic@chabant.com>
parents: 19
diff changeset
21 }
32
141f0a7d1986 Better error handling for npm dogfood command. Expand the README info.
Ludovic Chabant <ludovic@chabant.com>
parents: 24
diff changeset
22 } else {
141f0a7d1986 Better error handling for npm dogfood command. Expand the README info.
Ludovic Chabant <ludovic@chabant.com>
parents: 24
diff changeset
23 throw("Please provide an output directory to put the dog food into");
24
61fd7dde51d3 Fix build script
Ludovic Chabant <ludovic@chabant.com>
parents: 19
diff changeset
24 }
61fd7dde51d3 Fix build script
Ludovic Chabant <ludovic@chabant.com>
parents: 19
diff changeset
25
61fd7dde51d3 Fix build script
Ludovic Chabant <ludovic@chabant.com>
parents: 19
diff changeset
26 const outfile = outdir + 'main.js';
0
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 esbuild.build({
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 banner: {
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 js: banner,
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 },
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32 entryPoints: ['src/main.ts'],
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 bundle: true,
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 external: [
19
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
35 'obsidian',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
36 'electron',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
37 '@codemirror/autocomplete',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
38 '@codemirror/closebrackets',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
39 '@codemirror/collab',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
40 '@codemirror/commands',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
41 '@codemirror/comment',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
42 '@codemirror/fold',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
43 '@codemirror/gutter',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
44 '@codemirror/highlight',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
45 '@codemirror/history',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
46 '@codemirror/language',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
47 '@codemirror/lint',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
48 '@codemirror/matchbrackets',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
49 '@codemirror/panel',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
50 '@codemirror/rangeset',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
51 '@codemirror/rectangular-selection',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
52 '@codemirror/search',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
53 '@codemirror/state',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
54 '@codemirror/stream-parser',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
55 '@codemirror/text',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
56 '@codemirror/tooltip',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
57 '@codemirror/view',
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
58 ...builtins],
0
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
59 format: 'cjs',
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
60 watch: !prod,
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
61 target: 'es2016',
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62 logLevel: "info",
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
63 sourcemap: prod ? false : 'inline',
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
64 treeShaking: true,
19
2a9e941c96ee Bring new build tools from the sample plugin project
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
65 outfile: outfile,
0
7975d7c73f8a Initial commit
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66 }).catch(() => process.exit(1));