Skip to content

Commit 9ecf9d6

Browse files
committed
feat: 增加 polyfill 兼容旧 iOS 系统
1 parent a74a938 commit 9ecf9d6

5 files changed

Lines changed: 16 additions & 1 deletion

File tree

backend/bundle-esbuild.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ const fs = require('fs');
33
const path = require('path');
44
const { build } = require('esbuild');
55

6+
const objectHasOwnPolyfill = require.resolve('core-js/actual/object/has-own');
7+
68
!(async () => {
79
const version = JSON.parse(
810
fs.readFileSync(path.join(__dirname, 'package.json'), 'utf-8'),
@@ -31,6 +33,7 @@ const { build } = require('esbuild');
3133
platform: 'browser',
3234
format: 'iife',
3335
outfile: artifact.dest,
36+
inject: [objectHasOwnPolyfill],
3437
});
3538
}
3639

@@ -50,6 +53,7 @@ const { build } = require('esbuild');
5053
platform: 'browser',
5154
format: 'esm',
5255
outfile: artifact.dest,
56+
inject: [objectHasOwnPolyfill],
5357
});
5458
}
5559

@@ -76,6 +80,8 @@ const { build } = require('esbuild');
7680
platform: 'node',
7781
format: 'cjs',
7882
outfile: 'dist/sub-store.bundle.js',
83+
// `sub-store.no-bundle.js` comes from `sub-store.min.js`, which already
84+
// has the Object.hasOwn polyfill injected in the first build stage.
7985
});
8086
fs.writeFileSync(
8187
path.join(__dirname, 'dist/sub-store.bundle.js'),

backend/dev-esbuild.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#!/usr/bin/env node
22
const { build } = require('esbuild');
33

4+
const objectHasOwnPolyfill = require.resolve('core-js/actual/object/has-own');
5+
46
!(async () => {
57
const artifacts = [{ src: 'src/main.js', dest: 'sub-store.min.js' }];
68

@@ -13,6 +15,7 @@ const { build } = require('esbuild');
1315
platform: 'node',
1416
format: 'cjs',
1517
outfile: artifact.dest,
18+
inject: [objectHasOwnPolyfill],
1619
logOverride: {
1720
'direct-eval': 'silent',
1821
},

backend/esbuild-dev.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const { spawn } = require('child_process');
44
const { context } = require('esbuild');
55

66
const outfile = path.join(__dirname, 'sub-store.min.js');
7+
const objectHasOwnPolyfill = require.resolve('core-js/actual/object/has-own');
78

89
let serverProcess = null;
910
let buildContext = null;
@@ -102,6 +103,7 @@ async function shutdown(signal) {
102103
platform: 'node',
103104
format: 'cjs',
104105
outfile,
106+
inject: [objectHasOwnPolyfill],
105107
logOverride: {
106108
'direct-eval': 'silent',
107109
},

backend/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sub-store",
3-
"version": "2.24.6",
3+
"version": "2.24.7",
44
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.",
55
"main": "src/main.js",
66
"packageManager": "pnpm@11.0.9",
@@ -28,6 +28,7 @@
2828
"body-parser": "^1.19.0",
2929
"buffer": "^6.0.3",
3030
"connect-history-api-fallback": "^2.0.0",
31+
"core-js": "^3.49.0",
3132
"cron": "^3.1.6",
3233
"dns-packet": "^5.6.1",
3334
"dotenv": "^16.4.7",

backend/pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)