coding-javascript について
coding-javascript は、OpenClaw で現代的な JavaScript のコーディングを支援するスキルです。ブラウザー開発を中心に、DOM、非同期処理、ジェネレーター、WeakRef、Proxy などを扱います。
主な機能
- 01DOM 要素の操作
- 02fetch と async/await の利用
- 03ジェネレーターの活用
- 04WeakRef による参照管理
- 05Proxy による動作のカスタマイズ
- 06現代的な JavaScript パターンの適用
活用シーン
- 01インタラクティブなブラウザーアプリの構築
- 02API リクエストと応答の処理
- 03ジェネレーターによる値の処理
- 04Proxy によるオブジェクト変更の検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill coding-javascriptインストール後、Claude Code で/coding-javascriptを入力して読み込まれたか確認します。
詳細
coding-javascript
目的
このスキルは、DOM 操作、非同期処理、高度なパターンなど、最新のブラウザーを使った開発に重点を置き、ES2024 の機能を活用した JavaScript のコーディングタスクを OpenClaw が支援できるようにします。
使用する場面
インタラクティブな Web アプリの構築、API リクエストの処理、WeakRef を使った効率的なメモリ管理の実装など、フロントエンドの JavaScript に関する支援が必要な場合にこのスキルを使用します。特にブラウザー環境で、ES6 以降の環境におけるプロミス、ジェネレーター、Proxy を扱うタスクに適用します。
主な機能
- querySelector とイベントリスナーを使って DOM 要素を操作します。
- fetch API、プロミス、async/await を使って非同期コードを処理します。
- ループ内で値を yield するなど、反復処理にジェネレーターを使用します。
- ガベージコレクションに適した参照として WeakRef を使い、メモリを管理します。
- プロパティアクセスのトラップなど、オブジェクトの動作をカスタマイズする Proxy を実装します。
- モジュール、アロー関数、分割代入などの最新パターンを適用します。
使用パターン
このスキルを呼び出すには、OpenClaw コマンドでユーザーのクエリに「use coding-javascript」を付けます。例:「openclaw use coding-javascript and write a fetch function」。コードを生成する場合は、変数名や API エンドポイントなどの具体的な入力を指定します。必要に応じて、「WeakRef を使ってコードを生成する」のように ES2024 の機能を必ず指定してください。「use coding-javascript then coding-web for full-stack advice」のようにスキルを連結して統合します。デプロイ前に、ブラウザーのコンソールで出力をテストしてください。
一般的なコマンド/API
OpenClaw CLI を使って有効化します:openclaw run coding-javascript --query="explain promises"。JavaScript の詳細については、以下を参照してください。
- Fetch API:
fetch('https://api.example.com/data', { method: 'GET' })を使ってリクエストを行い、.then(response => response.json())でレスポンスを処理します。 - プロミス:
.then()と.catch()でチェーンします。例:new Promise(resolve => resolve('data')).then(data => console.log(data))。 - ジェネレーター:
function* gen() { yield 1; yield 2; }で定義し、for (let value of gen()) { console.log(value); }で反復処理します。 - WeakRef:
new WeakRef(object)で作成し、.deref()で参照を取得します。ガベージコレクション済みの場合は null になる可能性があります。 - Proxy:
new Proxy(target, { get: (target, prop) => console.log(prop) })で設定し、アクセスをインターセプトします。 設定形式:スキル入力には JSON を使用します。例:OpenClaw の設定で{ "feature": "promises", "example": true }。外部 API を使用する場合は、スクリプト内で$JAVASCRIPT_API_KEYなどの環境変数を使って認証を設定します。
統合に関する注意
「openclaw chain coding-javascript and coding-css」のように、複数スキルのワークフローにこのスキルを含めて、OpenClaw と統合します。ブラウザー環境では、Chrome や Node.js v14+ などの最新のエンジンでコードが動作することを確認してください。シークレットには環境変数を使用します。例:export $FETCH_API_KEY を設定し、コード内で process.env.FETCH_API_KEY として参照します。「ES2024 のみを使用する」のようにバージョンを指定して、競合を避けてください。テストする場合は、コードをモジュールでラップします:import { fetch } from 'whatwg-fetch';。
エラー処理
非同期コードは、必ず try-catch ブロックでラップしてください。例:
try {
await fetch('url').then(res => res.json());
} catch (error) {
console.error('Fetch failed:', error.message);
}
プロミスには .catch() を使います:promise.then(data => process(data)).catch(err => logError(err))。ジェネレーターでは、ループ内の try-catch で反復処理のエラーを処理します。Proxy では、ハンドラー内でエラーをトラップします。例:new Proxy({}, { get: (target, prop) => { if (!target[prop]) throw new Error('Property not found'); } })。WeakRef が有効か確認します:if (weakRef.deref() !== undefined) { useObject(); }。OpenClaw では、openclaw log --skill=coding-javascript --error=details でエラーを記録します。
具体的な使用例
- ユーザーデータを取得して表示する場合:
openclaw use coding-javascript and generate: const userId = 1; fetch(https://api.example.com/users/${userId}`).then(res => res.json()).then(data => console.log(data.name));`を使用します。 - Proxy ベースの検証の場合:
openclaw use coding-javascript and code: const handler = { set: (obj, prop, value) => { if (prop === 'age' && value < 18) throw Error('Underage'); obj[prop] = value; } }; const proxy = new Proxy({}, handler); proxy.age = 16; // Throws errorで呼び出します。
グラフの関係
- 関連:coding-python(言語間の比較用)、coding-web(フロントエンドとの統合用)。
- 依存:general-coding(基本構文用)、async-patterns(Promise の処理用)。
- 競合:legacy-javascript(ES5 に重点を置いているため)。