Skip to content
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

misc: replace eslint -> biome, pre-commit -> lefthook #115

Merged
merged 4 commits into from
Jan 22, 2024

Conversation

mew-ton
Copy link
Contributor

@mew-ton mew-ton commented Jan 22, 2024

Summary by CodeRabbit

  • 新機能

    • 拡張機能「biomejs.biome」と「zixuanchen.vitest-explorer」の推奨追加。
    • コントリビューター向けに、プリコミットフックのインストールと有効化の指示を追加。
  • バグ修正

    • 特定のオブジェクトからキーを除外するomit関数の動作を改善。
    • キーの配列だけでなく正規表現の配列も受け入れるようにpick関数を修正。
    • twist関数に新たなオプションパラメータを追加。
  • リファクタリング

    • fold関数とunfold関数のオプションパラメータの取り扱いを明確化。
    • テストファイル内でのインポート文の再構成とオブジェクト構造の微調整。
  • スタイル

    • コードベース全体のスタイルとリントルールの適用をBiomeに変更。
    • TypeScriptとJavaScript設定、markdownlint設定の更新。
  • テスト

    • fold, omit, pick, twist, unfold関連のベンチマークとスペックテストファイルを改善。
  • その他

    • プロジェクトの開発ワークフローを強化するための設定変更。

Copy link

changeset-bot bot commented Jan 22, 2024

🦋 Changeset detected

Latest commit: 554589e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
json-origami Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link

coderabbitai bot commented Jan 22, 2024

Warning

Rate Limit Exceeded

@mew-ton has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 23 minutes and 30 seconds before requesting another review.

How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.
Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.
Please see our FAQ for further information.

Commits Files that changed from the base of the PR and between e38c358 and 554589e.

Walkthrough

プロジェクトのコードベースの整理と拡張が行われました。eslintからBiomeへの移行、開発ワークフローの向上のためのpre-commitフックの導入、そしてコードフォーマットの設定変更が含まれています。また、foldomitpicktwistunfold関数におけるリファクタリングや型の明確化、テストファイルのインポートの再編成など、多岐にわたる改善が施されました。

Changes

ファイルパス 変更概要
.github/workflows/lint__codebase.yml eslintアクションからBiomeへの移行
.vscode/... 拡張機能の推奨追加と設定変更
CONTRIBUTIONG.md pre-commitフックのインストールと有効化の指示追加
src/fold.ts, src/omit.ts, src/pick.ts, src/twist.ts, src/unfold.ts 関数のリファクタリングと型制約の追加
src/type.ts, src/utils.ts コメントの追加、型の更新、インポートの再編成
test/... インポートの再編成とテストケースの構造変更

Poem

🐰✨💻
コードが変わり、新たな章が始まる
リントの風、型の海を渡り
テストの森を駆け巡るうさぎ
今日もコードの世界で跳ねる

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share

Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit-tests for this file.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit tests for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository from git and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit tests.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

CodeRabbit Discord Community

Join our Discord Community to get help, request features, and share feedback.

Copy link

codspeed-hq bot commented Jan 22, 2024

CodSpeed Performance Report

Merging #115 will create unknown performance changes

⚠️ No base runs were found

Falling back to comparing feat/replace-eslint-to-biome (554589e) with main (b328490)

Summary

⚠️ No benchmarks were detected in both the base of the PR and the PR.

@mew-ton mew-ton merged commit 691dd55 into main Jan 22, 2024
7 checks passed
@mew-ton mew-ton deleted the feat/replace-eslint-to-biome branch January 22, 2024 06:49
@github-actions github-actions bot mentioned this pull request Jan 22, 2024
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Status

Actionable comments generated: 2

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 4ca7fc4 and e38c358.
Files ignored due to path filters (4)
  • biome.json is excluded by: !**/*.json
  • lefthook.yaml is excluded by: !**/*.yaml
  • package.json is excluded by: !**/*.json
  • yarn.lock is excluded by: !**/*.lock
Files selected for processing (23)
  • .github/workflows/lint__codebase.yml (2 hunks)
  • .vscode/project.code-workspace (1 hunks)
  • CONTRIBUTIONG.md (1 hunks)
  • src/fold.ts (2 hunks)
  • src/omit.ts (3 hunks)
  • src/pick.ts (2 hunks)
  • src/twist.ts (3 hunks)
  • src/type.ts (5 hunks)
  • src/unfold.ts (7 hunks)
  • src/utils.ts (3 hunks)
  • test/fold.bench.ts (2 hunks)
  • test/fold.spec.ts (12 hunks)
  • test/omit.bench.ts (2 hunks)
  • test/omit.spec.ts (6 hunks)
  • test/pick.bench.ts (2 hunks)
  • test/pick.spec.ts (5 hunks)
  • test/twist.bench.ts (2 hunks)
  • test/twist.spec.ts (12 hunks)
  • test/unfold.bench.ts (1 hunks)
  • test/unfold.spec.ts (11 hunks)
  • test/utils/constants.ts (1 hunks)
  • test/utils/factory.spec.ts (1 hunks)
  • test/utils/factory.ts (4 hunks)
Files skipped from review due to trivial changes (7)
  • src/twist.ts
  • test/omit.bench.ts
  • test/pick.bench.ts
  • test/pick.spec.ts
  • test/unfold.bench.ts
  • test/utils/constants.ts
  • test/utils/factory.spec.ts
Additional comments: 42
.vscode/project.code-workspace (5)
  • 8-11: 拡張機能の推奨リストに "biomejs.biome" と "zixuanchen.vitest-explorer" が追加されています。これは、新しいリンティングツールとテストエクスプローラーに対応するための変更であり、問題ないと思われます。
  • 16-17: JavaScriptのデフォルトフォーマッターが "biomejs.biome" に設定されています。これは、新しいリンティングツールに合わせた変更であり、適切です。
  • 20-21: TypeScriptのデフォルトフォーマッターも "biomejs.biome" に設定されています。これも新しいリンティングツールに合わせた変更であり、適切です。
  • 24-27: "editor.codeActionsOnSave" の設定が追加されており、Biomeに関連するクイックフィックスとインポートの整理が "explicit" に設定されています。これにより、保存時に特定のアクションが実行されるようになりますが、これがプロジェクトの標準であるかどうかは確認が必要です。
  • 29-31: Markdownlintの設定で "no-duplicate-heading" ルールが無効にされています。これは、Markdownファイル内で重複する見出しを許可するための変更です。プロジェクトのドキュメントスタイルガイドに従っているかどうかを確認する必要があります。
.github/workflows/lint__codebase.yml (1)
  • 27-33: ESLintが削除され、代わりにBiomeのセットアップと実行が追加されています。これはPRの目的に沿った変更であり、問題ないと思われます。
test/fold.bench.ts (1)
  • 2-3: インポート文が再編成され、fold 関数が異なる場所からインポートされています。これは、テストファイルの整理と一貫性を保つための変更であり、問題ないと思われます。
src/utils.ts (3)
  • 1-1: 型インポートが再編成されています。これは、コードの可読性を向上させるための変更であり、問題ないと思われます。
  • 20-24: 条件ブロックにカーリーブレースが追加されています。これは、コードの明確性を向上させるための変更であり、問題ないと思われます。
  • 34-36: こちらも条件ブロックにカーリーブレースが追加されています。これは、コードの明確性を向上させるための変更であり、問題ないと思われます。
src/pick.ts (1)
  • 33-44: pick 関数のシグネチャが単一の宣言に統合され、キーをフィルタリングするロジックが統合されています。これは、関数の使いやすさを向上させるための変更であり、問題ないと思われます。
src/omit.ts (1)
  • 40-59: > 📝 NOTE

This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [32-49]

omit 関数のパラメータ宣言と制御フローが変更されています。これは、関数の振る舞いを改善するための変更であり、問題ないと思われます。

src/fold.ts (4)
  • 2-8: 型インポートの順序が変更され、FixedFoldOption 型のインポートが追加されています。これは、型の明確性を向上させるための変更であり、問題ないと思われます。
  • 36-44: fold 関数が option パラメータをより明示的に扱うようにリファクタリングされています。これは、関数の使いやすさを向上させるための変更であり、問題ないと思われます。
  • 50-50: arrayKeyMap 変数に型制約が追加されています。これは、型安全性を向上させるための変更であり、問題ないと思われます。
  • 53-56: flatEntries 関数がタプルを返すようにリファクタリングされています。これは、関数の戻り値の明確性を向上させるための変更であり、問題ないと思われます。
CONTRIBUTIONG.md (1)
  • 10-14: 新しいプリコミットフックとして actionlintlefthook のインストールと有効化の指示が追加されています。これは、開発ワークフローを強化するための変更であり、問題ないと思われます。
test/twist.bench.ts (1)
  • 2-2: インポート文が再編成され、twistfold 関数が ../src モジュールからインポートされています。これは、テストファイルの整理と一貫性を保つための変更であり、問題ないと思われます。
test/utils/factory.ts (2)
  • 13-15: 非整数入力に対するエラーハンドリングが追加されています。これは、関数の堅牢性を向上させるための変更であり、問題ないと思われます。
  • 40-42: 条件ブロックにカーリーブレースが追加されています。これは、コードの明確性を向上させるための変更であり、問題ないと思われます。
test/omit.spec.ts (1)
  • 2-2: インポート文が再編成され、omit 関数が異なる場所からインポートされています。これは、テストファイルの整理と一貫性を保つための変更であり、問題ないと思われます。
src/type.ts (3)
  • 37-37: Unfolded 型のシグネチャが更新されています。これは、型の明確性を向上させるための変更であり、問題ないと思われます。
  • 82-82: defaultCommonOption の定義にカンマが追加されています。これは、コードの一貫性を保つためのスタイル上の変更であり、問題ないと思われます。
  • 115-115: defaultUnfoldOption の定義にカンマが追加されています。これもスタイル上の変更であり、問題ないと思われます。
test/fold.spec.ts (1)
  • 1-1: インポート文の順序が変更されています。これは、スタイル上の変更であり、問題ないと思われます。
src/unfold.ts (3)
  • 29-32: unfold 関数のシグネチャが更新され、option パラメータのスプレッドにカンマが追加されています。これは、コードの明確性を向上させるための変更であり、問題ないと思われます。
  • 50-50: extractHeadIndexMap の定義にカンマが追加されています。これもスタイル上の変更であり、問題ないと思われます。
  • 77-77: unfoldInternal 関数の引数の型がタプルに変更されています。これは、関数の戻り値の明確性を向上させるための変更であり、問題ないと思われます。
test/unfold.spec.ts (1)
  • 1-1: インポート文の順序が変更されています。これは、スタイル上の変更であり、問題ないと思われます。
test/twist.spec.ts (13)
  • 1-2: コードのインポート部分に変更はありません。
  • 9-18: twist partial keys テストケースに変更が加えられていますが、具体的な変更内容は示されていません。既存のコードとの整合性を確認する必要があります。
  • 27-34: twist nested keys テストケースにおいて、期待される結果が更新されています。変更が正しいかどうかを確認するために、twist 関数の実装を検証する必要があります。
  • 43-52: merge existed key テストケースが追加されています。このテストが意図した動作をしているかを確認するために、twist 関数の実装と照らし合わせる必要があります。
  • 61-70: swap object keys テストケースに変更があります。オブジェクトのキーを交換する機能が正しくテストされているかを確認するために、twist 関数の実装を再度検証する必要があります。
  • 79-88: swap array index テストケースに変更が加えられています。配列のインデックスを交換する機能が正しくテストされているかを確認するために、twist 関数の実装を再度検証する必要があります。
  • 97-106: swap array index with dot array index テストケースに変更があります。ドット記法を使用した配列のインデックス交換が正しくテストされているかを確認するために、twist 関数の実装を再度検証する必要があります。
  • 116-143: should handle object with numeric and string keys in root テストケースに変更があります。数値と文字列のキーを持つオブジェクトを正しく扱えるかを確認するために、twist 関数の実装を再度検証する必要があります。
  • 153-180: should handle object with numeric and string keys in root with dot array index テストケースに変更があります。ドット記法を使用した配列のインデックスを持つオブジェクトを正しく扱えるかを確認するために、twist 関数の実装を再度検証する必要があります。
  • 189-199: should prune array elements テストケースに変更があります。配列の要素を適切に削除できるかを確認するために、twist 関数の実装を再度検証する必要があります。
  • 208-218: should not prune array elements テストケースに変更があります。配列の要素を削除しない設定が正しくテストされているかを確認するために、twist 関数の実装を再度検証する必要があります。
  • 227-236: should return the original object when the second argument is an empty object テストケースに変更があります。第二引数が空のオブジェクトの場合に元のオブジェクトを返す機能が正しくテストされているかを確認するために、twist 関数の実装を再度検証する必要があります。
  • 247-272: should be twisted correctly when the prefix is the same string. テストケースに変更があります。プレフィックスが同じ文字列の場合に正しく変換されるかを確認するために、twist 関数の実装を再度検証する必要があります。

Comment on lines +82 to +86
// biome-ignore lint/style/noNonNullAssertion: <explanation>
const firstKey = extractHeadKey(entries[0]![0], opt)

if (firstKey === '') {
// biome-ignore lint/style/noNonNullAssertion: <explanation>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unfoldInternal 関数内で非nullアサーション演算子が使用されています。これは、コードの明確性を向上させるための変更であり、問題ないと思われますが、非nullアサーションの使用は潜在的なランタイムエラーを引き起こす可能性があるため、この使用については注意が必要です。

- const firstKey = extractHeadKey(entries[0]![0], opt);
+ const firstKey = entries.length > 0 ? extractHeadKey(entries[0][0], opt) : '';

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
// biome-ignore lint/style/noNonNullAssertion: <explanation>
const firstKey = extractHeadKey(entries[0]![0], opt)
if (firstKey === '') {
// biome-ignore lint/style/noNonNullAssertion: <explanation>
// biome-ignore lint/style/noNonNullAssertion: unfoldInternal 関数内で非nullアサーション演算子が使用されています。これは、コードの明確性を向上させるための変更であり、問題ないと思われますが、非nullアサーションの使用は潜在的なランタイムエラーを引き起こす可能性があるため、この使用については注意が必要です。
const firstKey = entries.length > 0 ? extractHeadKey(entries[0][0], opt) : '';
if (firstKey === '') {
// biome-ignore lint/style/noNonNullAssertion: <explanation>

Comment on lines +126 to +128
// biome-ignore lint/performance/noAccumulatingSpread: <explanation>
...acc,
[key]: unfolded
[key]: unfolded,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

オブジェクトのスプレッド演算子を使用していますが、これはパフォーマンスに影響を与える可能性があります。特に大きなオブジェクトや多数のプロパティを持つオブジェクトに対しては、代替の方法を検討する価値があります。

- ...acc,
- [key]: unfolded,
+ Object.assign(acc, { [key]: unfolded }),

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
// biome-ignore lint/performance/noAccumulatingSpread: <explanation>
...acc,
[key]: unfolded
[key]: unfolded,
// biome-ignore lint/performance/noAccumulatingSpread: <explanation>
Object.assign(acc, { [key]: unfolded }),

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant