Skip to content

Release 0.2.0-beta.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@tobyzerner tobyzerner released this 14 May 06:47
· 19 commits to master since this release
c9661f9

⚠️ Breaking Changes

  • Rewrite TypeScript support to allow Intellisense based on JSON:API resource schema. For example:

    type UsersSchema = {
        type: 'users';
        id: string;
        attributes: {
            name: string;
        };
        relationships: {
            dog: { data?: { type: 'dogs'; id: string } | null };
        };
    };
    
    class User extends Model<UsersSchema> {}

    To type related resources, you can provide a collection of all models as the second generic.

    type DogsSchema = {
        // ...
    };
    
    type Schemas = {
        users: User;
        dogs: Dog;
    };
    
    class User extends Model<UsersSchema, Schemas> {}
    class Dog extends Model<DogsSchema, Schemas> {}
  • The Store now returns proxied Model instances to implement field getters, instead of Model depending on Store and defining getters for present fields.

  • Remove the Query helper. Use URLSearchParams instead.

  • Remove Model attribute casting functionality. Define getters instead:

    class User extends Model<UserSchema> {
        get createdAtDate() {
            return new Date(this.createdAt);
        }
    }
  • Remove the Model.getAttribute() and Model.getRelationship() methods.

  • Remove CJS and IIFE exports. Package is now only exported as an ES module.