LoginSignup
5
2

はじめに

FigmaのPluginを開発する際、ユーザー間で同期さたくないデータを保存したいなと思ったことはありますか?
そんな時に使うのが、「figma.clientStorage API」です。

この記事では、「figma.clientStorage API」について解説しようと思います。

figma.clientStorage API とは?

figma.clientStorage API は、データをユーザーのローカルマシンに保存できます。
ドキュメントに保存されるデータ(setPluginData)とは異なり、ユーザー間で同期されないのが特徴です。

Window.localStorage API と似ていますが、figma.clientStorage API は、非同期であり、オブジェクト、配列、文字列、数値、ブール値、null、undefined、Uint8Arrayを保存でき、1つのプラグインに1MBのストレージが割り当てられます。

また、ブラウザのキャッシュをクリアするなどのユーザーアクションによって、保存されたデータがクリアされます。

データは、セキュリティのためではなく、安定性のために非公開で保存されています。他のPluginからデータにアクセスすることは防ぎますが、ユーザーが自分のクライアントに保存されているデータを見ることは防げません。

プラグインIDが変更されると、データはアクセスできなくなります。

figma.clientStorage APIの使い方

⚪︎ クライアントストレージに保存したデータを取得する

指定されたkeyの値をクライアント・ストレージから取得します。
そのkeyに対応する値が格納されていない場合、 undefined を返します。

// getAsync(key: string): Promise<any | undefined>
const value = await figma.clientStorage.getAsync(key)

⚪︎ クライアントストレージにデータを保存する

指定されたkeyの値をクライアントのストレージに保存します。
保存が失敗した場合は、エラーメッセージを返し、保存は拒否されます。

// setAsync(key: string, value: any): Promise<void>
figma.clientStorage.setAsync(key, value)

// エラー処理
figma.clientStorage.setAsync(key, value).chatch((error: string) => { /* エラー処理 */ })

⚪︎ クライアントストレージに保存したデータを削除する

指定されたkeyに一致する、keyと値両方をクライアントのストレージから削除します。
指定されたkeyに一致するものがなかった場合は、なにも起こりません。

// deleteAsync(key: string): Promise<void>
figma.clientStorage.deleteAsync(key)

⚪︎ クライアントストレージに保存しているすべてのKeyを取得する

クライアント・ストレージに保存されているすべてのキーのリストを取得します。

// keysAsync(): Promise<string[]>
const keyList = await figma.clientStorage.keysAsync(key)

まとめ

この記事では、「figma.clientStorage API」について解説しました。
figma.clientStorage API は、ユーザー間で同期させたくないデータを保存することができる機能です。

特定のアカウントに紐付けたい、データを保存するのに便利です。


最後まで読んでくださってありがとうございます!

普段はデザインやフロントエンドを中心にQiitaで記事を投稿しているので、ぜひQiitaのフォローとX(Twitter)のフォローをお願いします。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2