UI修改
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import {readFile} from 'node:fs/promises';
|
||||
import ts from 'typescript';
|
||||
|
||||
// Dependency-free site modules (brand, contact, footer filtering, download address, visitor headers)
|
||||
// are linked into transpiled test modules by specifier, whatever relative depth they are imported from.
|
||||
const compile=async path=>ts.transpileModule(await readFile(new URL('../../src/lib/'+path,import.meta.url),'utf8'),{compilerOptions:{target:ts.ScriptTarget.ES2022,module:ts.ModuleKind.ESNext}}).outputText;
|
||||
const url=source=>'data:text/javascript;base64,'+Buffer.from(source).toString('base64');
|
||||
const protocol=url(await compile('api/protocol.ts'));
|
||||
const userAgent=url(await compile('api/user-agent.ts'));
|
||||
const modules={
|
||||
brand:url(await compile('brand.ts')),
|
||||
contact:url(await compile('contact.ts')),
|
||||
'footer-links':url(await compile('footer-links.ts')),
|
||||
'app-download':url((await compile('app-download.ts')).replace(/(['"])\.\/api\/protocol\1/g,JSON.stringify(protocol))),
|
||||
'visitor-headers':url((await compile('client/visitor-headers.ts')).replace(/(['"])\.\.\/api\/user-agent\1/g,JSON.stringify(userAgent))),
|
||||
};
|
||||
|
||||
export function linkShared(code){
|
||||
return code.replace(/(['"])(?:\.\.?\/)+(brand|contact|footer-links|app-download|visitor-headers)\1/g,(_,quote,name)=>JSON.stringify(modules[name]));
|
||||
}
|
||||
|
||||
/** Namespace of a shared module, for CommonJS test harnesses that resolve `require` by hand. */
|
||||
export const sharedModule=name=>import(modules[name]);
|
||||
Reference in New Issue
Block a user