Skip to content

Commit e91a8db

Browse files
committed
refactor: improve build scripts and add git env vars
1 parent 21efbf3 commit e91a8db

8 files changed

Lines changed: 144 additions & 153 deletions

scripts/build-app.js

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,13 @@
88

99
import { build } from "vite";
1010
import { svelte } from "@sveltejs/vite-plugin-svelte";
11-
12-
/**
13-
* Define default vite config options
14-
* Disable auto resolving {@link vite.config.js}
15-
* @see {@link https://vitejs.dev/config/ Config}
16-
* @see {@link https://vitejs.dev/guide/api-javascript.html#inlineconfig configFile}
17-
* @type {import("vite").InlineConfig}
18-
*/
19-
const defineConfig = {
20-
base: "./",
21-
configFile: false,
22-
};
11+
import { baseConfig } from "./utils.js";
2312

2413
/**
2514
* Build App-Shared WebView resources to xcode dist
2615
*/
2716
build({
28-
...defineConfig,
17+
...baseConfig,
2918
plugins: [svelte()],
3019
build: {
3120
outDir: "xcode/App-Shared/Resources/dist/",

scripts/build-ext-demo.js

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,16 @@
55

66
import { build } from "vite";
77
import { svelte } from "@sveltejs/vite-plugin-svelte";
8-
import { cp, emptyBuildDir, rootDir } from "./utils.js";
8+
import * as Utils from "./utils.js";
99

10-
/**
11-
* Define default vite config options
12-
* Disable auto resolving {@link vite.config.js}
13-
* @see {@link https://vitejs.dev/config/ Config}
14-
* @see {@link https://vitejs.dev/guide/api-javascript.html#inlineconfig InlineConfig}
15-
* @type {import("vite").InlineConfig}
16-
*/
17-
const defineConfig = {
18-
configFile: false,
19-
envFile: false,
20-
root: await rootDir(),
21-
base: "./",
10+
/** @type {import("vite").InlineConfig} */
11+
const sharedConfig = {
12+
...Utils.baseConfig,
2213
mode: "development",
14+
2315
define: {
24-
"import.meta.env.BROWSER": JSON.stringify("Safari"),
25-
"import.meta.env.NATIVE_APP": JSON.stringify("app"),
16+
...Utils.baseConfig.define,
2617
"import.meta.env.SAFARI_VERSION": JSON.stringify(15),
27-
"import.meta.env.SAFARI_PLATFORM": JSON.stringify(
28-
process.env.SAFARI_PLATFORM,
29-
),
3018
"import.meta.env.EXT_DEMO_BUILD": JSON.stringify(true),
3119
},
3220
};
@@ -35,12 +23,12 @@ const defineConfig = {
3523
* Empty resources directory
3624
* Copy public static assets
3725
*/
38-
await emptyBuildDir("dist");
39-
cp("public/ext/shared", "dist");
26+
await Utils.emptyBuildDir("dist");
27+
Utils.cp("public/ext/shared", "dist");
4028

4129
/** Build shared modules */
4230
build({
43-
...defineConfig,
31+
...sharedConfig,
4432
plugins: [svelte()],
4533
publicDir: "public/ext/vendor/",
4634
build: {

scripts/build-ext-safari-15.js

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,14 @@
1616

1717
import { build } from "vite";
1818
import { svelte } from "@sveltejs/vite-plugin-svelte";
19-
import { cp, emptyBuildDir, rootDir, SAFARI_EXT_RESOURCES } from "./utils.js";
19+
import * as Utils from "./utils.js";
2020

21-
/**
22-
* Define default vite config options
23-
* Disable auto resolving {@link vite.config.js}
24-
* @see {@link https://vitejs.dev/config/ Config}
25-
* @see {@link https://vitejs.dev/guide/api-javascript.html#inlineconfig InlineConfig}
26-
* @type {import("vite").InlineConfig}
27-
*/
28-
const defineConfig = {
29-
configFile: false,
30-
envFile: false,
31-
root: await rootDir(),
32-
base: "./",
21+
/** @type {import("vite").InlineConfig} */
22+
const sharedConfig = {
23+
...Utils.baseConfig,
3324
define: {
34-
"import.meta.env.BROWSER": JSON.stringify("Safari"),
35-
"import.meta.env.NATIVE_APP": JSON.stringify("app"),
25+
...Utils.baseConfig.define,
3626
"import.meta.env.SAFARI_VERSION": JSON.stringify(15),
37-
"import.meta.env.SAFARI_PLATFORM": JSON.stringify(
38-
process.env.SAFARI_PLATFORM,
39-
),
4027
},
4128
};
4229
const sourcemap = process.env.BETA ? true : false;
@@ -45,9 +32,9 @@ const sourcemap = process.env.BETA ? true : false;
4532
* Empty resources directory
4633
* Copy public static assets
4734
*/
48-
await emptyBuildDir(SAFARI_EXT_RESOURCES);
49-
cp("public/ext/shared", SAFARI_EXT_RESOURCES);
50-
cp("public/ext/safari-15", SAFARI_EXT_RESOURCES);
35+
await Utils.emptyBuildDir(Utils.SAFARI_EXT_RESOURCES);
36+
Utils.cp("public/ext/shared", Utils.SAFARI_EXT_RESOURCES);
37+
Utils.cp("public/ext/safari-15", Utils.SAFARI_EXT_RESOURCES);
5138

5239
/** Build content scripts */
5340
[
@@ -56,9 +43,9 @@ cp("public/ext/safari-15", SAFARI_EXT_RESOURCES);
5643
{ "script-market": "src/ext/content-scripts/entry-script-market.js" },
5744
].forEach((input) => {
5845
build({
59-
...defineConfig,
46+
...sharedConfig,
6047
build: {
61-
outDir: `${SAFARI_EXT_RESOURCES}/dist/content-scripts/`,
48+
outDir: `${Utils.SAFARI_EXT_RESOURCES}/dist/content-scripts/`,
6249
emptyOutDir: false,
6350
copyPublicDir: false,
6451
sourcemap,
@@ -72,9 +59,9 @@ cp("public/ext/safari-15", SAFARI_EXT_RESOURCES);
7259

7360
/** Build background scripts */
7461
build({
75-
...defineConfig,
62+
...sharedConfig,
7663
build: {
77-
outDir: `${SAFARI_EXT_RESOURCES}/dist/`,
64+
outDir: `${Utils.SAFARI_EXT_RESOURCES}/dist/`,
7865
emptyOutDir: false,
7966
copyPublicDir: false,
8067
sourcemap,
@@ -87,11 +74,11 @@ build({
8774

8875
/** Build shared modules */
8976
build({
90-
...defineConfig,
77+
...sharedConfig,
9178
plugins: [svelte()],
9279
publicDir: "public/ext/vendor/",
9380
build: {
94-
outDir: `${SAFARI_EXT_RESOURCES}/dist/`,
81+
outDir: `${Utils.SAFARI_EXT_RESOURCES}/dist/`,
9582
emptyOutDir: false,
9683
sourcemap,
9784
rollupOptions: {

scripts/build-ext-safari-16.4.js

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,14 @@
1515

1616
import { build } from "vite";
1717
import { svelte } from "@sveltejs/vite-plugin-svelte";
18-
import { cp, emptyBuildDir, rootDir, SAFARI_EXT_RESOURCES } from "./utils.js";
18+
import * as Utils from "./utils.js";
1919

20-
/**
21-
* Define default vite config options
22-
* Disable auto resolving {@link vite.config.js}
23-
* @see {@link https://vitejs.dev/config/ Config}
24-
* @see {@link https://vitejs.dev/guide/api-javascript.html#inlineconfig configFile}
25-
* @type {import("vite").InlineConfig}
26-
*/
27-
const defineConfig = {
28-
configFile: false,
29-
envFile: false,
30-
root: await rootDir(),
31-
base: "./",
20+
/** @type {import("vite").InlineConfig} */
21+
const sharedConfig = {
22+
...Utils.baseConfig,
3223
define: {
33-
"import.meta.env.BROWSER": JSON.stringify("Safari"),
34-
"import.meta.env.NATIVE_APP": JSON.stringify("app"),
24+
...Utils.baseConfig.define,
3525
"import.meta.env.SAFARI_VERSION": JSON.stringify(16.4),
36-
"import.meta.env.SAFARI_PLATFORM": JSON.stringify(
37-
process.env.SAFARI_PLATFORM,
38-
),
3926
},
4027
};
4128
const sourcemap = process.env.BETA ? true : false;
@@ -44,9 +31,9 @@ const sourcemap = process.env.BETA ? true : false;
4431
* Empty resources directory
4532
* Copy public static assets
4633
*/
47-
await emptyBuildDir(SAFARI_EXT_RESOURCES);
48-
cp("public/ext/shared", SAFARI_EXT_RESOURCES);
49-
cp("public/ext/safari-16.4", SAFARI_EXT_RESOURCES);
34+
await Utils.emptyBuildDir(Utils.SAFARI_EXT_RESOURCES);
35+
Utils.cp("public/ext/shared", Utils.SAFARI_EXT_RESOURCES);
36+
Utils.cp("public/ext/safari-16.4", Utils.SAFARI_EXT_RESOURCES);
5037

5138
/** Build content scripts */
5239
[
@@ -55,9 +42,9 @@ cp("public/ext/safari-16.4", SAFARI_EXT_RESOURCES);
5542
{ "script-market": "src/ext/content-scripts/entry-script-market.js" },
5643
].forEach((input) => {
5744
build({
58-
...defineConfig,
45+
...sharedConfig,
5946
build: {
60-
outDir: `${SAFARI_EXT_RESOURCES}/dist/content-scripts/`,
47+
outDir: `${Utils.SAFARI_EXT_RESOURCES}/dist/content-scripts/`,
6148
emptyOutDir: false,
6249
copyPublicDir: false,
6350
sourcemap,
@@ -75,9 +62,9 @@ cp("public/ext/safari-16.4", SAFARI_EXT_RESOURCES);
7562
* Currently build classic script separately to avoid this error
7663
*/
7764
build({
78-
...defineConfig,
65+
...sharedConfig,
7966
build: {
80-
outDir: `${SAFARI_EXT_RESOURCES}/dist/`,
67+
outDir: `${Utils.SAFARI_EXT_RESOURCES}/dist/`,
8168
emptyOutDir: false,
8269
copyPublicDir: false,
8370
sourcemap,
@@ -90,11 +77,11 @@ build({
9077

9178
/** Build shared modules */
9279
build({
93-
...defineConfig,
80+
...sharedConfig,
9481
plugins: [svelte()],
9582
publicDir: "public/ext/vendor/",
9683
build: {
97-
outDir: `${SAFARI_EXT_RESOURCES}/dist/`,
84+
outDir: `${Utils.SAFARI_EXT_RESOURCES}/dist/`,
9885
emptyOutDir: false,
9986
sourcemap,
10087
rollupOptions: {

scripts/dev-ext-safari.js

Lines changed: 20 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,16 @@
99

1010
import { build, createServer } from "vite";
1111
import { svelte } from "@sveltejs/vite-plugin-svelte";
12-
import {
13-
cp,
14-
emptyBuildDir,
15-
sharedServerOptions,
16-
rootDir,
17-
SAFARI_EXT_RESOURCES,
18-
} from "./utils.js";
12+
import * as Utils from "./utils.js";
1913
import https from "node:https";
2014

21-
/**
22-
* Define default vite config options
23-
* Disable auto resolving {@link vite.config.js}
24-
* @see {@link https://vitejs.dev/config/ Config}
25-
* @see {@link https://vitejs.dev/guide/api-javascript.html#inlineconfig configFile}
26-
* @type {import("vite").InlineConfig}
27-
*/
28-
const defineConfig = {
29-
configFile: false,
30-
envFile: false,
31-
root: await rootDir(),
32-
base: "./",
15+
/** @type {import("vite").InlineConfig} */
16+
const sharedConfig = {
17+
...Utils.baseConfig,
3318
mode: "development",
3419
define: {
35-
"import.meta.env.BROWSER": JSON.stringify("Safari"),
36-
"import.meta.env.NATIVE_APP": JSON.stringify("app"),
20+
...Utils.baseConfig.define,
3721
"import.meta.env.SAFARI_VERSION": JSON.stringify(16.4),
38-
"import.meta.env.SAFARI_PLATFORM": JSON.stringify(
39-
process.env.SAFARI_PLATFORM,
40-
),
4122
},
4223
};
4324

@@ -51,19 +32,19 @@ async function buildResources(server, origin) {
5132
* empty resources directory
5233
* copy public static assets
5334
*/
54-
await emptyBuildDir("dist");
55-
await emptyBuildDir(SAFARI_EXT_RESOURCES);
56-
cp("public/ext/shared", SAFARI_EXT_RESOURCES);
57-
cp("public/ext/shared-dev", SAFARI_EXT_RESOURCES);
35+
await Utils.emptyBuildDir("dist");
36+
await Utils.emptyBuildDir(Utils.SAFARI_EXT_RESOURCES);
37+
Utils.cp("public/ext/shared", Utils.SAFARI_EXT_RESOURCES);
38+
Utils.cp("public/ext/shared-dev", Utils.SAFARI_EXT_RESOURCES);
5839
if (process.env.SAFARI_PLATFORM === "ios") {
59-
cp(
40+
Utils.cp(
6041
"public/ext/safari-dev/manifest-ios.json",
61-
`${SAFARI_EXT_RESOURCES}/manifest.json`,
42+
`${Utils.SAFARI_EXT_RESOURCES}/manifest.json`,
6243
);
6344
} else {
64-
cp(
45+
Utils.cp(
6546
"public/ext/safari-dev/manifest-mac.json",
66-
`${SAFARI_EXT_RESOURCES}/manifest.json`,
47+
`${Utils.SAFARI_EXT_RESOURCES}/manifest.json`,
6748
);
6849
}
6950

@@ -75,7 +56,7 @@ async function buildResources(server, origin) {
7556
].forEach((input) => {
7657
/** build proxy content scripts replace actual code */
7758
build({
78-
...defineConfig,
59+
...sharedConfig,
7960
plugins: [
8061
{
8162
name: "generate-content-proxy",
@@ -100,7 +81,7 @@ async function buildResources(server, origin) {
10081
},
10182
],
10283
build: {
103-
outDir: `${SAFARI_EXT_RESOURCES}/dist/content-scripts/`,
84+
outDir: `${Utils.SAFARI_EXT_RESOURCES}/dist/content-scripts/`,
10485
emptyOutDir: false,
10586
copyPublicDir: false,
10687
rollupOptions: {
@@ -111,7 +92,7 @@ async function buildResources(server, origin) {
11192
});
11293
/** build content scripts for dev server and watch changes */
11394
build({
114-
...defineConfig,
95+
...sharedConfig,
11596
build: {
11697
outDir: `dist/content-scripts/`,
11798
emptyOutDir: false,
@@ -128,7 +109,7 @@ async function buildResources(server, origin) {
128109

129110
/** generate entrance dist */
130111
build({
131-
...defineConfig,
112+
...sharedConfig,
132113
publicDir: "public/ext/vendor/",
133114
plugins: [
134115
/**
@@ -147,7 +128,7 @@ async function buildResources(server, origin) {
147128
},
148129
],
149130
build: {
150-
outDir: `${SAFARI_EXT_RESOURCES}/dist/`,
131+
outDir: `${Utils.SAFARI_EXT_RESOURCES}/dist/`,
151132
emptyOutDir: false,
152133
rollupOptions: {
153134
input: {
@@ -170,7 +151,7 @@ async function buildResources(server, origin) {
170151
* @see {@link https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy}
171152
* @see {@link https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy}
172153
*/
173-
const serverOptions = await sharedServerOptions();
154+
const serverOptions = await Utils.sharedServerOptions();
174155
const SERVER_PORT = 55173;
175156
const SERVER_ORIGIN = `https://userscripts.test:${SERVER_PORT}`;
176157

@@ -204,7 +185,7 @@ async function serverCheck(url) {
204185
(async () => {
205186
/** run development server */
206187
const server = await createServer({
207-
...defineConfig,
188+
...sharedConfig,
208189
plugins: [svelte()],
209190
server: {
210191
host: true,

0 commit comments

Comments
 (0)