LemmyNet / lemmy

🐀 A link aggregator and forum for the fediverse
https://join-lemmy.org
GNU Affero General Public License v3.0
12.95k stars 859 forks source link

Update Rust crate ts-rs to v9 #4855

Open renovate[bot] opened 2 weeks ago

renovate[bot] commented 2 weeks ago

Mend Renovate

This PR contains the following updates:

Package Type Update Change
ts-rs workspace.dependencies major 7.1.1 -> 9.0.0

Release Notes

Aleph-Alpha/ts-rs (ts-rs) ### [`v9.0.0`](https://togithub.com/Aleph-Alpha/ts-rs/blob/HEAD/CHANGELOG.md#900) [Compare Source](https://togithub.com/Aleph-Alpha/ts-rs/compare/v8.1.0...v9.0.0) ##### Breaking - `#[serde(with = "...")]` requires the use of `#[ts(as = "...")]` or `#[ts(type = "...")]` ([#​280](https://togithub.com/Aleph-Alpha/ts-rs/pull/280)) - Fix incompatibility with serde for `snake_case`, `kebab-case` and `SCREAMING_SNAKE_CASE` ([#​298](https://togithub.com/Aleph-Alpha/ts-rs/pull/298)) - `#[ts(rename_all = "...")]` no longer accepts variations in the string's casing, dashes and underscores to make behavior consistent with serde ([#​298](https://togithub.com/Aleph-Alpha/ts-rs/pull/298)) - Remove `TypeList`, and replace `TS::dependency_types`/`TS::generics` with `TS::visit_dependencies`/`TS::visit_generics`. This finally resolves "overflow evaluating the requirement", "reached the recursion limit" errors. Also, compile times should benefit. This is a technically breaking change for those interacting with the `TS` trait directly. For those just using `#[derive(TS)]` and `#[ts(...)]`, nothing changes! ##### Features - Add support for `#[ts(type = "..")]` directly on structs and enums ([#​286](https://togithub.com/Aleph-Alpha/ts-rs/pull/286)) - Add support for `#[ts(as = "..")]` directly on structs and enums ([#​288](https://togithub.com/Aleph-Alpha/ts-rs/pull/288)) - Add support for `#[ts(rename_all = "SCREAMING-KEBAB-CASE")]` ([#​298](https://togithub.com/Aleph-Alpha/ts-rs/pull/298)) - Support `_` in `#[ts(type = "..")]` to refer to the type of the field ([#​299](https://togithub.com/Aleph-Alpha/ts-rs/pull/299)) ##### Fixes - Fix `#[ts(rename_all_fields = "...")]` on enums containing tuple or unit variants ([#​287](https://togithub.com/Aleph-Alpha/ts-rs/pull/287)) - Fix "overflow evaluating the requirement" and "reached the recursion limit" errors in some cases ([#​293](https://togithub.com/Aleph-Alpha/ts-rs/pull/293)) - Fix ambiguity causing "multiple applicable items in scope" errors in some cases ([#​309](https://togithub.com/Aleph-Alpha/ts-rs/pull/309)) - Fix issues with absolute `TS_RS_EXPORT_DIR` paths ([#​323](https://togithub.com/Aleph-Alpha/ts-rs/pull/323)) - Add newlines to the end of exported files ([#​321](https://togithub.com/Aleph-Alpha/ts-rs/pull/321)) ### [`v8.1.0`](https://togithub.com/Aleph-Alpha/ts-rs/blob/HEAD/CHANGELOG.md#810) [Compare Source](https://togithub.com/Aleph-Alpha/ts-rs/compare/v8.0.0...v8.1.0) ##### Breaking ##### Features - Add `#[ts(crate = "..")]` to allow usage of `#[derive(TS)]` from other proc-macro crates ([#​274](https://togithub.com/Aleph-Alpha/ts-rs/pull/274)) - Add support types from `serde_json` behind cargo feature `serde-json-impl` ([#​276](https://togithub.com/Aleph-Alpha/ts-rs/pull/276)) ##### Fixes - Macro expansion for types with generic parameters now works without the `TS` trait in scope ([#​281](https://togithub.com/Aleph-Alpha/ts-rs/pull/281)) - Fix enum flattening a struct that contains a flattened enum ([#​282](https://togithub.com/Aleph-Alpha/ts-rs/pull/282)) ### [`v8.0.0`](https://togithub.com/Aleph-Alpha/ts-rs/blob/HEAD/CHANGELOG.md#v800) [Compare Source](https://togithub.com/Aleph-Alpha/ts-rs/compare/v7.1.1...v8.0.0) ##### Breaking - Export types as `type` instead of `ìnterface` ([#​203](https://togithub.com/Aleph-Alpha/ts-rs/pull/203)) - Automatically export all dependencies when using `#[ts(export)]`, add `TS::dependency_types()` ([#​221](https://togithub.com/Aleph-Alpha/ts-rs/pull/221)) - Remove support for "skip_serializing", "skip_serializing_if" and "skip_deserializing". ([#​204](https://togithub.com/Aleph-Alpha/ts-rs/pull/204)) - Initially supporting these by skipping a field was a mistake. If a user wishes to skip a field, they can still annotate it with `#[ts(skip)]` - Added `TS::dependency_types()` ([#​221](https://togithub.com/Aleph-Alpha/ts-rs/pull/221)) - Added `TS::generics()` ([#​241](https://togithub.com/Aleph-Alpha/ts-rs/pull/241)) - Added `TS::WithoutGenerics` ([#​241](https://togithub.com/Aleph-Alpha/ts-rs/pull/241)) - Removed `TS::transparent()` ([#​243](https://togithub.com/Aleph-Alpha/ts-rs/pull/243)) - Handling of output paths ([#​247](https://togithub.com/Aleph-Alpha/ts-rs/pull/247), [#​250](https://togithub.com/Aleph-Alpha/ts-rs/pull/250), [#​256](https://togithub.com/Aleph-Alpha/ts-rs/pull/256)) - All paths specified using `#[ts(export_to = "...")]` are now relative to `TS_RS_EXPORT_DIR`, which defaults to `./bindings/` - Replace `TS::export` with `TS::export`, `TS::export_all` and `TS::export_to_all` ([#​263](https://togithub.com/Aleph-Alpha/ts-rs/pull/263)) ##### Features - Implement `#[ts(as = "..")]` ([#​174](https://togithub.com/Aleph-Alpha/ts-rs/pull/174)) - For small arrays, generate tuples instead of `Array` ([#​209](https://togithub.com/Aleph-Alpha/ts-rs/pull/209)) - Implement `#[ts(optional = nullable)]` ([#​213](https://togithub.com/Aleph-Alpha/ts-rs/pull/213)) - Allow inlining of fields with generic types ([#​212](https://togithub.com/Aleph-Alpha/ts-rs/pull/212), [#​215](https://togithub.com/Aleph-Alpha/ts-rs/pull/215), [#​216](https://togithub.com/Aleph-Alpha/ts-rs/pull/216)) - Allow flattening enum fields ([#​206](https://togithub.com/Aleph-Alpha/ts-rs/pull/206)) - Add `semver-impl` cargo feature with support for the *semver* crate ([#​176](https://togithub.com/Aleph-Alpha/ts-rs/pull/176)) - Support `HashMap` with custom hashers ([#​173](https://togithub.com/Aleph-Alpha/ts-rs/pull/173)) - Add `import-esm` cargo feature to import files with a `.js` extension ([#​192](https://togithub.com/Aleph-Alpha/ts-rs/pull/192)) - Implement `#[ts(...)]` equivalents for `#[serde(tag = "...")]`, `#[serde(tag = "...", content = "...")]` and `#[serde(untagged)]` ([#​227](https://togithub.com/Aleph-Alpha/ts-rs/pull/227)) - Support `#[serde(untagged)]` on individual enum variants ([#​226](https://togithub.com/Aleph-Alpha/ts-rs/pull/226)) - Support for `#[serde(rename_all_fields = "...")]` ([#​225](https://togithub.com/Aleph-Alpha/ts-rs/pull/225)) - Export Rust doc comments/attributes on structs/enums as TSDoc strings ([#​187](https://togithub.com/Aleph-Alpha/ts-rs/pull/187)) - `Result`, `Option`, `HashMap` and `Vec` had their implementations of `TS` changed ([#​241](https://togithub.com/Aleph-Alpha/ts-rs/pull/241)) - Implement `#[ts(...)]` equivalent for `#[serde(tag = "...")]` being used on a struct with named fields ([#​244](https://togithub.com/Aleph-Alpha/ts-rs/pull/244)) - Implement `#[ts(concrete(..))]` to specify a concrete type for a generic parameter ([#​264](https://togithub.com/Aleph-Alpha/ts-rs/pull/264)) ##### Fixes - Fix `#[ts(skip)]` and `#[serde(skip)]` in variants of adjacently or internally tagged enums ([#​231](https://togithub.com/Aleph-Alpha/ts-rs/pull/231)) - `rename_all` with `camelCase` produces wrong names if fields were already in camelCase ([#​198](https://togithub.com/Aleph-Alpha/ts-rs/pull/198)) - Improve support for references ([#​199](https://togithub.com/Aleph-Alpha/ts-rs/pull/199)) - Generic type aliases generate correctly ([#​233](https://togithub.com/Aleph-Alpha/ts-rs/pull/233)) - Improve compiler errors ([#​257](https://togithub.com/Aleph-Alpha/ts-rs/pull/257)) - Update dependencies ([#​255](https://togithub.com/Aleph-Alpha/ts-rs/pull/255))

Configuration

📅 Schedule: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.