-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Labels
enhancementNew feature or requestNew feature or request
Description
こちらの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)
(もし実装するとなった場合、MicroCmsClient が createClient のパラメータの型として定義されているので、命名が難しいなと思っております。
可能ならパラメータの型は MicroCmsClientParameter みたいに変えられればいいなと思うのですが、後方互換性がなくなるので微妙だよなあと...。)
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request