From c41bbbfc64fcb9eaa4ac4cc2ec60328f36e83e0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20De=20Boey?= <info@michaeldeboey.be> Date: Sun, 27 Nov 2022 17:09:02 +0100 Subject: [PATCH] chore: unify error usage --- docs/guides/optimistic-ui.md | 4 ++-- integration/form-data-test.ts | 2 +- integration/server-source-maps-test.ts | 2 +- packages/remix-cloudflare-pages/worker.ts | 8 ++++---- packages/remix-cloudflare-workers/worker.ts | 2 +- packages/remix-deno/server.ts | 12 ++++++------ packages/remix-dev/__tests__/create-test.ts | 12 ++++++------ packages/remix-dev/__tests__/utils/withApp.ts | 2 +- packages/remix-dev/cli/commands.ts | 4 ++-- packages/remix-dev/cli/create.ts | 6 +++--- packages/remix-dev/cli/migrate/jscodeshift.ts | 2 +- packages/remix-dev/cli/run.ts | 2 +- packages/remix-dev/codemod/utils/task.ts | 2 +- .../compiler/plugins/serverBareModulesPlugin.ts | 2 +- packages/remix-dev/compiler/remixCompiler.ts | 4 ++-- packages/remix-dev/compiler/routeExports.ts | 4 ++-- packages/remix-dev/compiler/watch.ts | 4 ++-- packages/remix-dev/config.ts | 2 +- packages/remix-dev/devServer/serve.ts | 2 +- packages/remix-dev/env.ts | 2 +- packages/remix-express/server.ts | 2 +- packages/remix-react/routeModules.ts | 2 +- packages/remix-react/scroll-restoration.tsx | 2 +- packages/remix-react/transition.ts | 4 ++-- packages/remix-server-runtime/cookies.ts | 2 +- packages/remix-server-runtime/server.ts | 8 ++++---- rollup.config.js | 2 +- rollup.utils.js | 2 +- scripts/copy-build-to-dist.mjs | 4 ++-- scripts/release.js | 12 ++++++------ scripts/utils.js | 2 +- 31 files changed, 61 insertions(+), 61 deletions(-) diff --git a/docs/guides/optimistic-ui.md b/docs/guides/optimistic-ui.md index ed050289ce1..b9e0fefdb2d 100644 --- a/docs/guides/optimistic-ui.md +++ b/docs/guides/optimistic-ui.md @@ -198,8 +198,8 @@ export const action = async ({ request }: ActionArgs) => { try { const project = await createProject(newProject); return redirect(`/projects/${project.id}`); - } catch (e: unknown) { - console.error(e); + } catch (error: unknown) { + console.error(error); return json("Sorry, we couldn't create the project", { status: 500, }); diff --git a/integration/form-data-test.ts b/integration/form-data-test.ts index 578491bba33..8f4741cfb9f 100644 --- a/integration/form-data-test.ts +++ b/integration/form-data-test.ts @@ -14,7 +14,7 @@ test.beforeAll(async () => { export async function action({ request }) { try { await request.formData() - } catch (err) { + } catch { return json("no pizza"); } return json("pizza"); diff --git a/integration/server-source-maps-test.ts b/integration/server-source-maps-test.ts index 32c3beffc5d..5671dec0f80 100644 --- a/integration/server-source-maps-test.ts +++ b/integration/server-source-maps-test.ts @@ -18,7 +18,7 @@ test.beforeAll(async () => { export function loader() { try { throw new Error("💩"); - } catch (err) { + } catch { return json(err.stack); } } diff --git a/packages/remix-cloudflare-pages/worker.ts b/packages/remix-cloudflare-pages/worker.ts index c174e0111f0..2e4e8201885 100644 --- a/packages/remix-cloudflare-pages/worker.ts +++ b/packages/remix-cloudflare-pages/worker.ts @@ -74,10 +74,10 @@ export function createPagesFunctionHandler<Env = any>({ return async (context: EventContext<Env, any, any>) => { try { return await handleFetch(context); - } catch (e) { - if (process.env.NODE_ENV === "development" && e instanceof Error) { - console.error(e); - return new Response(e.message || e.toString(), { + } catch (error: unknown) { + if (process.env.NODE_ENV === "development" && error instanceof Error) { + console.error(error); + return new Response(error.message || error.toString(), { status: 500, }); } diff --git a/packages/remix-cloudflare-workers/worker.ts b/packages/remix-cloudflare-workers/worker.ts index 9cb0ed0ca50..e20bb901bee 100644 --- a/packages/remix-cloudflare-workers/worker.ts +++ b/packages/remix-cloudflare-workers/worker.ts @@ -84,7 +84,7 @@ export async function handleAsset( cacheControl, ...options, }); - } catch (error) { + } catch (error: unknown) { if ( error instanceof MethodNotAllowedError || error instanceof NotFoundError diff --git a/packages/remix-deno/server.ts b/packages/remix-deno/server.ts index 78d9e211a98..83e9fe12542 100644 --- a/packages/remix-deno/server.ts +++ b/packages/remix-deno/server.ts @@ -12,7 +12,7 @@ function defaultCacheControl(url: URL, assetsPublicPath = "/build/") { } export function createRequestHandler< - Context extends AppLoadContext | undefined = undefined, + Context extends AppLoadContext | undefined = undefined >({ build, mode, @@ -29,8 +29,8 @@ export function createRequestHandler< const loadContext = await getLoadContext?.(request); return handleRequest(request, loadContext); - } catch (e) { - console.error(e); + } catch (error: unknown) { + console.error(error); return new Response("Internal Error", { status: 500 }); } @@ -53,7 +53,7 @@ export async function serveStaticFiles( cacheControl?: string | ((url: URL) => string); publicDir?: string; assetsPublicPath?: string; - }, + } ) { const url = new URL(request.url); @@ -84,7 +84,7 @@ export async function serveStaticFiles( } export function createRequestHandlerWithStaticFiles< - Context extends AppLoadContext | undefined = undefined, + Context extends AppLoadContext | undefined = undefined >({ build, mode, @@ -108,7 +108,7 @@ export function createRequestHandlerWithStaticFiles< return async (request: Request) => { try { return await serveStaticFiles(request, staticFiles); - } catch (error) { + } catch (error: unknown) { if (!(error instanceof FileNotFoundError)) { throw error; } diff --git a/packages/remix-dev/__tests__/create-test.ts b/packages/remix-dev/__tests__/create-test.ts index b164b874a72..e0caf1832a7 100644 --- a/packages/remix-dev/__tests__/create-test.ts +++ b/packages/remix-dev/__tests__/create-test.ts @@ -665,8 +665,8 @@ describe("the create command", () => { "--typescript", ]); return res; - } catch (err) { - throw err; + } catch (error: unknown) { + throw error; } }).rejects.toMatchInlineSnapshot( `[Error: 🚨 The template could not be verified because you do not have access to the repository. Please double check the access rights of this repo and try again.]` @@ -822,7 +822,7 @@ describe("the create command", () => { }); it("uses the proxy from env var", async () => { let projectDir = await getProjectDir("template"); - let err: Error | undefined; + let error: Error | undefined; let prevProxy = process.env.HTTPS_PROXY; try { process.env.HTTPS_PROXY = "http://127.0.0.1:33128"; @@ -834,12 +834,12 @@ describe("the create command", () => { "--no-install", "--typescript", ]); - } catch (e) { - err = e; + } catch (err) { + error = err; } finally { process.env.HTTPS_PROXY = prevProxy; } - expect(err?.message).toMatch("127.0.0.1:33"); + expect(error?.message).toMatch("127.0.0.1:33"); }); }); }); diff --git a/packages/remix-dev/__tests__/utils/withApp.ts b/packages/remix-dev/__tests__/utils/withApp.ts index c711a009a67..02abbd5dbb7 100644 --- a/packages/remix-dev/__tests__/utils/withApp.ts +++ b/packages/remix-dev/__tests__/utils/withApp.ts @@ -9,7 +9,7 @@ const retry = async ( ) => { try { await callback(); - } catch (error) { + } catch (error: unknown) { if (times === 0) throw error; setTimeout(() => retry(callback, times - 1), delayMs); } diff --git a/packages/remix-dev/cli/commands.ts b/packages/remix-dev/cli/commands.ts index 6f5f1d3b4e7..1ae39d70da7 100644 --- a/packages/remix-dev/cli/commands.ts +++ b/packages/remix-dev/cli/commands.ts @@ -94,7 +94,7 @@ export async function init( if (deleteScript) { await fse.remove(initScriptDir); } - } catch (error) { + } catch (error: unknown) { if (error instanceof Error) { error.message = `${colors.error("🚨 Oops, remix.init failed")}\n\n${ error.message @@ -222,7 +222,7 @@ export async function codemod( dry, force, }); - } catch (error) { + } catch (error: unknown) { if (error instanceof CodemodError) { console.error(`${colors.red("Error:")} ${error.message}`); if (error.additionalInfo) console.info(colors.gray(error.additionalInfo)); diff --git a/packages/remix-dev/cli/create.ts b/packages/remix-dev/cli/create.ts index 40feced27eb..bc953bd4bc6 100644 --- a/packages/remix-dev/cli/create.ts +++ b/packages/remix-dev/cli/create.ts @@ -176,7 +176,7 @@ export async function createApp({ let appPkg: any; try { appPkg = require(pkgJsonPath); - } catch (err) { + } catch { throw Error( "🚨 The provided template must be a Remix project with a `package.json` " + `file, but that file does not exist in ${pkgJsonPath}.` @@ -244,12 +244,12 @@ async function extractLocalTarball( gunzip(), tar.extract(projectDir, { strip: 1 }) ); - } catch (err) { + } catch (error: unknown) { throw Error( "🚨 There was a problem extracting the file from the provided template.\n\n" + ` Template filepath: \`${filePath}\`\n` + ` Destination directory: \`${projectDir}\`\n` + - ` ${err}` + ` ${error}` ); } } diff --git a/packages/remix-dev/cli/migrate/jscodeshift.ts b/packages/remix-dev/cli/migrate/jscodeshift.ts index 143b51d5dc4..49811372210 100644 --- a/packages/remix-dev/cli/migrate/jscodeshift.ts +++ b/packages/remix-dev/cli/migrate/jscodeshift.ts @@ -46,7 +46,7 @@ export const run = async <TransformOptions extends Options = Options>({ try { let { error } = await jscodeshift(transformPath, files, options); return error === 0; - } catch (error) { + } catch (error: unknown) { return false; } }; diff --git a/packages/remix-dev/cli/run.ts b/packages/remix-dev/cli/run.ts index af4f77c577c..4f80395c731 100644 --- a/packages/remix-dev/cli/run.ts +++ b/packages/remix-dev/cli/run.ts @@ -266,7 +266,7 @@ export async function run(argv: string[] = process.argv.slice(2)) { try { await validateNewProjectPath(String(input)); return true; - } catch (error) { + } catch (error: unknown) { if (error instanceof Error && error.message) { return error.message; } diff --git a/packages/remix-dev/codemod/utils/task.ts b/packages/remix-dev/codemod/utils/task.ts index 7716fda631e..4589421fb2b 100644 --- a/packages/remix-dev/codemod/utils/task.ts +++ b/packages/remix-dev/codemod/utils/task.ts @@ -15,7 +15,7 @@ export const task = async <Result>( let result = await callback(spinner); spinner.succeed(typeof succeed === "string" ? succeed : succeed(result)); return result; - } catch (error) { + } catch (error: unknown) { if (error instanceof CodemodError) { spinner.fail(error.message); if (error.additionalInfo) log.info(error.additionalInfo); diff --git a/packages/remix-dev/compiler/plugins/serverBareModulesPlugin.ts b/packages/remix-dev/compiler/plugins/serverBareModulesPlugin.ts index 8fb9e719eb7..79e043af935 100644 --- a/packages/remix-dev/compiler/plugins/serverBareModulesPlugin.ts +++ b/packages/remix-dev/compiler/plugins/serverBareModulesPlugin.ts @@ -81,7 +81,7 @@ export function serverBareModulesPlugin( ) { try { require.resolve(path); - } catch (error) { + } catch (error: unknown) { onWarning( `The path "${path}" is imported in ` + `${relative(process.cwd(), importer)} but ` + diff --git a/packages/remix-dev/compiler/remixCompiler.ts b/packages/remix-dev/compiler/remixCompiler.ts index 4d7f632af10..e4a75f4225c 100644 --- a/packages/remix-dev/compiler/remixCompiler.ts +++ b/packages/remix-dev/compiler/remixCompiler.ts @@ -32,8 +32,8 @@ export const compile = async ( let browserPromise = compiler.browser.compile(assetsManifestChannel); let serverPromise = compiler.server.compile(assetsManifestChannel); await Promise.all([browserPromise, serverPromise]); - } catch (err) { - options.onCompileFailure?.(err as Error); + } catch (error: unknown) { + options.onCompileFailure?.(error as Error); } }; diff --git a/packages/remix-dev/compiler/routeExports.ts b/packages/remix-dev/compiler/routeExports.ts index febe0b71099..74849ecb736 100644 --- a/packages/remix-dev/compiler/routeExports.ts +++ b/packages/remix-dev/compiler/routeExports.ts @@ -19,7 +19,7 @@ export async function getRouteModuleExports( let cached: CachedRouteExports | null = null; try { cached = await cache.getJson(config.cacheDirectory, key); - } catch (error) { + } catch (error: unknown) { // Ignore cache read errors. } @@ -28,7 +28,7 @@ export async function getRouteModuleExports( cached = { hash, exports }; try { await cache.putJson(config.cacheDirectory, key, cached); - } catch (error) { + } catch (error: unknown) { // Ignore cache put errors. } } diff --git a/packages/remix-dev/compiler/watch.ts b/packages/remix-dev/compiler/watch.ts index e23307c112c..0498f5ab660 100644 --- a/packages/remix-dev/compiler/watch.ts +++ b/packages/remix-dev/compiler/watch.ts @@ -65,7 +65,7 @@ export async function watch( try { config = await readConfig(config.rootDirectory); - } catch (error) { + } catch (error: unknown) { onCompileFailure(error as Error); return; } @@ -110,7 +110,7 @@ export async function watch( try { config = await readConfig(config.rootDirectory); - } catch (error) { + } catch (error: unknown) { onCompileFailure(error as Error); return; } diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts index 5c8a67ec29f..922a6247641 100644 --- a/packages/remix-dev/config.ts +++ b/packages/remix-dev/config.ts @@ -319,7 +319,7 @@ export async function readConfig( appConfigModule = await import(pathToFileURL(configFile).href); } appConfig = appConfigModule?.default || appConfigModule; - } catch (error) { + } catch (error: unknown) { throw new Error( `Error loading Remix config at ${configFile}\n${String(error)}` ); diff --git a/packages/remix-dev/devServer/serve.ts b/packages/remix-dev/devServer/serve.ts index c668523d860..b2e99f55273 100644 --- a/packages/remix-dev/devServer/serve.ts +++ b/packages/remix-dev/devServer/serve.ts @@ -18,7 +18,7 @@ function purgeAppRequireCache(buildPath: string) { function tryImport(packageName: string) { try { return require(packageName); - } catch (err) { + } catch { throw new Error( `Could not locate ${packageName}. Verify that you have it installed to use the dev command.` ); diff --git a/packages/remix-dev/env.ts b/packages/remix-dev/env.ts index e94813ebf95..5999d6d3b40 100644 --- a/packages/remix-dev/env.ts +++ b/packages/remix-dev/env.ts @@ -6,7 +6,7 @@ export async function loadEnv(rootDirectory: string): Promise<void> { let envPath = path.join(rootDirectory, ".env"); try { await fse.readFile(envPath); - } catch (e) { + } catch { return; } diff --git a/packages/remix-express/server.ts b/packages/remix-express/server.ts index 6c9aad43f0f..4f6fe881feb 100644 --- a/packages/remix-express/server.ts +++ b/packages/remix-express/server.ts @@ -61,7 +61,7 @@ export function createRequestHandler({ )) as NodeResponse; await sendRemixResponse(res, response); - } catch (error) { + } catch (error: unknown) { // Express doesn't support async functions, so we have to pass along the // error manually using next(). next(error); diff --git a/packages/remix-react/routeModules.ts b/packages/remix-react/routeModules.ts index 762a4d878d0..770d6dc8bc9 100644 --- a/packages/remix-react/routeModules.ts +++ b/packages/remix-react/routeModules.ts @@ -158,7 +158,7 @@ export async function loadRouteModule( let routeModule = await import(/* webpackIgnore: true */ route.module); routeModulesCache[route.id] = routeModule; return routeModule; - } catch (error) { + } catch (error: unknown) { // User got caught in the middle of a deploy and the CDN no longer has the // asset we're trying to import! Reload from the server and the user // (should) get the new manifest--unless the developer purged the static diff --git a/packages/remix-react/scroll-restoration.tsx b/packages/remix-react/scroll-restoration.tsx index 3b874a51ee0..59ce0dd5c91 100644 --- a/packages/remix-react/scroll-restoration.tsx +++ b/packages/remix-react/scroll-restoration.tsx @@ -47,7 +47,7 @@ export function ScrollRestoration(props: ScriptProps) { if (typeof storedY === "number") { window.scrollTo(0, storedY); } - } catch (error) { + } catch (error: unknown) { console.error(error); sessionStorage.removeItem(STORAGE_KEY); } diff --git a/packages/remix-react/transition.ts b/packages/remix-react/transition.ts index 31d8e64d13f..b7422dbcf30 100644 --- a/packages/remix-react/transition.ts +++ b/packages/remix-react/transition.ts @@ -1461,7 +1461,7 @@ async function callLoader(match: ClientMatch, url: URL, signal: AbortSignal) { let { params } = match; let value = await match.route.loader({ params, url, signal }); return { match, value }; - } catch (error) { + } catch (error: unknown) { return { match, value: error }; } } @@ -1479,7 +1479,7 @@ async function callAction( signal, }); return { match, value }; - } catch (error) { + } catch (error: unknown) { return { match, value: error }; } } diff --git a/packages/remix-server-runtime/cookies.ts b/packages/remix-server-runtime/cookies.ts index b002f0423ec..aa909fc769a 100644 --- a/packages/remix-server-runtime/cookies.ts +++ b/packages/remix-server-runtime/cookies.ts @@ -187,7 +187,7 @@ function encodeData(value: any): string { function decodeData(value: string): any { try { return JSON.parse(decodeURIComponent(myEscape(atob(value)))); - } catch (error) { + } catch (error: unknown) { return {}; } } diff --git a/packages/remix-server-runtime/server.ts b/packages/remix-server-runtime/server.ts index e814fddb5bb..9c40662c1bd 100644 --- a/packages/remix-server-runtime/server.ts +++ b/packages/remix-server-runtime/server.ts @@ -127,7 +127,7 @@ async function handleDataRequestRR( } return response; - } catch (error) { + } catch (error: unknown) { if (isResponse(error)) { error.headers.set("X-Remix-Catch", "yes"); return error; @@ -217,7 +217,7 @@ async function handleDocumentRequestRR( context = await staticHandler.query(request, { requestContext: loadContext, }); - } catch (error) { + } catch (error: unknown) { if (!request.signal.aborted && serverMode !== ServerMode.Test) { console.error(error); } @@ -352,7 +352,7 @@ async function handleDocumentRequestRR( return await handleDocumentRequestFunction( ...handleDocumentRequestParameters ); - } catch (error) { + } catch (error: unknown) { handleDocumentRequestParameters[1] = 500; appState.trackBoundaries = false; appState.error = await serializeError(error as Error); @@ -389,7 +389,7 @@ async function handleResourceRequestRR( "Expected a Response to be returned from queryRoute" ); return response; - } catch (error) { + } catch (error: unknown) { if (isResponse(error)) { // Note: Not functionally required but ensures that our response headers // match identically to what Remix returns diff --git a/rollup.config.js b/rollup.config.js index 109e63ca56d..cecb5e93443 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -6,7 +6,7 @@ module.exports = function rollup(options) { let configPath = path.join("packages", dir, "rollup.config.js"); try { fs.readFileSync(configPath); - } catch (e) { + } catch { return []; } let packageBuild = require(`.${path.sep}${configPath}`); diff --git a/rollup.utils.js b/rollup.utils.js index 346b15cc1c4..cb174ffd8ee 100644 --- a/rollup.utils.js +++ b/rollup.utils.js @@ -16,7 +16,7 @@ if (process.env.REMIX_LOCAL_BUILD_DIRECTORY) { ); try { fse.readdirSync(path.join(appDir, "node_modules")); - } catch (e) { + } catch { console.error( "Oops! You pointed REMIX_LOCAL_BUILD_DIRECTORY to a directory that " + "does not have a node_modules/ folder. Please `npm install` in that " + diff --git a/scripts/copy-build-to-dist.mjs b/scripts/copy-build-to-dist.mjs index befd1f450d5..11767577def 100644 --- a/scripts/copy-build-to-dist.mjs +++ b/scripts/copy-build-to-dist.mjs @@ -11,7 +11,7 @@ if (process.env.REMIX_LOCAL_BUILD_DIRECTORY) { let appDir = path.join(ROOT_DIR, process.env.REMIX_LOCAL_BUILD_DIRECTORY); try { fse.readdirSync(path.join(appDir, "node_modules")); - } catch (e) { + } catch { console.error( "Oops! You pointed `REMIX_LOCAL_BUILD_DIRECTORY` to a directory that " + "does not have a `node_modules` folder. Please `npm install` in that " + @@ -74,7 +74,7 @@ async function copyBuildToDist() { }); })() ); - } catch (e) {} + } catch {} } // One-off deep import copies so folks don't need to import from inside of diff --git a/scripts/release.js b/scripts/release.js index 0dc7f3933ce..8501ea4e2f3 100644 --- a/scripts/release.js +++ b/scripts/release.js @@ -173,7 +173,7 @@ async function execStart(nextVersion) { await gitPull("dev"); try { checkoutNewBranch(releaseBranch); - } catch (e) { + } catch { throw Error( `Branch ${chalk.bold( releaseBranch @@ -243,10 +243,10 @@ async function gitMerge(from, to, opts = {}) { let summary; try { summary = await git.merge([from]); - } catch (err) { - savedError = err; + } catch (error) { + savedError = error; // @ts-ignore - summary = err.git; + summary = error.git; } if (summary.conflicts.length > 0) { @@ -281,9 +281,9 @@ async function gitPull(branch) { console.error(chalk.red("Merge failed.\n")); throw Error(resp); } - } catch (e) { + } catch (error) { console.error(chalk.red(`Error rebasing to origin/${branch}`)); - throw e; + throw error; } } diff --git a/scripts/utils.js b/scripts/utils.js index c89fb8189f3..d42d8e22eea 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -80,7 +80,7 @@ async function updatePackageConfig(packageName, transform) { } transform(json); await jsonfile.writeFile(file, json, { spaces: 2 }); - } catch (err) { + } catch { return; } }