Commit Graph

3894 Commits (export-buildtree)

Author SHA1 Message Date
nickajacks1 18f0f8780e
v3: Update Version Numbers in Docs (#2853)
* 📚 Docs: Update version numbers for v3

* 📚 Docs: Update template docs to reflect changes in #2848

---------

Co-authored-by: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
2024-02-12 02:33:32 +03:00
Juan Calderon-Perez 535e5c62f4
Run tests against Apple M1 platform (#2852)
Run tests against MacOS-14 arm64 platform
2024-02-12 02:04:31 +03:00
Juan Calderon-Perez 62969f8dcd
Add CODEOWNERS file (#2851)
Create CODEOWNERS
2024-02-11 21:46:20 +01:00
nickajacks1 92dd8d6917
🎨 Style: Add inamedparam linter (#2848)
inamedparam enforces that parameters in interface definitions be named.
This is important for clarity so that users and implementers can easily
understand the purpose of each parameter.
2024-02-10 22:36:49 +01:00
Martin Hotmann 573afb953d
Update startup message formatting (#2847)
* Update listen.go (unform INFO prints at startip + cosmetics)

BEFORE:
```
    _______ __             
   / ____(_) /_  ___  _____
  / /_  / / __ \/ _ \/ ___/
 / __/ / / /_/ /  __/ /    
/_/   /_/_.___/\___/_/     v3.0.0-beta.1
--------------------------------------------------
INFO Server started on http://127.0.0.1:8003 (bound on host 0.0.0.0 and port 8003)
INFO Application name: TEST APP
INFO Total handlers count: 5
INFO Prefork: Disabled
INFO PID: 2342
INFO Total process count: 1
20:49:50 | 200 |     593.769µs |   123.123.123.123 | GET     | / 
```

AFTER:
```
    _______ __             
   / ____(_) /_  ___  _____
  / /_  / / __ \/ _ \/ ___/
 / __/ / / /_/ /  __/ /    
/_/   /_/_.___/\___/_/     v3.0.0-beta.1
--------------------------------------------------
INFO Server started on:      http://127.0.0.1:8003 (bound on host 0.0.0.0 and port 8003)
INFO Application name:       TEST APP
INFO Total handlers count:   5
INFO Prefork:                Disabled
INFO PID:                    2342
INFO Total process count:    1

20:49:50 | 200 |     593.769µs |   123.123.123.123 | GET     | /
```

* fix spacer

* fix indentation for fiber version

* fix linting

* fix linting #2

* fix listen_test.go to match newly expected output.

* fix test again

---------

Co-authored-by: root <root@clicon.hosting-hotmann.de>
Co-authored-by: Martin <martin@hotmann.de>
2024-02-10 21:55:04 +01:00
RW 389e63d2c2
Update csrf.md
fix readme example
2024-02-10 19:51:20 +01:00
nickajacks1 97da409533
🎨 Style!: Update CSRF and Limiter to remove repetitive names (#2846)
chore!: Update CSRF and Limiter to remove repetitive names

The `exported` rule of revive warns to not repeat the package name in
method names. For example, prefer `csrf.FromCookie` over
`csrf.CsrfFromCookie`.

This is a breaking change for v3.

It appears that these issues will not be caught by the linter until the
`exported` rule is reenabled. This requires comments on all exported
symbols, which is a much broader effort.
2024-02-10 19:50:29 +01:00
nickajacks1 70067a1754
♻️ Refactor: Remove mutex lock in logger middleware (#2840)
While not all implementations of io.Write will be goroutine safe, the
vast majority of users of the logger middleware are likely to use
os.File, which does implement safe concurrent writes. If users require
locking, they can implement this on an as-needed basis. The risk of
having global locking is that a slow write can hold up the entire
server.
2024-02-10 03:32:37 +03:00
Joey 9fd8bfc0bf
Merge pull request #2841 from nickajacks1/errcheck-cleanup
🎨 Style: Clean up errcheck config
2024-02-10 00:34:44 +01:00
Nicholas Jackson 059c0e33ed 🎨 Style: Clean up errcheck config
Globally ignore several methods that always return nil error.
Disable revive and gosec rules for error checking in favor of errcheck.
2024-02-09 12:23:59 -08:00
Joey 2b03f47fae
🚀 Performance improvements (#2838)
* Add new supporter

* Add new test condition

* Add Handler Type

* Update app.go

* Update group.go

* Add Handler Type

* Update ViewEngine

* Update Templates Interface

* Update template examples

* Update fasthttp to v1.13.1

* Default cookie SameSite to Lax

* - static file routing fixed for fasthttp 1.13
- fix expected cookie values in tests

* Update template examples

* Update fasthttp to v1.13.1

Co-Authored-By: Thomas van Vugt <thomasvvugt@users.noreply.github.com>

* Cookie SameSite defaults to Lax

Co-Authored-By: Thomas van Vugt <thomasvvugt@users.noreply.github.com>
Co-Authored-By: Queru <pascal@queru.net>

* Fix router bug

Co-Authored-By: RW <renewerner87@googlemail.com>

* Remove unused code

Co-Authored-By: RW <renewerner87@googlemail.com>

* Add more static tests

Co-Authored-By: RW <renewerner87@googlemail.com>

* Update app_test.go

Co-Authored-By: RW <renewerner87@googlemail.com>

* Update Static tests

Co-Authored-By: RW <renewerner87@googlemail.com>

* Update app_test.go

Co-Authored-By: RW <renewerner87@googlemail.com>

* Update app_test.go

Co-Authored-By: RW <renewerner87@googlemail.com>

* Fix handler next calls

Co-Authored-By: RW <renewerner87@googlemail.com>

* Update router.go

Co-Authored-By: RW <renewerner87@googlemail.com>

* Update ctx.go

Co-Authored-By: RW <renewerner87@googlemail.com>

* Update app_test.go

Co-Authored-By: RW <renewerner87@googlemail.com>

* Remove nextHandler

Co-Authored-By: RW <renewerner87@googlemail.com>

* Remove lencount

Co-Authored-By: RW <renewerner87@googlemail.com>

* Add ErrorHandler

* Add ErrorHandler tests

* Add recover by default

* Enable recover by default

* Add App()

* Add ErrorHandler

* Enable recover by default

* Add ErrorHandler

* Add App() & Middleware

* Add RequestID

* Add new supporters

* Update shields

* Add mw

* Update basic_auth.go

* Update README.md

* Update spacing

* Update basic_auth_test.go

* Update ctx_test.go

* Add tests

* Update middleware

* up

* Small improvements

Use optimized `utils.ToString` and avoid `once.Do`

**Before**
```
BenchmarkLogfKeyAndValues/test_logf_with_debug_level_and_key-values-24         	 7323432	       153.8 ns/op	      89 B/op	       1 allocs/op
BenchmarkLogfKeyAndValues/test_logf_with_info_level_and_key-values-24          	 8171703	       144.5 ns/op	      81 B/op	       1 allocs/op
BenchmarkLogfKeyAndValues/test_logf_with_warn_level_and_key-values-24          	 8207860	       142.8 ns/op	      81 B/op	       1 allocs/op
BenchmarkLogfKeyAndValues/test_logf_with_format_and_key-values-24              	 7500332	       159.1 ns/op	     135 B/op	       2 allocs/op
BenchmarkLogfKeyAndValues/test_logf_with_one_key-24                            	10024760	       131.0 ns/op	     155 B/op	       2 allocs/op
```
**After**
```
BenchmarkLogfKeyAndValues/test_logf_with_debug_level_and_key-values-24         	13797813	        77.42 ns/op	      77 B/op	       0 allocs/op
BenchmarkLogfKeyAndValues/test_logf_with_info_level_and_key-values-24          	15375350	        75.43 ns/op	      73 B/op	       1 allocs/op
BenchmarkLogfKeyAndValues/test_logf_with_warn_level_and_key-values-24          	14926300	        75.28 ns/op	      75 B/op	       1 allocs/op
BenchmarkLogfKeyAndValues/test_logf_with_format_and_key-values-24              	12860275	        90.27 ns/op	     134 B/op	       2 allocs/op
BenchmarkLogfKeyAndValues/test_logf_with_one_key-24                            	15649615	        74.98 ns/op	     100 B/op	       1 allocs/op
```

* Fix WithCtxCaller test

* Fix lint

* Fix lint

* Replace Sprintf with byebufferpool in ctx.String()

# Original fn using Sprintf
Benchmark_Ctx_String-24          3846717               318.0 ns/op           152 B/op          8 allocs/op
Benchmark_Ctx_String-24          3780208               315.9 ns/op           152 B/op          8 allocs/op
Benchmark_Ctx_String-24          3627513               315.1 ns/op           152 B/op          8 allocs/op
Benchmark_Ctx_String-24          3712863               317.4 ns/op           152 B/op          8 allocs/op

// Modified using bytebufferpool
Benchmark_Ctx_String-24          8131666               149.3 ns/op            96 B/op          5 allocs/op
Benchmark_Ctx_String-24          7626406               148.3 ns/op            96 B/op          5 allocs/op
Benchmark_Ctx_String-24          8194621               149.2 ns/op            96 B/op          5 allocs/op
Benchmark_Ctx_String-24          8297750               156.6 ns/op            96 B/op          5 allocs/op

* Fix linting

* Use bytebufferpool in default logger

* Fix linting

* Lint fix

* Update linter.yml

* Update linter.yml

* Disable caching as recommended by golangci-lint

* 🩹 fix lint errors

---------

Co-authored-by: ReneWerner87 <ReneWerner87@googlemail.com>
Co-authored-by: Thomas van Vugt <thomasvvugt@users.noreply.github.com>
Co-authored-by: Queru <pascal@queru.net>
Co-authored-by: ReneWerner87 <rene@gofiber.io>
Co-authored-by: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
2024-02-09 12:27:21 +01:00
Lino Gomez 847a4a959d
Fix: Typo in routing.md (#2836)
fix routing.md typo
2024-02-08 07:58:12 +01:00
Juan Calderon-Perez d305cc4ca5
Add go1.22 to test matrix (#2835) 2024-02-07 14:12:51 +01:00
Bruno 9b0a99ba27
🔥 v3 (feature): Adding GetReqHeaders and GetRespHeaders (#2831)
* Adding GetRespHeaders from v2

Signed-off-by: brunodmartins <bdm2943@icloud.com>

* Adding GetReqHeaders from v2

Signed-off-by: brunodmartins <bdm2943@icloud.com>

* Fixed linter on tests

Signed-off-by: brunodmartins <bdm2943@icloud.com>

---------

Signed-off-by: brunodmartins <bdm2943@icloud.com>
2024-02-05 10:11:29 +01:00
nickajacks1 926c537252
fix(logger): print to stderr if log fails for default format (#2830)
We log to stderr if logging fails when a custom format is used, but not
for the default format. This change addresses this inconsistency.
2024-02-05 08:16:34 +01:00
dependabot[bot] 93c726fb76
build(deps): bump release-drafter/release-drafter from 5 to 6 (#2826)
Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 5 to 6.
- [Release notes](https://github.com/release-drafter/release-drafter/releases)
- [Commits](https://github.com/release-drafter/release-drafter/compare/v5...v6)

---
updated-dependencies:
- dependency-name: release-drafter/release-drafter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-05 08:15:31 +01:00
dependabot[bot] dbe0443b90
build(deps): bump benchmark-action/github-action-benchmark from 1.16.2 to 1.19.3 (#2827)
build(deps): bump benchmark-action/github-action-benchmark

Bumps [benchmark-action/github-action-benchmark](https://github.com/benchmark-action/github-action-benchmark) from 1.16.2 to 1.19.3.
- [Release notes](https://github.com/benchmark-action/github-action-benchmark/releases)
- [Changelog](https://github.com/benchmark-action/github-action-benchmark/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benchmark-action/github-action-benchmark/compare/v1.16.2...v1.19.3)

---
updated-dependencies:
- dependency-name: benchmark-action/github-action-benchmark
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-02 19:10:40 +01:00
M. Efe Çetin 2a2801f486
v3 (feature): add support for custom constraints (#2807)
*  v3 (feature): add support for custom constraints

* fix linter

* fix

* disable goconst linter for tests

* update docs

* update
2024-02-02 09:56:58 +01:00
Andrey Kuvshinov bbfe9acf84
🩹[Fix]: Added respects body immutability to ctx.Body() and ctx.BodyRaw() functions. (#2812)
* Functions ctx.Body() and ctx.BodyRaw() respects immutability

* Tests for immutable request body

* Added b.ReportAllocs() & b.ResetTimer() in benchmarks of request body
2024-02-02 09:54:30 +01:00
dependabot[bot] a348c1dd2c
build(deps): bump nick-fields/retry from 2 to 3 (#2824)
Bumps [nick-fields/retry](https://github.com/nick-fields/retry) from 2 to 3.
- [Release notes](https://github.com/nick-fields/retry/releases)
- [Changelog](https://github.com/nick-fields/retry/blob/master/.releaserc.js)
- [Commits](https://github.com/nick-fields/retry/compare/v2...v3)

---
updated-dependencies:
- dependency-name: nick-fields/retry
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 13:38:43 +01:00
nickajacks1 dde9da33e3
fix: testifylint failure that fell through the cracks (#2821) 2024-01-31 07:58:09 +01:00
nickajacks1 ccf16117c0
ci: Update golangci-lint to v1.55.2 (#2817)
ci: bump golangci-lint to 1.55.2
2024-01-30 09:53:17 +01:00
Muh Ihsan Nur 455405c0f2
Update Typo documentation (#2820) 2024-01-30 09:52:14 +01:00
ACHMAD IRIANTO EKA PUTRA 738e062d5b
Addition of Locals Function with Go Generics as an Alternative to c.Locals (#2813)
* Add type-specific local value handling with generics in Ctx

Introduced a new function, Locals, that utilizes Go's generics to handle and retrieve type-specific local values within a request context. This enhancement provides more accurate data type control within the context. Included are tests for generic and custom struct use-cases to ensure the function performs as expected.

* Update documentation for Go generics in Locals method

Added documentation to explain the new version of the Locals method that uses Go's generics feature. This version allows for better control of data types when manipulating and retrieving local values within a request's context. Examples are provided, along with a caution on using correct data types to prevent a runtime panic.

* update ctx.md

* Correct indentation in API documentation

* Refactor Locals function and add new test case

* Refactor Locals function and add new test case

---------

Co-authored-by: Deza Farras Tsany <deza.ftsany@gmail.com>
2024-01-29 11:26:31 +01:00
naoki kuroda 31246ffe24
chore: fix force type assertions in session_test.go (#2815)
Signed-off-by: nnnkkk7 <kurodanaoki0711pana@gmail.com>
2024-01-28 18:39:53 +01:00
dependabot[bot] 755f133ac1
build(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0 (#2810)
Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/google/uuid/releases)
- [Changelog](https://github.com/google/uuid/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google/uuid/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: github.com/google/uuid
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-24 15:18:56 +03:00
Leo eb0c55cd8b
📚: Fix a misspelled comment (#2809)
Fix a misspelled comment
2024-01-24 11:42:18 +01:00
nickajacks1 3c4509f054
chore: Fix remaining testifylint errors (#2806) 2024-01-22 08:34:15 +01:00
nickajacks1 827013d789
chore: Fix testifylint errors in middleware (#2805) 2024-01-21 08:32:23 +01:00
ACHMAD IRIANTO EKA PUTRA 9a56a1bf6d
v3: Add QueryParser for get query using generic (#2776)
* Add QueryParser method and tests

Introduced a new method, QueryParser, to parse query parameters from a given context into specified types: integer, boolean, float, and string. The method provides default values for empty or invalid keys. Corresponding tests for each type have also been added to validate the functionality.

* Refactor QueryParser and add string support

Refactored the existing QueryParser method in the code to simplify its structure. Instead of reflecting on types, it now uses explicit type checking. In addition to the existing support for integers, booleans, and floats, the QueryParser method now also supports string parsing. Corresponding tests for the updated method and new feature were added as well.

* Update example call in method comment

Updated the method call example in the comment for the Query function in the ctx.go file. Previously, it was incorrectly demonstrating a call to "QueryParser("wanna_cake", 1)", but this has been updated to correctly represent the method it is commenting, resulting in "Query("wanna_cake", 1)".

* Refactor Query function in ctx.go

The update introduces better type assertion handling in the Query function. A switch statement is now employed to determine the type of the value as opposed to the previous if clauses. In addition, a validation step has been added to ensure the context passed into the function is of the correct type.

* Refactor type handling in Query function

The Query function in ctx.go has been refactored for better and clearer type handling. The code now uses a 'QueryType' interface, replacing explicit string, bool, float, and int declarations. This change also improves the error message when a type assertion fails, making it more descriptive about the specific failure.

* Add type assertion check in ctx.go

Updated the code in ctx.go to add a type assertion check for all case statements. The function now checks if the returned value is of the expected type, and if not, it throws a panic with a description of the failed type assertion.

* Refactor Query function to support more data types

The Query function has been expanded to support a broader range of data types. This includes support for extracting query parameters as different types of integers (both signed and unsigned), strings, floats, and booleans from the request's URI. The function now includes comprehensive parsing capabilities that allow for improved handling of different data types.

* Refactor Query function documentation

The documentation for the Query function has been updated to emphasize its versatility in handling various data types. The changes also clarify how the function operates and demonstrates the usage and benefits of providing a defaultValue. The different variations of QueryBool, QueryFloat, and QueryInt were removed, as they are now encompassed by the enhanced Query function.

* Add benchmark tests for Query function

Benchmark tests have been added to evaluate the performance of the Query function for different data types. These tests will help in assessing the efficiency of the function when processing various queries. The addition of these benchmarks will aid in future optimizations and enhancements of the function.

* Update generic Query function signature

The signature of the generic Query function has been updated to accept different types of data as arguments. The change improves flexibility of the function by allowing it to handle different data types, effectively making it a versatile tool in processing various queries.

* Modify `ctx.Query()` calls in documentation

`ctx.Query()` calls in the ctx.md documentation file were updated to remove the `ctx.` prefix. This is consistent with the typical use cases and makes the code examples more clear and easy to understand.

* Refactored assertValueType function and improved query parameter documentation

Updated the assertValueType function to utilize the utils.UnsafeBytes method for byte conversion. Enhanced the documentation for query parameter types to offer clearer, more comprehensive explanations and examples, including QueryTypeInteger, QueryTypeFloat, and subcategories.

* Update Query method calls to use new fiber.Query syntax

In this commit, the conventional `c.Query()` calls across multiple middleware and document files are updated to use the new `fiber.Query` syntax. The changes align with the updated function signatures in Fiber library that provides type-specific querying. These enhancements contribute to the project's overall robustness and consistency.

* Add Query method to get query string parameters

* Replace 'utils.UnsafeBytes' with 'ctx.app.getBytes'

In the query method, the utils.UnsafeBytes function was replaced with the ctx.app.getBytes method. This change enhances the extraction of query string parameters by making it safer and more context-specific.

* Refactor parsing functions in query handlers

The parsing functions in query handlers have been refactored to simplify the process. Parsing code has been extracted into dedicated functions like 'parseIntWithDefault' and 'parseFloatWithDefault', and they now reside in a new utils file. This modularization improves readability and maintainability of the code. Additionally, documentation is updated to reflect the changes.

* Refactor parsing functions in ctx.go

The parsing functions have been restructured to enhance readability and reduce repetition in the ctx.go file. This was achieved by creating generalised parsing functions that handle defaults and ensure the correct value type is returned. As a result, various single-use parsing functions in the utils.go file have been removed.

* Refactor code to centralize parsing functions
2024-01-19 14:43:44 +01:00
dependabot[bot] 603fbde9b6
build(deps): bump actions/cache from 3 to 4 (#2803)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-19 01:48:40 +03:00
Skillers3 c5cd468671
docs: fix typo in documentation (#2802)
Typo fix
2024-01-18 15:49:16 +03:00
nickajacks1 a776d2933e
ci: re-enable tparallel linter (#2801)
In some cases, loop variables had to be reassigned to a local variable
to avoid concurrent access. This will no longer be needed when fiber's
minimum go version is bumped to 1.22, where each loop iteration gets its
own variable.
2024-01-17 09:47:26 +01:00
nickajacks1 f2e9c1f21d
🚨 Test: Speed up addon/retry tests (#2800)
There was a test that used the default exponential backoff
configuration, causing the test to run for over 3 minutes. This test
does not increase coverage in a way that warrants the slowdown of CI,
and the default backoff time values are already verified by a separate
test.
2024-01-15 11:18:39 +01:00
nickajacks1 59410278f1
chore: change interface{} to any (#2796) 2024-01-14 23:04:54 +03:00
dependabot[bot] 38b8e741c1
build(deps): bump github/codeql-action from 2 to 3 (#2788)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-14 23:02:51 +03:00
dependabot[bot] 6bd046bbc2
build(deps): bump actions/setup-go from 4 to 5 (#2789)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4 to 5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-14 23:02:19 +03:00
Muhammed Efe Cetin 1588b6b602
Merge remote-tracking branch 'origin/master' 2024-01-13 18:26:07 +03:00
Diego Parisi 2143492223
📚 Doc: Undocumented function in session.md (#2795)
SetExpiry was not listed in the Session functions.
2024-01-12 10:31:27 +01:00
René Werner 96344abbd8 change golang pkg for docs 2024-01-08 16:42:07 +01:00
René Werner 9178bf753e configure workflows for main (v3-beta) branch 2024-01-08 16:39:59 +01:00
René Werner b2c9ccdeef configure workflows for main (v3-beta) branch 2024-01-08 16:38:37 +01:00
René Werner 6eb48fea8b configure workflows for main (v3-beta) branch 2024-01-08 16:37:35 +01:00
nickajacks1 956b66d95f
📚 Doc: Update handler signature for v3 (#2794)
📚 Doc: fix handler signature for v3
2024-01-08 16:31:15 +01:00
René Werner 960b652587 configure workflows for main (v3-beta) branch 2024-01-06 17:49:14 +01:00
nickajacks1 408fa20a91
🔥 v3: update Ctx.Format to match Express's res.format (#2766)
* 🔥 v3: update Ctx.Format to match Express's res.format

While the existing Ctx.Format provides a concise convenience method for
basic content negotiation on simple structures, res.format allows
developers to set their own custom handlers for each content type.

The existing Ctx.Format is renamed to Ctx.AutoFormat.

* doc: add docs for Ctx.Format

* refactor: update based on code review feedback

- Rename Fmt to ResFmt
- Add comments in several places
- Return errors instead of panicking in Format
- Add 'Accept' to the Vary header in Format to match res.format

* chore: improve docs and tests for AutoFormat and Format
2024-01-04 09:50:36 +01:00
Jason McNeil 2954e3bbae
♻️ v3: fix!: ContextKey collisions (#2781)
* fix: ContextKey collisions

* fix(logger): lint error

* docs(csrf): fix potential range error in example
2024-01-04 09:44:45 +01:00
dependabot[bot] fa30b4e9d0
build(deps): bump golang.org/x/sys from 0.14.0 to 0.15.0 (#2744)
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.14.0 to 0.15.0.
- [Commits](https://github.com/golang/sys/compare/v0.14.0...v0.15.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-28 22:42:05 +03:00
nickajacks1 8d5248bee6
🚨 Test: race in session middleware tests (#2740)
A Session must not be accessed after Save() is called, but a unit test
calls Session.ID() after Session.Save(), sometimes causing the test to
fail when -race is enabled. The assertions that ID() was being used in
were redundant with the previous two assertions (checking that the
session name header is empty), so we can just remove the offending code.
2023-11-27 14:38:31 +01:00
RW 28be17f929
Revert "🐛 requestid.Config.ContextKey is interface{} (#2369)" (#2742)
This reverts commit d7b36cde
2023-11-27 14:35:49 +01:00