swiftwasm/swift-wasm-agent-skill/bridge-js
Claude Code and agent skill by swiftwasm/swift-wasm-agent-skill
- community
Checking that the SKILL.md file is still in the repository.
Export Swift to JavaScript and import JavaScript/TypeScript into Swift using BridgeJS; type-safe bindings via @JS and related macros or bridge-js.d.ts; setup, config, AOT. Use when using or setting up BridgeJS, exporting Swift APIs to JS, importing JS/TS APIs into Swift, writing bridge-js.d.ts, configuring BridgeJS, or debugging BridgeJS boundaries.
Install
npx vskill@latest install swiftwasm/swift-wasm-agent-skill/bridge-jsSKILL.md
BridgeJS
BridgeJS is a code-generation layer in JavaScriptKit that makes Swift–JavaScript interop faster and easier than raw JSObject/JSValue: you declare the API shape in Swift (or TypeScript), and the tool generates glue code. Two directions: export Swift to JavaScript and import JavaScript into Swift.
Referencing official docs
When you need details, read DocC from the checked-out JavaScriptKit repository: Sources/JavaScriptKit/Documentation.docc/ when inside the JavaScriptKit repo, or .build/checkouts/JavaScriptKit/Sources/JavaScriptKit/Documentation.docc/ when in a project that depends on JavaScriptKit.
Two directions
- Export Swift: Use
@JS(and@JS(namespace:enumStyle:identityMode:)) on functions, classes, structs, enums, closures, protocols, etc. JavaScript then calls into your Swift code. See references/exporting.md. - Import JavaScript: (1) Declare bindings in Swift with
@JSFunction,@JSClass,@JSGetter,@JSSetter; use@JSGetter(from: .global)for globals likedocument/console; inject other implementations viagetImports(). See references/importing.md. (2) Or usebridge-js.d.tsto generate the same Swift bindings. See references/importing-ts.md.
Key concepts
- Type mapping: Primitives,
Optional↔null,JSUndefinedOr↔undefined, arrays,Record<string, V>↔[String: V],JSTypedArray<T>↔ TypedArray (by reference), unbridged →JSObject/JSValue. See references/types.md if present. - Semantics: classes, protocols,
JSTypedArray, and closures cross by reference; structs, enums, and plain arrays cross by copy. - Errors: Only
throws(JSException)is supported at the bridge; plainthrowsis not. - Async: Exported
asyncfunctions/methods/closures becomePromise-returning JS functions (requireJavaScriptEventLoop.installGlobalExecutor()). Imported standalone@JSFunctioncannot be async, but imported async callbacks (closure parameters) are supported. - Preview interfaces: For previewing d.ts → Swift locally, run the ts2swift script from the checked-out JavaScriptKit: from a project that depends on JavaScriptKit use
node .build/checkouts/JavaScriptKit/Plugins/BridgeJS/Sources/TS2Swift/JavaScript/bin/ts2swift.js <input.d.ts> [options]; Run with--helpfor usage. - Closures: Use JSTypedClosure when passing or returning Swift closures to JS, and call
release()when the closure is no longer needed by JS. Plain Swift closure types also work as parameters/returns, released automatically viaFinalizationRegistry. Closure signatures may bethrows(JSException)and/orasync. When receiving callbacks from JS (e.g. imported APIs), use regular closure types in Swift ((Args) -> Return).
References
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingbridge-js/SKILL.md
Popularity
- Repository stars
- 48
- Repository forks
- 3
- 7-day trend score
- 19
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/swiftwasm/swift-wasm-agent-skill/bridge-js)