GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — BridgeJS: Prepare for MVP release for documentation and relaxing feat… · rarestype/JavaScriptKit@6682a2e

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
  • Benchmarks
    • README.md
    • Sources/Generated
      • BridgeJS.Macros.swift
  • Examples
    • ExportSwift
      • README.md
    • PlayBridgeJS
      • Sources/PlayBridgeJS/Generated
        • BridgeJS.Macros.swift
      • build.sh
  • Makefile
  • Plugins
    • BridgeJS
      • README.md
      • Sources/TS2Swift/JavaScript
        • src
          • cli.js
        • test/__snapshots__
          • ts2swift.test.js.snap
    • PackageToJS/Sources
      • PackageToJS.swift
  • README.md
  • Sources/JavaScriptKit
    • Documentation.docc
      • Articles
        • BridgeJS
          • Ahead-of-Time-Code-Generation.md
          • BridgeJS-Configuration.md
          • BridgeJS-Internals
            • BridgeJS-Internals.md
            • Design-Rationale.md
          • Bringing-Swift-Closures-to-JavaScript.md
          • Exporting-Swift-to-JavaScript.md
          • Exporting-Swift
            • Exporting-Swift-Array.md
            • Exporting-Swift-Class.md
            • Exporting-Swift-Closure.md
            • Exporting-Swift-Default-Parameters.md
            • Exporting-Swift-Enum.md
            • Exporting-Swift-Function.md
            • Exporting-Swift-Optional.md
            • Exporting-Swift-Protocols.md
            • Exporting-Swift-Static-Functions.md
            • Exporting-Swift-Static-Properties.md
            • Exporting-Swift-Struct.md
            • Using-Namespace.md
          • Generating-from-TypeScript.md
          • Importing-JavaScript-into-Swift.md
          • Importing-JavaScript
            • Importing-JS-Class.md
            • Importing-JS-Function.md
            • Importing-JS-Variable.md
          • Importing-TypeScript-into-Swift.md
          • Importing-TypeScript
            • Importing-TS-Class.md
            • Importing-TS-Function.md
            • Importing-TS-Interface.md
            • Importing-TS-TypeAlias.md
          • Introducing-BridgeJS.md
          • Setting-up-BridgeJS.md
          • Supported-Types.md
        • FAQ.md
      • Documentation.md
    • Macros.swift
  • Tests/BridgeJSRuntimeTests
    • ClosureSupportTests.swift
    • DictionaryTests.swift
    • ExportAPITests.swift
    • Generated
      • BridgeJS.Macros.swift
    • ImportArrayAPIs.swift
    • ImportStructAPIs.swift
    • OptionalSupportTests.swift
    • StructAPIs.swift
    • SwiftClassSupportTests.swift

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Dismiss banner
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎Benchmarks/README.md‎

Copy file name to clipboardExpand all lines: Benchmarks/README.md
+1-1Lines changed: 1 addition & 1 deletion
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This directory contains performance benchmarks for JavaScriptKit.
77
Before running the benchmarks, you need to build the test suite:
88

99
```bash
10-
JAVASCRIPTKIT_EXPERIMENTAL_BRIDGEJS=1 swift package --swift-sdk $SWIFT_SDK_ID js -c release
10+
swift package --swift-sdk $SWIFT_SDK_ID js -c release
1111
```
1212

1313
## Running Benchmarks
Collapse file

‎Benchmarks/Sources/Generated/BridgeJS.Macros.swift‎

Copy file name to clipboardExpand all lines: Benchmarks/Sources/Generated/BridgeJS.Macros.swift
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// To update this file, just rebuild your project or run
55
// `swift package bridge-js`.
66

7-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
7+
@_spi(BridgeJS) import JavaScriptKit
88

99
@JSFunction func benchmarkHelperNoop() throws(JSException) -> Void
1010

Collapse file

‎Examples/ExportSwift/README.md‎

Copy file name to clipboardExpand all lines: Examples/ExportSwift/README.md
+1-1Lines changed: 1 addition & 1 deletion
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This example demonstrates how to export Swift functions to JavaScript.
55

66
1. Build the project:
77
```sh
8-
env JAVASCRIPTKIT_EXPERIMENTAL_BRIDGEJS=1 swift package --swift-sdk $SWIFT_SDK_ID js --use-cdn
8+
swift package --swift-sdk $SWIFT_SDK_ID js --use-cdn
99
```
1010

1111
2. Serve the files:
Collapse file

‎Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.Macros.swift‎

Copy file name to clipboardExpand all lines: Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.Macros.swift
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// To update this file, just rebuild your project or run
55
// `swift package bridge-js`.
66

7-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
7+
@_spi(BridgeJS) import JavaScriptKit
88

99
@JSFunction func createTS2Swift() throws(JSException) -> TS2Swift
1010

Collapse file

‎Examples/PlayBridgeJS/build.sh‎

Copy file name to clipboard
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
22
set -euxo pipefail
3-
env JAVASCRIPTKIT_EXPERIMENTAL_BRIDGEJS=1 swift package --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1}}" \
3+
swift package --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1}}" \
44
plugin --allow-writing-to-package-directory \
55
js --use-cdn --output ./Bundle -c "${1:-debug}"
Collapse file

‎Makefile‎

Copy file name to clipboardExpand all lines: Makefile
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ unittest:
1616
echo "SWIFT_SDK_ID is not set. Run 'swift sdk list' and pass a matching SDK, e.g. 'make unittest SWIFT_SDK_ID=<id>'."; \
1717
exit 2; \
1818
}
19-
env JAVASCRIPTKIT_EXPERIMENTAL_BRIDGEJS=1 swift package --swift-sdk "$(SWIFT_SDK_ID)" \
19+
swift package --swift-sdk "$(SWIFT_SDK_ID)" \
2020
$(TRACING_ARGS) \
2121
--disable-sandbox \
2222
js test --prelude ./Tests/prelude.mjs -Xnode --expose-gc
Collapse file

‎Plugins/BridgeJS/README.md‎

Copy file name to clipboardExpand all lines: Plugins/BridgeJS/README.md
+5-5Lines changed: 5 additions & 5 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# BridgeJS
22

33
> [!IMPORTANT]
4-
> This feature is still experimental, and the API may change frequently. Use at your own risk with `JAVASCRIPTKIT_EXPERIMENTAL_BRIDGEJS=1` environment variable.
4+
> This feature is still experimental, and the API may change frequently. Use at your own risk.
55
66
> [!NOTE]
7-
> This documentation is intended for JavaScriptKit developers, not JavaScriptKit users. For user documentation, see [Exporting Swift to JavaScript](https://swiftpackageindex.com/swiftwasm/JavaScriptKit/documentation/javascriptkit/exporting-swift-to-javascript) and [Importing TypeScript into Swift](https://swiftpackageindex.com/swiftwasm/JavaScriptKit/documentation/javascriptkit/importing-typescript-into-swift).
7+
> This documentation is intended for JavaScriptKit developers, not JavaScriptKit users. For user documentation, see [Introducing BridgeJS](https://swiftpackageindex.com/swiftwasm/JavaScriptKit/documentation/javascriptkit/introducing-bridgejs), [Setting up BridgeJS](https://swiftpackageindex.com/swiftwasm/JavaScriptKit/documentation/javascriptkit/setting-up-bridgejs), [Exporting Swift to JavaScript](https://swiftpackageindex.com/swiftwasm/JavaScriptKit/documentation/javascriptkit/exporting-swift-to-javascript), [Importing JavaScript into Swift](https://swiftpackageindex.com/swiftwasm/JavaScriptKit/documentation/javascriptkit/importing-javascript-into-swift), and [Generating bindings from TypeScript](https://swiftpackageindex.com/swiftwasm/JavaScriptKit/documentation/javascriptkit/generating-from-typescript).
88
99
## Overview
1010

1111
BridgeJS provides easy interoperability between Swift and JavaScript/TypeScript. It enables:
1212

13-
1. **Importing TypeScript APIs into Swift**: Use TypeScript/JavaScript APIs directly from Swift code
14-
2. **Exporting Swift APIs to JavaScript**: Make your Swift APIs available to JavaScript code
13+
1. **Export Swift to JavaScript** – Expose Swift functions, classes, and types to JavaScript; the plugin generates TypeScript definitions (`.d.ts`) for the exported API.
14+
2. **Import JavaScript into Swift** – Make JavaScript/TypeScript APIs callable from Swift with macro-annotated bindings or bindings generated from a TypeScript declaration file (`bridge-js.d.ts`).
1515

1616
The workflow is:
1717

@@ -161,7 +161,7 @@ Return values use direct Wasm returns for primitives, and imported intrinsic fun
161161
- **Structs/Arrays/Enums**: Copy semantics - data serialized across boundary. No cleanup needed.
162162
- **Closures**: Boxed on source side, released when GC'd on either side.
163163

164-
For detailed semantics, see the [How It Works sections](https://swiftpackageindex.com/swiftwasm/JavaScriptKit/documentation/javascriptkit/exporting-swift-class#How-It-Works) in the user documentation.
164+
For detailed semantics, see the [How It Works sections](https://swiftpackageindex.com/swiftwasm/JavaScriptKit/documentation/javascriptkit/exporting-swift-class#how-it-works) in the user documentation.
165165

166166
## Testing
167167

Collapse file

‎Plugins/BridgeJS/Sources/TS2Swift/JavaScript/src/cli.js‎

Copy file name to clipboardExpand all lines: Plugins/BridgeJS/Sources/TS2Swift/JavaScript/src/cli.js
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ export function run(filePath, options) {
123123
"// To update this file, just rebuild your project or run",
124124
"// `swift package bridge-js`.",
125125
"",
126-
"@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit",
126+
"@_spi(BridgeJS) import JavaScriptKit",
127127
"",
128128
"",
129129
].join("\n");
Collapse file

‎Plugins/BridgeJS/Sources/TS2Swift/JavaScript/test/__snapshots__/ts2swift.test.js.snap‎

Copy file name to clipboardExpand all lines: Plugins/BridgeJS/Sources/TS2Swift/JavaScript/test/__snapshots__/ts2swift.test.js.snap
+21-21Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ exports[`ts2swift > snapshots Swift output for ArrayParameter.d.ts > ArrayParame
77
// To update this file, just rebuild your project or run
88
// \`swift package bridge-js\`.
99
10-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
10+
@_spi(BridgeJS) import JavaScriptKit
1111
1212
@JSFunction func processNumbers(_ values: [Double]) throws(JSException) -> Void
1313
@@ -30,7 +30,7 @@ exports[`ts2swift > snapshots Swift output for Async.d.ts > Async 1`] = `
3030
// To update this file, just rebuild your project or run
3131
// \`swift package bridge-js\`.
3232
33-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
33+
@_spi(BridgeJS) import JavaScriptKit
3434
3535
@JSFunction func asyncReturnVoid() throws(JSException) -> JSPromise
3636
@@ -55,7 +55,7 @@ exports[`ts2swift > snapshots Swift output for Documentation.d.ts > Documentatio
5555
// To update this file, just rebuild your project or run
5656
// \`swift package bridge-js\`.
5757
58-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
58+
@_spi(BridgeJS) import JavaScriptKit
5959
6060
/// Return a greeting for a user.
6161
///
@@ -112,7 +112,7 @@ exports[`ts2swift > snapshots Swift output for Interface.d.ts > Interface 1`] =
112112
// To update this file, just rebuild your project or run
113113
// \`swift package bridge-js\`.
114114
115-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
115+
@_spi(BridgeJS) import JavaScriptKit
116116
117117
@JSFunction func returnAnimatable() throws(JSException) -> Animatable
118118
@@ -130,7 +130,7 @@ exports[`ts2swift > snapshots Swift output for InvalidPropertyNames.d.ts > Inval
130130
// To update this file, just rebuild your project or run
131131
// \`swift package bridge-js\`.
132132
133-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
133+
@_spi(BridgeJS) import JavaScriptKit
134134
135135
@JSFunction func createArrayBuffer() throws(JSException) -> ArrayBufferLike
136136
@@ -178,7 +178,7 @@ exports[`ts2swift > snapshots Swift output for MultipleImportedTypes.d.ts > Mult
178178
// To update this file, just rebuild your project or run
179179
// \`swift package bridge-js\`.
180180
181-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
181+
@_spi(BridgeJS) import JavaScriptKit
182182
183183
@JSFunction func createDatabaseConnection(_ config: JSValue) throws(JSException) -> DatabaseConnection
184184
@@ -215,7 +215,7 @@ exports[`ts2swift > snapshots Swift output for ObjectLikeTypes.d.ts > ObjectLike
215215
// To update this file, just rebuild your project or run
216216
// \`swift package bridge-js\`.
217217
218-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
218+
@_spi(BridgeJS) import JavaScriptKit
219219
220220
@JSFunction func acceptObject(_ v: JSObject) throws(JSException) -> Void
221221
"
@@ -228,7 +228,7 @@ exports[`ts2swift > snapshots Swift output for OptionalNullUndefined.d.ts > Opti
228228
// To update this file, just rebuild your project or run
229229
// \`swift package bridge-js\`.
230230
231-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
231+
@_spi(BridgeJS) import JavaScriptKit
232232
233233
@JSFunction func roundTripNumberNull(_ value: Optional<Double>) throws(JSException) -> Optional<Double>
234234
@@ -269,7 +269,7 @@ exports[`ts2swift > snapshots Swift output for PrimitiveParameters.d.ts > Primit
269269
// To update this file, just rebuild your project or run
270270
// \`swift package bridge-js\`.
271271
272-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
272+
@_spi(BridgeJS) import JavaScriptKit
273273
274274
@JSFunction func check(_ a: Double, _ b: Bool) throws(JSException) -> Void
275275
"
@@ -282,7 +282,7 @@ exports[`ts2swift > snapshots Swift output for PrimitiveReturn.d.ts > PrimitiveR
282282
// To update this file, just rebuild your project or run
283283
// \`swift package bridge-js\`.
284284
285-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
285+
@_spi(BridgeJS) import JavaScriptKit
286286
287287
@JSFunction func checkNumber() throws(JSException) -> Double
288288
@@ -297,7 +297,7 @@ exports[`ts2swift > snapshots Swift output for ReExportFrom.d.ts > ReExportFrom
297297
// To update this file, just rebuild your project or run
298298
// \`swift package bridge-js\`.
299299
300-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
300+
@_spi(BridgeJS) import JavaScriptKit
301301
302302
@JSFunction func jsRoundTripNumber(_ v: Double) throws(JSException) -> Double
303303
@@ -315,7 +315,7 @@ exports[`ts2swift > snapshots Swift output for RecordDictionary.d.ts > RecordDic
315315
// To update this file, just rebuild your project or run
316316
// \`swift package bridge-js\`.
317317
318-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
318+
@_spi(BridgeJS) import JavaScriptKit
319319
320320
@JSFunction func takeRecord(_ value: [String: Double]) throws(JSException) -> Void
321321
@@ -345,7 +345,7 @@ exports[`ts2swift > snapshots Swift output for StringEnum.d.ts > StringEnum 1`]
345345
// To update this file, just rebuild your project or run
346346
// \`swift package bridge-js\`.
347347
348-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
348+
@_spi(BridgeJS) import JavaScriptKit
349349
350350
enum FeatureFlag: String {
351351
case foo = "foo"
@@ -366,7 +366,7 @@ exports[`ts2swift > snapshots Swift output for StringParameter.d.ts > StringPara
366366
// To update this file, just rebuild your project or run
367367
// \`swift package bridge-js\`.
368368
369-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
369+
@_spi(BridgeJS) import JavaScriptKit
370370
371371
@JSFunction func checkString(_ a: String) throws(JSException) -> Void
372372
@@ -381,7 +381,7 @@ exports[`ts2swift > snapshots Swift output for StringReturn.d.ts > StringReturn
381381
// To update this file, just rebuild your project or run
382382
// \`swift package bridge-js\`.
383383
384-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
384+
@_spi(BridgeJS) import JavaScriptKit
385385
386386
@JSFunction func checkString() throws(JSException) -> String
387387
"
@@ -394,7 +394,7 @@ exports[`ts2swift > snapshots Swift output for TS2SkeletonLike.d.ts > TS2Skeleto
394394
// To update this file, just rebuild your project or run
395395
// \`swift package bridge-js\`.
396396
397-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
397+
@_spi(BridgeJS) import JavaScriptKit
398398
399399
@JSFunction func createTS2Skeleton() throws(JSException) -> TypeScriptProcessor
400400
@@ -420,7 +420,7 @@ exports[`ts2swift > snapshots Swift output for TypeAlias.d.ts > TypeAlias 1`] =
420420
// To update this file, just rebuild your project or run
421421
// \`swift package bridge-js\`.
422422
423-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
423+
@_spi(BridgeJS) import JavaScriptKit
424424
425425
@JSFunction func checkSimple(_ a: Double) throws(JSException) -> Void
426426
"
@@ -433,7 +433,7 @@ exports[`ts2swift > snapshots Swift output for TypeAliasObject.d.ts > TypeAliasO
433433
// To update this file, just rebuild your project or run
434434
// \`swift package bridge-js\`.
435435
436-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
436+
@_spi(BridgeJS) import JavaScriptKit
437437
438438
@JSFunction func console() throws(JSException) -> Console
439439
@@ -452,7 +452,7 @@ exports[`ts2swift > snapshots Swift output for TypeScriptClass.d.ts > TypeScript
452452
// To update this file, just rebuild your project or run
453453
// \`swift package bridge-js\`.
454454
455-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
455+
@_spi(BridgeJS) import JavaScriptKit
456456
457457
@JSClass struct Greeter {
458458
@JSGetter var name: String
@@ -473,7 +473,7 @@ exports[`ts2swift > snapshots Swift output for VoidParameterVoidReturn.d.ts > Vo
473473
// To update this file, just rebuild your project or run
474474
// \`swift package bridge-js\`.
475475
476-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
476+
@_spi(BridgeJS) import JavaScriptKit
477477
478478
@JSFunction func check() throws(JSException) -> Void
479479
"
@@ -486,7 +486,7 @@ exports[`ts2swift > snapshots Swift output for WebIDLDOMDocs.d.ts > WebIDLDOMDoc
486486
// To update this file, just rebuild your project or run
487487
// \`swift package bridge-js\`.
488488
489-
@_spi(Experimental) @_spi(BridgeJS) import JavaScriptKit
489+
@_spi(BridgeJS) import JavaScriptKit
490490
491491
/// [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document)
492492
@JSGetter var document: Document
Collapse file

‎Plugins/PackageToJS/Sources/PackageToJS.swift‎

Copy file name to clipboardExpand all lines: Plugins/PackageToJS/Sources/PackageToJS.swift
-5Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -589,11 +589,6 @@ struct PackagingPlanner {
589589
packageInputs.append(packageJsonTask)
590590

591591
if skeletons.count > 0 {
592-
if ProcessInfo.processInfo.environment["JAVASCRIPTKIT_EXPERIMENTAL_BRIDGEJS"] == nil {
593-
fatalError(
594-
"BridgeJS is still an experimental feature. Set the environment variable JAVASCRIPTKIT_EXPERIMENTAL_BRIDGEJS=1 to enable."
595-
)
596-
}
597592
let bridgeJs = outputDir.appending(path: "bridge-js.js")
598593
let bridgeDts = outputDir.appending(path: "bridge-js.d.ts")
599594
packageInputs.append(

0 commit comments

Comments
0 (0)
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.