Files
pezkuwi-common/packages/x-fetch/src/node.ts
T
pezkuwichain ec06da0ebc Initial rebrand: @polkadot -> @pezkuwi (14 packages)
- Package namespace: @polkadot/* -> @pezkuwi/*
- Repository: polkadot-js/common -> pezkuwichain/pezkuwi-common
- Author: Pezkuwi Team <team@pezkuwichain.io>

Core packages:
- @pezkuwi/util (utilities)
- @pezkuwi/util-crypto (crypto primitives)
- @pezkuwi/keyring (account management)
- @pezkuwi/networks (chain metadata)
- @pezkuwi/hw-ledger (Ledger hardware wallet)
- @pezkuwi/x-* (10 polyfill packages)

Total: 14 packages
Upstream: polkadot-js/common v14.0.1
2026-01-05 14:00:34 +03:00

32 lines
1017 B
TypeScript

// Copyright 2017-2025 @polkadot/x-fetch authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { extractGlobal } from '@pezkuwi/x-global';
export { packageInfo } from './packageInfo.js';
// This is an ESM module, use the async import(...) syntax to pull it
// in. Logically we would like it in nodeFetch(...) itself, however
// while it is all-ok on Node itself, it does create issues in Jest,
// possibly due to the Jest 28 need for --experimental-vm-modules
const importFetch = import('node-fetch').catch(() => null);
// keep track of the resolved import value
let modFn: typeof fetch | null = null;
async function nodeFetch (...args: Parameters<typeof fetch>): Promise<Response> {
if (!modFn) {
const mod = await importFetch;
if (!mod?.default) {
throw new Error('Unable to import node-fetch in this environment');
}
modFn = mod.default as unknown as typeof fetch;
}
return modFn(...args);
}
export const fetch = /*#__PURE__*/ extractGlobal('fetch', nodeFetch);