Skip to content

Commit 35ac168

Browse files
authored
docs(website): publish v0.18 blog post dated May 1 (#3938)
Rename release post file and align internal/skills links with the new URL. Made-with: Cursor
1 parent ea6f86f commit 35ac168

3 files changed

Lines changed: 12 additions & 12 deletions

File tree

.cursor/skills/data-client-v0.18-migration/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ Existing schemas that use it should keep it after the delegate parameter.
216216

217217
### Optional Collection cleanup
218218

219-
Unrelated to delegate signatures: v0.18 allows one `Collection` to carry both `argsKey` and `nestKey` so the same instance can back a top-level endpoint schema and a nested entity field. Consolidation is optional—see [Optional: consolidate Collection definitions](/blog/2026/04/24/v0.18-scalar-typed-downloads#collection-consolidation) in the v0.18 blog.
219+
Unrelated to delegate signatures: v0.18 allows one `Collection` to carry both `argsKey` and `nestKey` so the same instance can back a top-level endpoint schema and a nested entity field. Consolidation is optional—see [Optional: consolidate Collection definitions](/blog/2026/05/01/v0.18-scalar-typed-downloads#collection-consolidation) in the v0.18 blog.
220220

221221
## Where to find affected code
222222

docs/rest/shared/_ScalarDemo.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import HooksPlayground from '@site/src/components/HooksPlayground';
22
import { companyFixtures } from '@site/src/fixtures/companies';
33

4-
<HooksPlayground fixtures={companyFixtures} row groupId="schema" defaultOpen={props.defaultOpen ?? "y"} defaultTab={props.defaultTab}>
4+
<HooksPlayground fixtures={companyFixtures} row={props.row ?? false} groupId="schema" defaultOpen={props.defaultOpen ?? "y"} defaultTab={props.defaultTab}>
55

6-
```ts title="api/Company" {11-20,26-28,34-36} collapsed
6+
```ts title="api/Company" {11-20,26-28,34-36}
77
import { Collection, Entity, RestEndpoint, Scalar } from '@data-client/rest';
88

99
export class Company extends Entity {
@@ -80,7 +80,7 @@ function formatShares(value: number | undefined) {
8080
}
8181
```
8282

83-
```tsx title="PortfolioGrid"
83+
```tsx title="PortfolioGrid" collapsed
8484
import { useSuspense, useFetch } from '@data-client/react';
8585
import { getCompanies, getPortfolioColumns } from './api/Company';
8686
import CompanyGrid from './CompanyGrid';

website/blog/2026-04-24-v0.18-scalar-typed-downloads.md renamed to website/blog/2026-05-01-v0.18-scalar-typed-downloads.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,24 @@ v0.18 focuses on richer data modeling for values that vary by request context, s
1111

1212
**New Features:**
1313

14-
- [Scalar schema](/blog/2026/04/24/v0.18-scalar-typed-downloads#scalar) - Lens-dependent entity fields (e.g. portfolio-specific values) without ever mutating the underlying entity
15-
- [RestEndpoint `content` property](/blog/2026/04/24/v0.18-scalar-typed-downloads#content-property) - Typed file downloads, text responses, and streaming with a single property
16-
- [resource() `nonFilterArgumentKeys`](/blog/2026/04/24/v0.18-scalar-typed-downloads#non-filter-argument-keys) - Sort/pagination args don't fragment your [Collections](/rest/api/Collection)
14+
- [Scalar schema](/blog/2026/05/01/v0.18-scalar-typed-downloads#scalar) - Lens-dependent entity fields (e.g. portfolio-specific values) without ever mutating the underlying entity
15+
- [RestEndpoint `content` property](/blog/2026/05/01/v0.18-scalar-typed-downloads#content-property) - Typed file downloads, text responses, and streaming with a single property
16+
- [resource() `nonFilterArgumentKeys`](/blog/2026/05/01/v0.18-scalar-typed-downloads#non-filter-argument-keys) - Sort/pagination args don't fragment your [Collections](/rest/api/Collection)
1717

1818
**Other Improvements:**
1919

20-
- [Binary Content-Type auto-detection](/blog/2026/04/24/v0.18-scalar-typed-downloads#binary-auto-detection) - Images, PDFs, and other binary responses are handled automatically with no configuration ([#3868](https://github.com/reactive/data-client/pull/3868))
20+
- [Binary Content-Type auto-detection](/blog/2026/05/01/v0.18-scalar-typed-downloads#binary-auto-detection) - Images, PDFs, and other binary responses are handled automatically with no configuration ([#3868](https://github.com/reactive/data-client/pull/3868))
2121
- [Collection extender body types match HTTP method semantics](/rest/api/Collection) - PATCH extenders (`.move`, `.remove`) accept partial bodies; standalone [RestEndpoint](/rest/api/RestEndpoint) derives a typed body from the [Collection](/rest/api/Collection)'s entity schema ([#3910](https://github.com/reactive/data-client/pull/3910))
2222
- Export [`CollectionOptions`](/rest/api/Collection) from `@data-client/endpoint` and `@data-client/rest` for typed [Collection](/rest/api/Collection) construction ([#3904](https://github.com/reactive/data-client/pull/3904))
2323

24-
<ScalarDemo />
24+
<ScalarDemo row={false} />
2525

2626
The example shows the same `Company` entities rendered through different portfolio lenses. Stable [Entity](/rest/api/Entity) fields are reused, while lens-dependent values are selected from separate [`Scalar`](/rest/api/Scalar) cells.
2727

28-
**[Breaking Changes:](/blog/2026/04/24/v0.18-scalar-typed-downloads#migration-guide)**
28+
**[Breaking Changes:](/blog/2026/05/01/v0.18-scalar-typed-downloads#migration-guide)**
2929

30-
- [Schema.denormalize() takes a delegate](/blog/2026/04/24/v0.18-scalar-typed-downloads#denormalize-delegate) - `denormalize(input, args, unvisit)``denormalize(input, delegate)`. Affects custom [Schema](/rest/api/CustomSchema) implementations only.
31-
- [Schema.normalize() takes a delegate](/blog/2026/04/24/v0.18-scalar-typed-downloads#normalize-delegate) - `normalize(input, parent, key, args, visit, delegate)``normalize(input, parent, key, delegate)`. Affects custom [Schema](/rest/api/CustomSchema) implementations only.
30+
- [Schema.denormalize() takes a delegate](/blog/2026/05/01/v0.18-scalar-typed-downloads#denormalize-delegate) - `denormalize(input, args, unvisit)``denormalize(input, delegate)`. Affects custom [Schema](/rest/api/CustomSchema) implementations only.
31+
- [Schema.normalize() takes a delegate](/blog/2026/05/01/v0.18-scalar-typed-downloads#normalize-delegate) - `normalize(input, parent, key, args, visit, delegate)``normalize(input, parent, key, delegate)`. Affects custom [Schema](/rest/api/CustomSchema) implementations only.
3232

3333
Upgrade with the automated [codemod](/codemods/v0.18.js):
3434

0 commit comments

Comments
 (0)