mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-10 21:07:48 +00:00
* Move now-cli to /packages/now-cli * Fix .gitignore paths * Add now-client * Add lerna to top level * Add scripts * Update codeowners * Fix `/now-cli/build.ts` script * Fix circleci path to artifacts * Use relative paths * Fix path to scripts * Add test-lint script * Add missing return type * Fix typo in test-lint * Fix string match in shell scripts * Fix path to hugo * Add package node_modules * Delete lock files in packages, use root yarn.lock * Add missing b.js file * Add test-integration-now-dev script * Add missing test files * Add missing integration test script * Add missing test files * Delete travis.yml * Fix ts-jest in now-client * Add support for Node 8 (ES2015 target) * Add support for Node 8 * Add polyfill for Node 8 * Fix polyfill for Node 8 * Only run coverage for now-cli * Add packages from now-builders * Run integration tests for builders * Add node_modules to cache * Add root readme.md * Move readme to top level * Add yarn bootstrap * Add bootstrap step * Add dist to `persist_to_workspace` * Fix 08-yarn-npm integration test * Remove duplicate path * Change stdio to inherit * Add back store_artifacts * testing - remove bootstrap step * Add back now-build-utils * Remove bootstrap step * Fix test again * Add console.log() * Fix lint * Use local ncc version * Install go * Revert changes to stdio and console.log() * Add missing now-go test * Add missing integration tests * Add --runInBand flag * Fix now-node-bridge persistence * Add missing symlinks * Add codeowners * Consolidate into single run.sh function * Run uniq * Fix typo * Change now-routing-utils to test-unit * Special case test for node 8 * Add docs from builders * Only run script for modified packages * Add test-integration-once which only runs once * Fix set intersection
26 lines
790 B
JavaScript
26 lines
790 B
JavaScript
const fetch = require('node-fetch');
|
|
const retryBailByDefault = require('./retry-bail-by-default.js');
|
|
|
|
async function fetchRetry (...args) {
|
|
return await retryBailByDefault(
|
|
async (canRetry) => {
|
|
try {
|
|
return await fetch(...args);
|
|
} catch (error) {
|
|
if (error.code === 'ENOTFOUND') {
|
|
// getaddrinfo ENOTFOUND api.zeit.co like some transient dns issue
|
|
throw canRetry(error);
|
|
} else if (error.code === 'ETIMEDOUT') {
|
|
// request to https://api-gru1.zeit.co/v3/now/deployments/dpl_FBWWhpQomjgwjJLu396snLrGZYCm failed, reason:
|
|
// connect ETIMEDOUT 18.228.143.224:443
|
|
throw canRetry(error);
|
|
}
|
|
throw error;
|
|
}
|
|
},
|
|
{ factor: 1, retries: 3 }
|
|
);
|
|
}
|
|
|
|
module.exports = fetchRetry;
|