Mercurial > obsidian-remember-file-state
view 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 |
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));