| 123456789101112131415161718192021222324 |
- import fsp from 'fs/promises';
- import { toASCII } from 'punycode/punycode';
- import { createMemoizedPromise } from './memo-promise';
- import { getPublicSuffixListTextPromise } from './download-publicsuffixlist';
- import { fileURLToPath } from 'url';
- // TODO: node undfici fetch doesn't support file URL reading yet
- const customFetch = async (url: URL) => {
- const filePath = fileURLToPath(url);
- const file = await fsp.readFile(filePath);
- return new Blob([file]) as any;
- };
- export const getGorhillPublicSuffixPromise = createMemoizedPromise(async () => {
- const [publicSuffixListDat, { default: gorhill }] = await Promise.all([
- getPublicSuffixListTextPromise(),
- import('@gorhill/publicsuffixlist')
- ]);
- gorhill.parse(publicSuffixListDat, toASCII);
- await gorhill.enableWASM({ customFetch });
- return gorhill;
- });
|