mirror of
https://github.com/SukkaW/Surge.git
synced 2026-01-29 01:51:52 +08:00
Chore: CDN cache & prefer compare and write
This commit is contained in:
@@ -9,7 +9,6 @@ import { SHARED_DESCRIPTION } from './lib/constants';
|
||||
import { createMemoizedPromise } from './lib/memo-promise';
|
||||
import * as yaml from 'yaml';
|
||||
import { appendArrayInPlace } from './lib/append-array-in-place';
|
||||
import { writeFile } from './lib/misc';
|
||||
import { OUTPUT_INTERNAL_DIR, OUTPUT_MODULES_DIR, SOURCE_DIR } from './constants/dir';
|
||||
import { RulesetOutput } from './lib/create-file';
|
||||
|
||||
@@ -83,8 +82,8 @@ export const buildDomesticRuleset = task(require.main === module, __filename)(as
|
||||
],
|
||||
path.resolve(OUTPUT_MODULES_DIR, 'sukka_local_dns_mapping.sgmodule')
|
||||
),
|
||||
writeFile(
|
||||
path.join(OUTPUT_INTERNAL_DIR, 'clash_nameserver_policy.yaml'),
|
||||
compareAndWriteFile(
|
||||
span,
|
||||
yaml.stringify(
|
||||
{
|
||||
dns: {
|
||||
@@ -116,7 +115,8 @@ export const buildDomesticRuleset = task(require.main === module, __filename)(as
|
||||
)
|
||||
},
|
||||
{ version: '1.1' }
|
||||
)
|
||||
).split('\n'),
|
||||
path.join(OUTPUT_INTERNAL_DIR, 'clash_nameserver_policy.yaml')
|
||||
)
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -9,6 +9,7 @@ import type { TreeType, TreeTypeArray } from './lib/tree-dir';
|
||||
import { OUTPUT_MOCK_DIR, OUTPUT_MODULES_DIR, PUBLIC_DIR, ROOT_DIR } from './constants/dir';
|
||||
import { mkdirp, writeFile } from './lib/misc';
|
||||
import picocolors from 'picocolors';
|
||||
import { compareAndWriteFile } from './lib/create-file';
|
||||
|
||||
const mockDir = path.join(ROOT_DIR, 'Mock');
|
||||
const modulesDir = path.join(ROOT_DIR, 'Modules');
|
||||
@@ -46,6 +47,19 @@ export const buildPublic = task(require.main === module, __filename)(async (span
|
||||
.traceChild('generate index.html')
|
||||
.traceAsyncFn(() => treeDir(PUBLIC_DIR).then(generateHtml));
|
||||
|
||||
await compareAndWriteFile(
|
||||
span,
|
||||
[
|
||||
'/*',
|
||||
' cloudflare-cdn-cache-control: public, max-age=150, stale-while-revalidate=60, stale-if-error=30',
|
||||
'https://:project.pages.dev/*',
|
||||
' X-Robots-Tag: noindex',
|
||||
'/Modules/*',
|
||||
' content-type: text/plain; charset=utf-8'
|
||||
],
|
||||
path.join(PUBLIC_DIR, '_headers')
|
||||
);
|
||||
|
||||
return writeFile(path.join(PUBLIC_DIR, 'index.html'), html);
|
||||
});
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ import { task } from './trace';
|
||||
import { compareAndWriteFile } from './lib/create-file';
|
||||
import { DIRECTS, LANS } from '../Source/non_ip/direct';
|
||||
import * as yaml from 'yaml';
|
||||
import { writeFile } from './lib/misc';
|
||||
import { OUTPUT_INTERNAL_DIR, OUTPUT_MODULES_DIR } from './constants/dir';
|
||||
import { appendArrayInPlace } from './lib/append-array-in-place';
|
||||
|
||||
@@ -62,8 +61,8 @@ export const buildAlwaysRealIPModule = task(require.main === module, __filename)
|
||||
],
|
||||
path.resolve(OUTPUT_MODULES_DIR, 'sukka_common_always_realip.sgmodule')
|
||||
),
|
||||
writeFile(
|
||||
path.join(OUTPUT_INTERNAL_DIR, 'clash_fake_ip_filter.yaml'),
|
||||
compareAndWriteFile(
|
||||
span,
|
||||
yaml.stringify(
|
||||
{
|
||||
dns: {
|
||||
@@ -75,7 +74,8 @@ export const buildAlwaysRealIPModule = task(require.main === module, __filename)
|
||||
}
|
||||
},
|
||||
{ version: '1.1' }
|
||||
)
|
||||
).split('\n'),
|
||||
path.join(OUTPUT_INTERNAL_DIR, 'clash_fake_ip_filter.yaml')
|
||||
)
|
||||
]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user