Type Alias ManifestExports<Manifest, Options>

ManifestExports: ManifestTypes<
    Manifest,
    Options["statics"] extends MethodRecord ? Options["statics"] : EmptyRecord,
    Options["instances"] extends Record<string, InstanceMethod>
        ? Options["instances"]
        : EmptyInstanceMethods,
    Options["relations"] extends object
        ? Options["relations"]
        : Record<never, never>,
> & {
    InstanceMethods: InstanceMethodsFrom<
        Manifest,
        Options["instances"] extends Record<string, InstanceMethod>
            ? Options["instances"]
            : EmptyInstanceMethods,
        Options["relations"] extends object
            ? Options["relations"]
            : Record<never, never>,
    >;
    StaticMethods: StaticMethodsFrom<
        Manifest,
        Options["statics"] extends MethodRecord ? Options["statics"] : EmptyRecord,
        Options["instances"] extends Record<string, InstanceMethod>
            ? Options["instances"]
            : EmptyInstanceMethods,
        Options["relations"] extends object
            ? Options["relations"]
            : Record<never, never>,
    >;
}

Bundle convenience that accepts a single options object instead of multiple positional generics. This reduces boilerplate in manifests by grouping relations, static methods, and instance methods under descriptive keys.

Type Parameters

  • Manifest extends ModelManifest
  • Options extends ManifestTypeOptions = ManifestTypeOptions

Type declaration

  • InstanceMethods: InstanceMethodsFrom<
        Manifest,
        Options["instances"] extends Record<string, InstanceMethod>
            ? Options["instances"]
            : EmptyInstanceMethods,
        Options["relations"] extends object
            ? Options["relations"]
            : Record<never, never>,
    >

    Instance methods with correctly typed this context.

  • StaticMethods: StaticMethodsFrom<
        Manifest,
        Options["statics"] extends MethodRecord ? Options["statics"] : EmptyRecord,
        Options["instances"] extends Record<string, InstanceMethod>
            ? Options["instances"]
            : EmptyInstanceMethods,
        Options["relations"] extends object
            ? Options["relations"]
            : Record<never, never>,
    >

    Static methods with correctly typed this context.