-
-
Notifications
You must be signed in to change notification settings - Fork 189
/
zotero-plugin.config.ts
82 lines (77 loc) · 2.17 KB
/
zotero-plugin.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import pkg from "./package.json";
import { defineConfig } from "zotero-plugin-scaffold";
import { replaceInFile } from "replace-in-file";
const TEST_PREFS = {};
// Disable user guide, keep in sync with src/modules/userGuide.ts
TEST_PREFS[`${pkg.config.prefsPrefix}.latestTourVersion`] = 1;
export default defineConfig({
source: ["src", "addon"],
dist: "build",
name: pkg.config.addonName,
id: pkg.config.addonID,
namespace: pkg.config.addonRef,
updateURL: `https://github.com/{{owner}}/{{repo}}/releases/download/release/${
pkg.version.includes("-") ? "update-beta.json" : "update.json"
}`,
xpiDownloadLink:
"https://github.com/{{owner}}/{{repo}}/releases/download/v{{version}}/{{xpiName}}.xpi",
server: {
asProxy: false,
},
build: {
assets: ["addon/**/*.*"],
define: {
...pkg.config,
author: pkg.author,
description: pkg.description,
homepage: pkg.homepage,
buildVersion: pkg.version,
buildTime: "{{buildTime}}",
},
esbuildOptions: [
{
entryPoints: ["src/index.ts"],
define: {
__env__: `"${process.env.NODE_ENV}"`,
},
bundle: true,
target: "firefox115",
outfile: `build/addon/chrome/content/scripts/${pkg.config.addonRef}.js`,
},
{
entryPoints: ["src/extras/*.*"],
define: {
__env__: `"${process.env.NODE_ENV}"`,
},
outdir: "build/addon/chrome/content/scripts",
bundle: true,
target: ["firefox115"],
},
],
hooks: {
"build:replace": (ctx) => {
return replaceInFile({
files: ["README.md"],
from: /^ {2}- \[Latest Version.*/gm,
to: ` - [Latest Version: ${ctx.version}](${ctx.xpiDownloadLink})`,
}) as Promise<any>;
},
},
},
release: {
bumpp: {
execute: "npm run build",
all: true,
},
},
test: {
entries: ["test/"],
prefs: TEST_PREFS,
abortOnFail: true,
exitOnFinish: false,
hooks: {},
waitForPlugin: `() => Zotero.${pkg.config.addonRef}.data.initialized`,
},
// If you need to see a more detailed build log, uncomment the following line:
// logLevel: "trace",
});