このファイルは、このリポジトリで作業する際にClaude Code (claude.ai/code) へのガイダンスを提供します。
npm run build # CommonJSとESMモジュールの両方をビルド
npm run build:common # CommonJSモジュールのみをビルド
npm run build:esm # ESMモジュールのみをビルドnpm test # Jestで全てのテストを実行
npm run test # 上記と同じnpm run doc # docs/typedoc/ にTypeDocドキュメントを生成npm run prepare # 自動的にビルドを実行(npm installで実行される)AttrPathは、文字列記法を使用してJavaScriptオブジェクトの属性パスを安全に辿るためのTypeScriptライブラリです。コアアーキテクチャは以下で構成されています:
AttrPath (src/index.ts) - 静的メソッドを持つメインAPIクラス:
traverse(target, path, default_value?)- オブジェクトパスを安全にナビゲートupdate(target, path, value)- 特定のパスで値を更新is_valid(path)- パス構文を検証
パーサーシステム (src/parser.ts):
AttributeParser- 属性パス文字列のメインパーサーFormulaParser- 数式表現の拡張パーサーBaseParser- 共有パーサー機能TokenType- パーシング用のトークンタイプを定義するEnum
ハンドラーシステム (src/handler.ts):
ValueHandler- パス走査中に値を抽出Updater- パス走査中に値を更新BaseHandler- ハンドラー実装の抽象ベース
ストリーム処理 (src/stream.ts):
ParserStream- パス解析のための文字ストリーム処理
ユーティリティ (src/base.ts):
- 型チェックユーティリティ(
isNumber、isContainer、isValue)
ライブラリは複雑なパス表現をサポートします:
- オブジェクトプロパティ:
.propertyまたは['property'] - 配列インデックス:
[0]または[index] - 混合パス:
.children.john.hobby[1].name - ドット付きキー:
['children.john']
デュアルモジュールサポート:
- CommonJS:
tsconfig.jsonを使用してdist/にビルド - ESM:
tsconfig.esm.jsonを使用してdist/esm/にビルド
両方のビルドにはTypeScript宣言とソースマップが含まれます。
- フレームワーク:ts-jest transformerを使用したJest
- カバレッジ:
docs/coverage/に出力で有効 - テストファイル:
src/test.tsに配置 - 設定:
jest.config.ts
テストスイートは、コアAPI、パーシングロジック、および安全な走査のエッジケースをカバーしています。