3.10.0 • Published 8 months ago

@orion-js/typed-model v3.10.0

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

Typed Model Package

Allows you to define a class that represents a model. This allows quicker development and better type checking of your models (since all class type definitions can be reused).

Recommended usage example

Folder structure

+-- models/
    +-- user/
        +-- index.ts
        +-- resolvers/
            +-- fullName.ts

Resolver definition

// models/user/resolvers/fullName.ts

export const fullNameResolver = async ({firstName, lastName}) => `${firstName} ${lastName}`

export const fullNameSchema = {
  returns: {type: String},
  resolve: fullNameResolver
}

Model definition

// models/user/index.ts

import {Prop, Schema, Resolver, getModelForClass} from '@orion-js/typed-model'
import {fullNameSchema, fullNameResolver} from './resolvers/fullName'

@Schema()
export class User {
  @Prop()
  firstName: string

  @Prop({optional: true})
  lastName: string

  @Resolver(fullNameSchema)
  fullName: typeof fullNameResolver
}

export default getModelForClass(User)

Advanced usage

Schema Extension

Typed-model allows extending an existing Schema to reduce code repetition.

import {SchemaFieldTypes} from '@orion-js/schema'

@Schema()
class ModelWithId {
  @Prop({type: SchemaFieldTypes.ID})
  _id: string
}

class ModelWithName extends ModelWithId {
  @Prop()
  name: string
}

export default getModelForClass(ModelWithName)
// Will contain both _id and name props
3.10.0

8 months ago

3.9.0

1 year ago

3.7.6

1 year ago

3.7.4

1 year ago

3.7.3

2 years ago

3.7.2

2 years ago

3.7.1

2 years ago

3.6.5

2 years ago

3.6.4

2 years ago

3.6.1

2 years ago

3.5.3

2 years ago

3.3.9

3 years ago

3.3.6

3 years ago

3.4.1

3 years ago

3.3.13

3 years ago

3.3.14

3 years ago

3.3.10

3 years ago

3.3.11

3 years ago

3.3.12

3 years ago

3.4.9

3 years ago

3.3.25

3 years ago

3.5.0

2 years ago

3.3.20

3 years ago

3.3.21

3 years ago

3.2.53

3 years ago

3.2.39

3 years ago

3.2.48

3 years ago

3.2.40

3 years ago

3.2.28

3 years ago

3.2.29

3 years ago

3.2.21

3 years ago

3.2.18

3 years ago

3.2.33

3 years ago

3.1.12

3 years ago

3.1.13

3 years ago

3.1.10

3 years ago

3.2.2

3 years ago

3.2.1

3 years ago

3.2.0

3 years ago

3.1.27

3 years ago

3.1.6

3 years ago

3.2.4

3 years ago

3.2.3

3 years ago

3.2.10

3 years ago

3.1.1

3 years ago

3.1.0-alpha.0

3 years ago

3.0.38

3 years ago

3.0.36

3 years ago

3.0.37

3 years ago

3.0.24

4 years ago

3.0.27

4 years ago

3.0.28

4 years ago

3.0.26

4 years ago

3.0.20

4 years ago

3.0.9

4 years ago

3.0.13

4 years ago

3.0.32

4 years ago

3.0.2

4 years ago

3.0.33

4 years ago

3.0.16

4 years ago

3.0.17

4 years ago

3.0.7

4 years ago

3.0.14

4 years ago

3.0.6

4 years ago

3.0.15

4 years ago

3.0.31

4 years ago

3.0.0

4 years ago

3.0.0-alpha.24

4 years ago

3.0.0-alpha.23

4 years ago

3.0.0-alpha.20

4 years ago

3.0.0-alpha.19

4 years ago

3.0.0-alpha.16

4 years ago

3.0.0-alpha.13

4 years ago