Skip to content

createClientの戻り値の型定義 #64

@mkiken

Description

@mkiken

こちらのSDKを使わせていただいてTypeScriptで実装をしているのですが、createClient メソッド の戻り値の型定義がないので扱いづらく困っております。
取り急ぎ下記の MicroCmsClientInterface のように自前で定義しています。(自分がTypeScriptに精通していないので知らないだけかもしれませんが、SDKの定義をうまいこと流用したりできるのでしょうか...?)

type MicroCmsClientInterface = {
  get: <T = any>({
    endpoint,
    contentId,
    queries,
    customRequestInit,
  }: GetRequest) => Promise<T>
  getList: <T_1 = any>({
    endpoint,
    queries,
    customRequestInit,
  }: GetListRequest) => Promise<MicroCMSListResponse<T_1>>
  getListDetail: <T_2 = any>({
    endpoint,
    contentId,
    queries,
    customRequestInit,
  }: GetListDetailRequest) => Promise<T_2 & MicroCMSContentId & MicroCMSDate>
  getObject: <T_3 = any>({
    endpoint,
    queries,
    customRequestInit,
  }: GetObjectRequest) => Promise<T_3 & MicroCMSDate>
  create: <T_4 extends Record<string | number, any>>({
    endpoint,
    contentId,
    content,
    isDraft,
    customRequestInit,
  }: CreateRequest<T_4>) => Promise<WriteApiRequestResult>
  update: <T_5 extends Record<string | number, any>>({
    endpoint,
    contentId,
    content,
    customRequestInit,
  }: UpdateRequest<T_5>) => Promise<WriteApiRequestResult>
  delete: ({
    endpoint,
    contentId,
    customRequestInit,
  }: DeleteRequest) => Promise<void>
}

export abstract class CmsClient {
  private static _client: MicroCmsClientInterface
  ...
}

以下のissueのコメントにもあるように、createClient の型定義を導入するのはどうでしょうか?
方針がよさそうであれば自分の方でプルリクを出すことも可能です。
#4 (comment)

(もし実装するとなった場合、MicroCmsClientcreateClient のパラメータの型として定義されているので、命名が難しいなと思っております。
可能ならパラメータの型は MicroCmsClientParameter みたいに変えられればいいなと思うのですが、後方互換性がなくなるので微妙だよなあと...。)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions