🔧 ユーティリティ
Nodeblocks SDK は、堅牢で保守しやすいバックエンドサービスの構築に役立つ包括的なユーティリティ関数セットを提供します。これらのユーティリティはカテゴリ別に整理され、SDK 全体で使用される関数型プログラミングパターンとシームレスに連携するよう設計されています。
インポート名前空間
ユーティリティは SDK の 3 つの名前空間にまたがっています。すべてが utils にあるわけではありません。
import { utils, primitives, handlers } from '@nodeblocks/backend-sdk';
| 名前空間 | ソース | このページのカテゴリ |
|---|---|---|
utils | src/utils/* | Authentication、Entity、Common、Logging、Cookie、Cache、Schema |
primitives | src/primitives/combinators.ts | Composition、Handler ユーティリティ |
handlers | src/handlers/utils.ts | mergeData(合成パイプラインで使用) |
🔐 Authentication ユーティリティ (utils)
安全な API エンドポイントのための包括的な認証・トークン管理ユーティリティです。
getBearerTokenInfo: Authorization ヘッダーからのデフォルト Bearer トークン認証getCookieTokenInfo: Web アプリケーション向け Cookie ベースのトークン認証generateUserAccessToken: セキュリティ検証付きユーザーアクセストークンの作成generateAppAccessToken: サービス間通信向けアプリアクセストークンの作成generateRefreshToken: セッション管理用リフレッシュトークンの作成generateOnetimeToken: 一時アクセス用ワンタイムトークンの作成decryptAndVerifyJWT: 暗号化された JWT の復号と検証tokenPassesSecurityCheck: トークンに対するフィンガープリント/IP/ユーザーエージェントの検証defaultRefreshTokenBodyAuth: リクエスト本文からリフレッシュトークンを検証defaultRefreshTokenCookieAuth: Cookie からリフレッシュトークンを検証resolveRefreshTokenFromRequest: Cookie および/または本文からリフレッシュトークンを解決deriveCookieMaxAge:expiresInをミリ秒単位の CookiemaxAgeへ変換
完全なエクスポート一覧は Authentication ユーティリティ を参照してください。
🆔 Entity ユーティリティ (utils)
自動フィールド生成によるデータベースエンティティの作成・管理に不可欠なユーティリティです。
createBaseEntity: 自動生成されたid、createdAt、updatedAtフィールドを持つエンティティを作成updateBaseEntity:updatedAtタイムスタンプを自動で更新BaseEntity: 標準エンティティ基本フィールドの TypeScript 型
🔧 Composition ユーティリティ (primitives)
ハンドラーの合成、非同期操作の処理、複雑なビジネスロジックパイプラインの構築に不可欠なユーティリティです。
compose: 複数の関数を単一のパイプラインに結合lift: 前の合成ステップからの非同期Promiseを同期ターミネーター(通常はorThrow)へ橋渡しflatMap: Result を返す同期操作を連結flatMapAsync: Result を返す非同期操作を連結applyPayloadArgs: ペイロードから引数を抽出し、純粋関数に適用orThrow: エラー型を HTTP コードにマッピングし、成功データを抽出match: ネストしたパス検査用の述語ヘルパーifElse: 分岐用の関数型条件hasValue: 空でない述語(null/undefined/空でない)withSoftDelete: 検索/更新/削除操作に論理削除フィルターを適用するハンドラーラッパーmergeData(handlers): 後続ハンドラー用にデータをペイロードコンテキストへマージnotFromEmitter、markAsFromEmitter: RxJS/WebSocket パイプラインでエミッター ID によりメッセージをフィルター/タグ付け
either や mapMatchingErrorToFalse などの追加 primitives エクスポートは、Composition ユーティリティに記載されています。
🎭 Handler ユーティリティ (primitives)
任意のハンドラーに適用できる、横断的関心事とミドルウェア風ユーティリティです。
withLogging: 任意の関数に包括的なログ記録を追加withPagination: MongoDBfind()操作に自動ページネーションを追加withPaginatedProperty:findOne()結果のネスト配列をページネーションDEFAULT_REDACTION:withLoggingのデフォルトフィールドマスキング規則DEFAULT_SANITIZATION:withLoggingのデフォルトサニタイズ規則
🔧 Common ユーティリティ (utils)
一般的な操作のための汎用ユーティリティ関数です。
generateUUID: UUID v4 文字列を生成isObject: 値がオブジェクトまたは関数かを検査(実行時検査)isError: 値がErrorインスタンスかを検査isResult:neverthrowのOk/Errインスタンスの型ガード
📝 Logging ユーティリティ (utils)
構造化ログのための Pino による事前構成済みログ設定です。
nodeblocksLogger: 見やすいフォーマットを備えた事前構成済み Pino ロガーnodeblocksHTTPLogger: HTTP リクエスト/レスポンスのログミドルウェアLogger: ロガー統合用 TypeScript 型エイリアス(pino.Logger)
🍪 Cookie ユーティリティ (utils)
Cookie ベース認証および Set-Cookie オプション解決のヘルパーです。
CookieOptions、DEFAULT_COOKIE_OPTS、withCookieOptDefaults、isCookieMode、whenCookieAuth
💾 Cache ユーティリティ (utils)
サービスレベルのメモ化のための TTL 付きインメモリ LRU キャッシュです。
createCache:maxEntries、ttl、get/set/del/clear/pruneExpired/sizeを持つファクトリー
📋 Schema ユーティリティ (utils)
NoSQL インジェクション保護を備えた AJV スキーマヘルパーです。
createAjvInstance、addMongoFilterKeyword、applySchemaDefaults、applyDefaultSchemaEnhancements
スキーマ検証とは異なる、ルートレベルのビジネスロジックバリデーターについては Validator を参照してください。
➡️ 次のステップ
- 基本原則については Concepts を確認
- トークン管理とセキュリティパターンについては Authentication ユーティリティ を確認
- サービスレベルの認証構成については Authentication サービス を参照