@orion-js/typed-model v4.0.15
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.tsResolver 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 props8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
10 months ago
8 months ago
8 months ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago