mirror of
https://github.com/SukkaW/Surge.git
synced 2026-01-28 17:41:54 +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 { createMemoizedPromise } from './lib/memo-promise';
|
||||||
import * as yaml from 'yaml';
|
import * as yaml from 'yaml';
|
||||||
import { appendArrayInPlace } from './lib/append-array-in-place';
|
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 { OUTPUT_INTERNAL_DIR, OUTPUT_MODULES_DIR, SOURCE_DIR } from './constants/dir';
|
||||||
import { RulesetOutput } from './lib/create-file';
|
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')
|
path.resolve(OUTPUT_MODULES_DIR, 'sukka_local_dns_mapping.sgmodule')
|
||||||
),
|
),
|
||||||
writeFile(
|
compareAndWriteFile(
|
||||||
path.join(OUTPUT_INTERNAL_DIR, 'clash_nameserver_policy.yaml'),
|
span,
|
||||||
yaml.stringify(
|
yaml.stringify(
|
||||||
{
|
{
|
||||||
dns: {
|
dns: {
|
||||||
@@ -116,7 +115,8 @@ export const buildDomesticRuleset = task(require.main === module, __filename)(as
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
{ version: '1.1' }
|
{ 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 { OUTPUT_MOCK_DIR, OUTPUT_MODULES_DIR, PUBLIC_DIR, ROOT_DIR } from './constants/dir';
|
||||||
import { mkdirp, writeFile } from './lib/misc';
|
import { mkdirp, writeFile } from './lib/misc';
|
||||||
import picocolors from 'picocolors';
|
import picocolors from 'picocolors';
|
||||||
|
import { compareAndWriteFile } from './lib/create-file';
|
||||||
|
|
||||||
const mockDir = path.join(ROOT_DIR, 'Mock');
|
const mockDir = path.join(ROOT_DIR, 'Mock');
|
||||||
const modulesDir = path.join(ROOT_DIR, 'Modules');
|
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')
|
.traceChild('generate index.html')
|
||||||
.traceAsyncFn(() => treeDir(PUBLIC_DIR).then(generateHtml));
|
.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);
|
return writeFile(path.join(PUBLIC_DIR, 'index.html'), html);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { task } from './trace';
|
|||||||
import { compareAndWriteFile } from './lib/create-file';
|
import { compareAndWriteFile } from './lib/create-file';
|
||||||
import { DIRECTS, LANS } from '../Source/non_ip/direct';
|
import { DIRECTS, LANS } from '../Source/non_ip/direct';
|
||||||
import * as yaml from 'yaml';
|
import * as yaml from 'yaml';
|
||||||
import { writeFile } from './lib/misc';
|
|
||||||
import { OUTPUT_INTERNAL_DIR, OUTPUT_MODULES_DIR } from './constants/dir';
|
import { OUTPUT_INTERNAL_DIR, OUTPUT_MODULES_DIR } from './constants/dir';
|
||||||
import { appendArrayInPlace } from './lib/append-array-in-place';
|
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')
|
path.resolve(OUTPUT_MODULES_DIR, 'sukka_common_always_realip.sgmodule')
|
||||||
),
|
),
|
||||||
writeFile(
|
compareAndWriteFile(
|
||||||
path.join(OUTPUT_INTERNAL_DIR, 'clash_fake_ip_filter.yaml'),
|
span,
|
||||||
yaml.stringify(
|
yaml.stringify(
|
||||||
{
|
{
|
||||||
dns: {
|
dns: {
|
||||||
@@ -75,7 +74,8 @@ export const buildAlwaysRealIPModule = task(require.main === module, __filename)
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ version: '1.1' }
|
{ version: '1.1' }
|
||||||
)
|
).split('\n'),
|
||||||
|
path.join(OUTPUT_INTERNAL_DIR, 'clash_fake_ip_filter.yaml')
|
||||||
)
|
)
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user