Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: improve functions error messages #4486

Merged
merged 16 commits into from
Mar 31, 2022

Conversation

jackiewmacharia
Copy link
Contributor

@jackiewmacharia jackiewmacharia commented Mar 28, 2022

Summary

Extends Improve Function Error Messages to CLI.

This PR adds a template for use when parsing errors from functions:
cli-error-page


For us to review and ship your PR efficiently, please perform the following steps:

  • Open a bug/issue before writing your code 🧑‍💻. This ensures we can discuss the changes and get feedback from everyone that should be involved. If you`re fixing a typo or something that`s on fire 🔥 (e.g. incident related), you can skip this step.
  • Read the contribution guidelines 📖. This ensures your code follows our style guide and
    passes our tests.
  • Update or add tests (if any source code was changed or added) 🧪
  • Update or add documentation (if features were changed or added) 📝
  • Make sure the status checks below are successful ✅

A picture of a cute animal (not mandatory, but encouraged)
cute animal

@jackiewmacharia jackiewmacharia added the type: feature code contributing to the implementation of a feature and/or user facing functionality label Mar 28, 2022
@github-actions
Copy link

github-actions bot commented Mar 28, 2022

📊 Benchmark results

Comparing with 92d621b

Package size: 380 MB

(no change)

^  380 MB  380 MB  380 MB  380 MB  380 MB  380 MB  380 MB  380 MB  380 MB  380 MB  380 MB  380 MB  380 MB 
│   ┌──┐    ┌──┐    ┌──┐    ┌──┐    ┌──┐    ┌──┐    ┌──┐    ┌──┐    ┌──┐    ┌──┐    ┌──┐    ┌──┐    ┌──┐  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
└───┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴──>
    T-12    T-11    T-10    T-9     T-8     T-7     T-6     T-5     T-4     T-3     T-2     T-1      T    
Legend

@minivan
Copy link
Contributor

minivan commented Mar 28, 2022

I'm curious how this fares with functions that are invoked by clients that don't accept HTML. If it works, can we add a test case for that?

Copy link
Member

@eduardoboucas eduardoboucas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good in general — great job!

I left some comments. Btw, if you're wondering about the sand/boulder prefixes, it refers to our feedback ladder.

@jackiewmacharia
Copy link
Contributor Author

I'm curious how this fares with functions that are invoked by clients that don't accept HTML. If it works, can we add a test case for that?

@minivan I've changed it to revert to the original error format if client does not accept HTML. Behaviour before this change, using curl and API client, pasted the entire template out.

Current behaviour:
handles-non-html-clients

@jackiewmacharia jackiewmacharia changed the title Improve functions error messages feat: improve functions error messages Mar 30, 2022
Copy link
Member

@eduardoboucas eduardoboucas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@jackiewmacharia jackiewmacharia merged commit 5a8a330 into main Mar 31, 2022
@jackiewmacharia jackiewmacharia deleted the feat/cli-better-error-pages-for-functions branch March 31, 2022 14:20
eduardoboucas added a commit that referenced this pull request Apr 18, 2022
* fix(deps): update dependency @netlify/plugins-list to ^6.17.0 (#4472)

* fix(deps): update dependency @netlify/plugins-list to ^6.17.0

* chore: update contributors field

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency commander to v9.1.0 (#4466)

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Erez Rokah <[email protected]>

* chore(main): release 9.13.4 (#4470)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>

* fix(deps): update dependency netlify to ^11.0.1 (#4473)

Co-authored-by: Renovate Bot <[email protected]>

* fix(deps): update dependency @netlify/build to ^26.5.1 (#4475)

Co-authored-by: Renovate Bot <[email protected]>

* fix(deps): update dependency @netlify/config to ^17.0.19 (#4476)

Co-authored-by: Renovate Bot <[email protected]>

* chore(deps): bump minimist from 1.2.5 to 1.2.6 in /tests/integration/eleventy-site (#4477)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump minimist from 1.2.5 to 1.2.6 in /site (#4478)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ehmicky <[email protected]>

* fix(deps): update dependency stripe to v8.211.0 (#4467)

* fix(deps): update dependency stripe to v8.211.0

* style: don't format lock files

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: erezrokah <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* chore(main): release 9.13.5 (#4474)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>

* fix(deps): update dependency minimist to v1.2.6 (#4480)

Co-authored-by: Renovate Bot <[email protected]>

* fix(deps): update dependency typescript to v4.6.3 (#4481)

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* fix(deps): update rust crate log to 0.4.16 (#4482)

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* fix(deps): update dependency stripe to v8.212.0 (#4483)

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* fix(deps): update dependency gh-release-fetch to v3.0.2 (#4479)

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* chore(main): release 9.13.6 (#4485)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>

* chore(deps): update dependency @netlify/eslint-config-node to ^5.1.8 (#4487)

Co-authored-by: Renovate Bot <[email protected]>

* fix: polling for API Authentication (#4490)

* feat: add local dev support for Go scheduled functions (#4491)

* fix: detection for Go scheduled functions

* fix: incompatible fs import

* chore: fix conventional message error

* fix: parse schedule from config

* fix: unsupported optional chaining

* fix: broken function test without config

* chore: fix prettier warnings

* fix: additional checks in NetlifyFunction

* feat: assert valid next_run in test

* chore: update names and tests

* feat(dev-graph): populate X-Nf-Graph-Token header (#4493)

* feat(dev-graph): populate X-Nf-Graph-Token header

* chore: update contributors field

* chore: update contributors field

Co-authored-by: token-generator-app[bot] <token-generator-app[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* chore(main): release 9.14.0 (#4492)

* chore(main): release 9.14.0

* chore: update contributors field

* chore: update contributors field

* chore: update contributors field

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>
Co-authored-by: token-generator-app[bot] <token-generator-app[bot]@users.noreply.github.com>

* feat: added scheduled functions template for Go (#4495)

* feat: go scheduled functions template

* chore: update contributors field

* chore: placeholder for github handle in go mod

* chore: remove unnecessary makefile

* chore: go version update

Co-authored-by: karagulamos <[email protected]>

* chore(main): release 9.15.0 (#4496)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>

* fix(deps): update dependency @netlify/plugins-list to ^6.18.1 (#4494)

* fix(deps): update dependency @netlify/plugins-list to ^6.18.1

* chore: update contributors field

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com>
Co-authored-by: Erez Rokah <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* feat: improve functions error messages (#4486)

* feat: implement better error pages for functions in CLI

* chore(main): release 9.16.0 (#4497)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>

* fix: fallback should there be an error getting the functions error page template (#4499)

* fix: wrap render template in try catch

* chore: include template in files tracked by npm

* chore(main): release 9.16.1 (#4500)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>

* fix(deps): update dependency cron-parser to v4.3.0 (#4504)

Co-authored-by: Renovate Bot <[email protected]>

* fix(deps): update dependency stripe to v8.215.0 (#4505)

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* chore(main): release 9.16.2 (#4510)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>

* fix(deps): update dependency @netlify/build to ^26.5.2 (#4512)

Co-authored-by: Renovate Bot <[email protected]>

* fix(deps): update dependency @netlify/config to ^17.0.20 (#4513)

Co-authored-by: Renovate Bot <[email protected]>

* chore(main): release 9.16.3 (#4514)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>

* fix(deps): update dependency @netlify/plugins-list to ^6.19.0 (#4516)

Co-authored-by: Renovate Bot <[email protected]>

* fix(deps): update dependency lambda-local to v2.0.2 (#4443)

* fix(deps): update dependency lambda-local to v2.0.2

* chore: update contributors field

* feat: update to correctly mirror synchronous execution (closes #4304)

* chore: update contributors field

* chore: update contributors field

* fix: format

* chore: update contributors field

* chore: update contributors field

* fix: tests

* chore: update contributors field

* chore: update contributors field

* fix: another test

* chore: update contributors field

* fix: another test

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com>
Co-authored-by: Netlify Team Account 1 <[email protected]>
Co-authored-by: Skn0tt <[email protected]>
Co-authored-by: token-generator-app[bot] <token-generator-app[bot]@users.noreply.github.com>
Co-authored-by: Simon Knott <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Erez Rokah <[email protected]>

* chore(main): release 9.16.4 (#4517)

* chore(main): release 9.16.4

* chore: update contributors field

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>
Co-authored-by: token-generator-app[bot] <token-generator-app[bot]@users.noreply.github.com>

* fix(deps): update dependency stripe to v8.216.0 (#4520)

Co-authored-by: Renovate Bot <[email protected]>

* fix(deps): update dependency semver to v7.3.6 (#4518)

Co-authored-by: Renovate Bot <[email protected]>

* chore(deps): update dependency ava to v4.2.0 (#4519)

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* fix(deps): update dependency winston to v3.7.2 (#4521)

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Erez Rokah <[email protected]>

* chore(main): release 9.16.5 (#4525)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>

* chore(deps): update codecov/codecov-action action to v3 (#4522)

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: Erez Rokah <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* fix(deps): update dependency @netlify/build to ^26.5.3 (#4529)

Co-authored-by: Renovate Bot <[email protected]>

* chore(deps): update dependency @netlify/eslint-config-node to v6 (#4501)

* chore(deps): update dependency @netlify/eslint-config-node to v6

* chore: fix eslintrc

* chore: fix linting

* chore: update shrinkwrap file

Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: ehmicky <[email protected]>
Co-authored-by: erezrokah <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* chore(main): release 9.16.6 (#4530)

Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* chore: merge main

* chore: remove dependency

* chore: fix linting errors

* chore: fix test

* chore: remove duplicate test

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Erez Rokah <[email protected]>
Co-authored-by: token-generator-app[bot] <82042599+token-generator-app[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ehmicky <[email protected]>
Co-authored-by: Antonio Nuno Monteiro <[email protected]>
Co-authored-by: Karagulamos <[email protected]>
Co-authored-by: Daniel Woelfel <[email protected]>
Co-authored-by: token-generator-app[bot] <token-generator-app[bot]@users.noreply.github.com>
Co-authored-by: karagulamos <[email protected]>
Co-authored-by: Jackie Macharia <[email protected]>
Co-authored-by: Netlify Team Account 1 <[email protected]>
Co-authored-by: Skn0tt <[email protected]>
Co-authored-by: Simon Knott <[email protected]>
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: ehmicky <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: feature code contributing to the implementation of a feature and/or user facing functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants