emberjs / data

A lightweight reactive data library for web applications. Designed over composable primitives.
https://api.emberjs.com/ember-data/release
Other
3.03k stars 1.33k forks source link

🛤️ tracking: The Road to Polaris ✨ #9337

Open runspired opened 4 months ago

runspired commented 4 months ago

🌌 Universal

[!NOTE] Universal also presumes that we ship SchemaRecord (in the WarpDrive section) for full utility, and that tasks in the Vite section are done.

🚀 WarpDrive

Schema DSL - Legacy - [ ] Can parse simple legacy attributes to JSON schema - [ ] Can parse complex legacy attributes to JSON schema - [ ] Can parse belongsTo to JSON schema - [ ] Can parse hasMany to JSON schema - [ ] Can parse ID field to JSON schema - [ ] Can parse derived field to JSON schema - [ ] Can parse local field to JSON schema - [ ] Traits are included in JSON schema - [ ] Can parse simple legacy attributes to read Type - [ ] Can parse complex legacy attributes to read Type - [ ] Can parse belongsTo to read Type - [ ] Can parse ID field to read Type - [ ] Can parse derived field to read Type - [ ] Can parse local field to read Type - [ ] Traits are included in read Type - [ ] Can parse hasMany to read Type - [ ] Can parse simple legacy attributes to update Type - [ ] Can parse complex legacy attributes to update Type - [ ] Can parse belongsTo to update Type - [ ] Can parse hasMany to update Type - [ ] Can parse ID field to update Type - [ ] Can parse derived field to update Type - [ ] Can parse local field to update Type - [ ] Traits are included in update Type - [ ] Can parse simple legacy attributes to create type - [ ] Can parse complex legacy attributes to create Type - [ ] Can parse belongsTo to create type - [ ] Can parse hasMany to create type - [ ] Can parse ID field to create Type - [ ] Can parse derived field to create Type - [ ] Can parse local field to create Type - [ ] Traits are included in create Type - Modern - [ ] Can parse generic fields to JSON schema - [ ] Can parse object fields to JSON schema - [ ] Can parse array fields to JSON schema - [ ] Can parse schema-object to JSON schema - [ ] Can parse schema-array to JSON schema - [ ] Can parse resource to JSON schema - [ ] Can parse collection to JSON schema - [ ] Can parse generic fields to read Type - [ ] Can parse object fields to read Type - [ ] Can parse array fields to read Type - [ ] Can parse schema-object to read Type - [ ] Can parse schema-array to read Type - [ ] Can parse resource to read Type - [ ] Can parse collection to read Type - [ ] Can parse generic fields to update Type - [ ] Can parse object fields to update Type - [ ] Can parse array fields to update Type - [ ] Can parse schema-object to update Type - [ ] Can parse schema-array to update Type - [ ] Can parse resource to update Type - [ ] Can parse collection to update Type - [ ] Can parse generic fields to create Type - [ ] Can parse object fields to create Type - [ ] Can parse array fields to create Type - [ ] Can parse schema-object to create Type - [ ] Can parse schema-array to create Type - [ ] Can parse resource to create Type - [ ] Can parse collection to create Type
SchemaRecord - Legacy - [x] supports read on `attr` - [x] supports read on `belongsTo` - [x] supports read on `hasMany` - [x] supports read on derivation - [x] supports read on `@local` - [x] supports read on `@id` - [x] attr is reactive - [x] belongsTo is reactive - [x] hasMany is reactive - [x] derivations are reactive - [x] `@local` is reactive - [x] `@id` is reactive - [x] supports edit on `attr` - [x] supports edit on `belongsTo` - [x] supports edit on `hasMany` - [x] errors for edit on derivation - [x] supports edit on `@local` - [x] supports edit on `@id` when record is new only - [x] supports create on `attr` - [x] supports create on `belongsTo` - [x] supports create on `hasMany` - [x] errors for create on derivation - [-] ~(MAYBE) supports create on `@local`~ - [x] supports create on `@id` - [x] supports LEGACY mode (no checkout required) - Modern - [ ] supports `record.checkout` - [x] supports read on `field` - [x] supports read on `object` - [x] supports read on `array` - [ ] supports read on `schema-object` - [x] supports read on `schema-array` - [x] supports read on `resource` - [ ] supports read on sync `collection` - [ ] supports read on async `collection` (requires cache pagination support) - [x] `field` is reactive - [x] `object` is deeply reactive - [x] `array` is deeply reactive - [ ] `schema-object` is deeply reactive - [x] `schema-array` is deeply reactive - [ ] `resource` is reactive - [ ] `collection` is reactive - [ ] supports edit on `field` - [ ] supports edit on `object` - [x] supports edit on `array` - [ ] supports edit on `schema-object` - [ ] supports edit on `schema-array` - [ ] supports edit on `resource` - [ ] supports edit on sync `collection` - [ ] supports edit on async `collection` (requires cache pagination support) - [ ] supports create on `field` - [ ] supports create on `object` - [ ] supports create on `array` - [ ] supports create on `schema-object` - [ ] supports create on `schema-array` - [ ] supports create on `resource` - [ ] supports create on sync `collection` - [ ] supports create on async `collection` (requires cache pagination support)

🐹 Ember

🩻 Testing & Debugging

Nice To Have

⚡️ Vite

[!TIP] This section might be one of the easiest to complete for someone that understands a bit of tooling without needing to dig into EmberData's library code.

Nice To Have

💚 Typescript

[!TIP] This section might be one of the easiest to complete for someone that understands typescript without needing to learn too much of EmberData's library code.

Nice To Have

💡 API Documentation

🔭 Guides

🚢 Onboarding

lifeart commented 4 months ago

Really inspiring list!

@runspired is any CRDT support planned (https://blog.notmyidea.org/a-comparison-of-javascript-crdts.html)? @Baltazore said it's could be implemented on top of custom handler

runspired commented 4 months ago

@lifeart built-in support for CRDT is not planned, and likely never will be due to how it overlaps with JSON:API operations, but yes, it could be implemented overtop of a handler

sandstrom commented 4 months ago

@lifeart If you have some free time, and would like to contribute to this roadmap, we'd be willing to sponsor your work on Ember Data.

Can discuss in more detail if you're interested (we're sponsoring runspired and rwjblue already).

runspired commented 1 month ago

a few polaris updates: