Skip to content

Commit 28ac484

Browse files
committed
Perf: reduce infra runtime costs
1 parent 0a4c99a commit 28ac484

File tree

7 files changed

+85
-23
lines changed

7 files changed

+85
-23
lines changed

Build/build-cdn-conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const { runner } = require('./lib/trace-runner');
77
const fs = require('fs');
88
const { processLine } = require('./lib/process-line');
99

10-
const publicSuffixPath = path.resolve(__dirname, '../node_modules/.cache/public_suffix-list_dat.txt');
10+
const publicSuffixPath = path.resolve(__dirname, '../node_modules/.cache/public_suffix_list_dat.txt');
1111

1212
const buildCdnConf = async () => {
1313
const trie = new Trie();

Build/build.js

Whitespace-only changes.

Build/download-previous-build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ const downloadPreviousBuild = async () => {
8383

8484
const downloadPublicSuffixList = async () => {
8585
const publicSuffixDir = resolve(__dirname, '../node_modules/.cache');
86-
const publicSuffixPath = join(publicSuffixDir, 'public_suffix-list_dat.txt');
86+
const publicSuffixPath = join(publicSuffixDir, 'public_suffix_list_dat.txt');
8787

8888
console.log('Download public suffix list.');
8989

Build/index.js

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
const { downloadPreviousBuild, downloadPublicSuffixList } = require('./download-previous-build');
2+
const { buildCommon } = require('./build-common');
3+
const { buildAntiBogusDomain } = require('./build-anti-bogus-domain');
4+
const { buildAppleCdn } = require('./build-apple-cdn');
5+
const { buildCdnConf } = require('./build-cdn-conf');
6+
const { buildPhishingDomainSet } = require('./build-phishing-domainset');
7+
const { buildRejectDomainSet } = require('./build-reject-domainset');
8+
const { buildTelegramCIDR } = require('./build-telegram-cidr');
9+
const { buildChnCidr } = require('./build-chn-cidr');
10+
const { buildSpeedtestDomainSet } = require('./build-speedtest-domainset');
11+
const { buildInternalCDNDomains } = require('./build-internal-cdn-rules');
12+
const { buildInternalReverseChnCIDR } = require('./build-internal-reverse-chn-cidr');
13+
const { buildInternalChnDomains } = require('./build-internal-chn-domains');
14+
const { buildDomesticRuleset } = require('./build-domestic-ruleset');
15+
const { validate } = require('./validate-domainset');
16+
17+
const { buildPublicHtml } = require('./build-public');
18+
19+
(async () => {
20+
// download-previous-build
21+
const downloadPreviousBuildPromise = downloadPreviousBuild();
22+
const downloadPublicSuffixListPromise = downloadPublicSuffixList();
23+
// build:common
24+
const buildCommonPromise = downloadPreviousBuildPromise.then(() => buildCommon());
25+
// build:anti-bogus-domain
26+
const buildAntiBogusDomainPromise = downloadPreviousBuildPromise.then(() => buildAntiBogusDomain());
27+
// build:apple-cdn
28+
const buildAppleCdnPromise = downloadPreviousBuildPromise.then(() => buildAppleCdn());
29+
// build:cdn-conf
30+
const buildCdnConfPromise = downloadPreviousBuildPromise.then(() => buildCdnConf());
31+
// build:phishing-domainset
32+
const buildPhilishingDomainsetPromise = downloadPreviousBuildPromise.then(() => buildPhishingDomainSet());
33+
// build:reject-domainset
34+
const buildRejectDomainSetPromise = Promise.all([
35+
downloadPreviousBuildPromise,
36+
downloadPublicSuffixListPromise
37+
]).then(() => buildRejectDomainSet());
38+
// build:telegram-cidr
39+
const buildTelegramCIDRPromise = downloadPreviousBuildPromise.then(() => buildTelegramCIDR());
40+
// build:chn-cidr
41+
const buildChnCidrPromise = downloadPreviousBuildPromise.then(() => buildChnCidr());
42+
// build:speedtest-domainset
43+
const buildSpeedtestDomainSetPromise = downloadPreviousBuildPromise.then(() => buildSpeedtestDomainSet());
44+
// build:internal-cdn-rules
45+
const buildInternalCDNDomainsPromise = Promise.all([
46+
buildCommonPromise,
47+
buildCdnConfPromise
48+
]).then(() => buildInternalCDNDomains());
49+
// build:internal-reverse-chn-cidr
50+
const buildInternalReverseChnCIDRPromise = buildInternalReverseChnCIDR();
51+
// build:internal-chn-domains
52+
const buildInternalChnDomainsPromise = buildInternalChnDomains();
53+
// build:domestic-ruleset
54+
const buildDomesticRulesetPromise = downloadPreviousBuildPromise.then(() => buildDomesticRuleset());
55+
56+
await Promise.all([
57+
downloadPreviousBuildPromise,
58+
downloadPublicSuffixListPromise,
59+
buildCommonPromise,
60+
buildAntiBogusDomainPromise,
61+
buildAppleCdnPromise,
62+
buildCdnConfPromise,
63+
buildPhilishingDomainsetPromise,
64+
buildRejectDomainSetPromise,
65+
buildTelegramCIDRPromise,
66+
buildChnCidrPromise,
67+
buildSpeedtestDomainSetPromise,
68+
buildInternalCDNDomainsPromise,
69+
buildInternalReverseChnCIDRPromise,
70+
buildInternalChnDomainsPromise,
71+
buildDomesticRulesetPromise
72+
]);
73+
74+
await Promise.all([
75+
buildPublicHtml(),
76+
validate()
77+
]);
78+
})();

Build/lib/cached-tld-parse.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ module.exports.parse = (domain) => {
1313
return cache.sync(domain, () => tldts.parse(domain, sharedConfig));
1414
};
1515

16-
const gothillGetDomainCache = createCache('cached-gorhill-get-domain', true);
16+
let gothillGetDomainCache = null;
1717
/**
1818
* @param {import('gorhill-publicsuffixlist').default | null} gorhill
1919
*/
2020
module.exports.createCachedGorhillGetDomain = (gorhill) => {
21+
gothillGetDomainCache ||= createCache('cached-gorhill-get-domain', true);
2122
/**
2223
* @param {string} domain
2324
*/

Build/lib/get-gorhill-publicsuffix.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const { toASCII } = require('punycode/');
22
const fs = require('fs');
33
const path = require('path');
44

5-
const publicSuffixPath = path.resolve(__dirname, '../../node_modules/.cache/public_suffix-list_dat.txt');
5+
const publicSuffixPath = path.resolve(__dirname, '../../node_modules/.cache/public_suffix_list_dat.txt');
66
const getPublicSuffixListDat = () => {
77
if (fs.existsSync(publicSuffixPath)) {
88
return fs.promises.readFile(publicSuffixPath, 'utf-8');

package.json

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"private": true,
55
"description": "",
66
"scripts": {
7-
"build": "wireit",
7+
"build": "node ./Build/index.js",
8+
89
"build:common": "wireit",
910
"download-previous-build": "wireit",
1011
"build:anti-bogus-domain": "wireit",
@@ -124,24 +125,6 @@
124125
"build:cdn-conf",
125126
"build:common"
126127
]
127-
},
128-
"build": {
129-
"dependencies": [
130-
"build:common",
131-
"build:anti-bogus-domain",
132-
"build:apple-cdn",
133-
"build:cdn-conf",
134-
"build:reject-domainset",
135-
"build:telegram-cidr",
136-
"build:chn-cidr",
137-
"build:internal-cdn-rules",
138-
"build:internal-reverse-chn-cidr",
139-
"build:internal-chn-domains",
140-
"build:speedtest-domainset",
141-
"build:domestic-ruleset",
142-
"build:public",
143-
"validate:domainset"
144-
]
145128
}
146129
},
147130
"repository": {

0 commit comments

Comments
 (0)