-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Improve code]: src/utils/*.ts 手動formatter・Linter対応 #78
Conversation
…e_63_zod_type_validation
下記のマージ有無が確定次第、ドラフト状態を解除します。 |
…e_63_zod_type_validation
ZodによるJSON.parse()型問題の解決案
Deploying skyshare with Cloudflare Pages
|
Zodの変更をマージしました |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
対応ありがとうございます!確認しました。ちょっと実装イメージにずれがあったのでコメントをしています、ご確認ください
astro/src/utils/useLocalStorage.ts
Outdated
const SavedTags = z.array(z.string()) | ||
const SavedDrafts = z.array(z.string()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Zod
のオブジェクトであることを明示する分で、ZodSavedTags
といった具合に、Zodを冠詞に付けるのがいいかなと思っています。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
対応しました!
astro/src/utils/useLocalStorage.ts
Outdated
const savedTags: string = | ||
Base64.encode(JSON.stringify(Tags) | ||
) | ||
const savedTags: string = Base64.encode(JSON.stringify(Tags)) | ||
set_ls_value(LSKeyName.savedTags, savedTags) | ||
} | ||
|
||
export const readDrafts = (): Array<string> => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
こちらもLoginInfo
で採用している方法と同様に、(冗長ではありますが)type SavedDrafts = z.infer<typeof ZodSavedDrafts>
を定義して、これを返り値にするのがいいと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
対応しました!
astro/src/utils/useLocalStorage.ts
Outdated
if (zodParsedDrafts.success) { | ||
const drafts: string[] = zodParsedDrafts.data | ||
return drafts | ||
} | ||
} | ||
rm_ls_value(LSKeyName.drafts) | ||
return [] | ||
} | ||
|
||
export const saveDrafts = (Drafts: string[]): void => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SavedTags
と同様に、type SavedDrafts = z.infer<typeof ZodSavedDrafts>
の定義内容を使うのがいいのかと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
対応しました!
astro/src/utils/useLocalStorage.ts
Outdated
@@ -41,61 +48,72 @@ export const setAppendVia = (flag: boolean): void => { | |||
// 将来的にはローカルではなく、DB側に保存したい | |||
// DB構造を変えることになると思われるため,大きなアップデートの時の次タスクとして積みたい | |||
export const readSavedTags = (): Array<string> => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LoginInfoで採用している方法と同様にtype SavedTags = z.infer<typeof ZodSavedTags>
を定義して、これを返り値の型にするのがいいかと。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
対応しました!
astro/src/utils/useLocalStorage.ts
Outdated
if (zodParsedTags.success) { | ||
const tags: string[] = zodParsedTags.data | ||
return tags | ||
} | ||
} | ||
rm_ls_value(LSKeyName.savedTags) | ||
return [] | ||
} | ||
|
||
export const setSavedTags = (Tags: string[]): void => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
入力の引数にもtype SavedDrafts = z.infer<typeof ZodSavedTags>
を定義してこれを使うのがいいのかと。型の内容自体は変わらないはずなので他コードに干渉することもないと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
対応しました!
import { Base64 } from "js-base64" | ||
import { z } from "zod" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#79 で気づけずすみません。packages-lock.json
にはzodのインストールは記載されているのですが、あくまで他パッケージ依存のような形になってしまっているので、packages.json
にzodが必要であることを明示したいです。インストール処理をお願いします。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
本当ですね
改めて対応しました
@nkte8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
対応ありがとうございました!マージします!
* [Improve code]: pages/* 手動formatter・Linter対応 (#77) * 🚨 未使用の引数`error`の名前にアンダースコアを追加 * 🚨 テンプレートリテラル内のURL型をstring型に変換 * 🎨 astro/src/pagesにPrettierを適用 * 🎨 astro/src/components/*.astroにPrettierを適用 (#76) * 🎨 astro/src/layoutsにPrettierを適用 (#80) * [Improve code]: utils/atproto_api/* 手動formatter・Linter対応 (#81) * 🚨 astro/src/utils/atproto_apiに`eslint . --fix`を実行 * 🎨 astro/src/utils/atproto_api/models/*にPrettierを適用 * 🎨 astro/src/utils/atproto_api/*にPrettierを適用 * ✏️ searchの誤字を修正 * 🏷️ imageの$typeを"blob"のみに限定 * 🚨 暫定的に、astro/src/utils/atproto_api以下のレスポンスを、as構文で型付け * 🎨 astro/src/utils/atproto_api/*.tsにPrettierを適用 * 🏷️ uploadBlobの戻り値の型情報を分割 * [Improve code]: astro/src/components/Client/bsky/* 手動formatter・Linter対応 (#83) * 🚨 astro/src/components/Client/bsky/にESLintの--fixオプションを適用 * 🔒️ target="_blank"付のタグの脆弱性対策を追加 詳細は下記を確認してください。 https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-target-blank.md * 🚨 readDrafts()が常にtruthyな値を返すようなので、OR演算子を削除 * 🏷️ atproto_apiの型定義変更に伴い、既存の実装の型情報を更新 * 🚨 Promise<void>を返す関数にvoidキーワードを追加 * 🚨 バッククォートで囲われたダブルクォートのエスケープを解除 * ✏️ identifierの綴りを修正 * 🚨 map()で繰り返し出力されるコンポーネントに、key属性を追加 * 🚨 使用されないエラー変数にアンダースコアを追加 * 🏷️ atproto_apiの型定義変更に伴い、既存の実装の型情報を更新 * 🎨 astro/src/components/Client/bskyにPrettierを適用 * ✏️ `LoginForm`の注意文言に、環境変数の`servicename`を用いるよう変更 * 💬 エラー処理後の型アサーションを解説するコメントを追記 * 🥅 使用されていないエラー変数名をアンダースコアのみに変更 * 🚨 エラー型の判定を`"error" in val`形式で統一 * ♻️ 変数定義と値の代入を凝集化 * 🚨 エラー型の判定を`"error" in val`形式で統一 * 🏷️ 型アサーションを用いない実装に変更 * 🔥 不要になったimport文を削除 * 🎨 astro/src/components/Client/bsky/*にPrettierを適用 * ESLint修正漏れの修正 --------- Co-authored-by: nekono <91360587+nkte8@users.noreply.github.com> * [Improve code]: src/utils/*.ts 手動formatter・Linter対応 (#78) * 🚨 browser-image-compressionエラー処理のリンティングエラーを修正 * 🎨 astro/src/utils/*.tsにPrettierを適用 * ✏️ searchの綴りを修正 * ✨ useLocalStorage.tsにzodによる型チェックを実装 * 🏷️ Zodオブジェクトをタグ、下書きに各々定義 * ➕ 依存関係にZodを追加 * 🏷️ Zodオブジェクトから型情報を定義 & 実際の使用方法に即した型名に変更 * [Improve code]: lib/* 手動formatter・Linter対応 (#84) * 🚨 astro/src/libにESLintのfixオプションを適用 * 🚨 Astroの環境変数をstring型とみなす記述を追加 * 🚨 nullish判定を明確化 * 💬 コメントの空白を半角に変更 * 🏷️ 変数の型情報を明記 * 🎨 astro/src/libにPrettierを適用 * ✏️ ファイル名getIdの綴りを修正 * ✏️ ファイル名変更に伴いimport文を修正 * 🏷️ Astro API用の型をZodで再定義 * 🦺 APIレスポンス取得箇所にバリデーションチェックを追加 * 🏷️ モジュール外で型の名前が重複しないよう変更 * 🩹 APIレスポンス処理時の型エラーに関する文言を修正 * 🏷️ API呼び出し箇所の型定義更新に伴い、エラー判定箇所を修正 * 🥅 getOgpMetaエラー時のステータス番号を定義 * ✏️ Zodオブジェクトの命名規則を統一 * 🥅 エラーレスポンスからhtmlを削除 * 🔥 使用されていないレスポンス型定義用のJSONを削除 * 🥅 エラー型判定の実装を改善 * 🥅 エラー型の判定を`"error" in val`形式で統一 * ⚰️ 使用されていない変数を削除 * ⚰️ 不要になった行を削除 * ➕ 依存関係にZodを追加 * 🥅 エラー型の判定ロジックを変更 & 型アサーション削除 * 🔥 不要になったインポート行を削除 * API応答を待機するコードを追加 (#92) * 🔥 ヘッドブランチを`preview/*`に制限するコードを削除 * 🎨 変数の定義順と使用順を統一 * 💬 分かりやすいコメントに変更 * ✨ ベースブランチに`hotfix/*`が指定できるように修正 --------- Co-authored-by: nekono <91360587+nkte8@users.noreply.github.com>
Resolves #63
追加ライブラリ