Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: mrtksn/JavaScriptKit
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: swiftwasm/JavaScriptKit
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref

Commits on Jul 19, 2022

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    901de66 View commit details
  2. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    93f2dd5 View commit details

Commits on Jul 24, 2022

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    ac92be3 View commit details

Commits on Jul 31, 2022

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    8478665 View commit details

Commits on Aug 12, 2022

  1. Refine benchmark suite (swiftwasm#203)

    * Add several benchmark suite to find our bottleneck
    
    * Perform benchmark with release configuration
    
    * Add primitive conversion benchmark cases
    kateinoigakukun authored Aug 12, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    36c672b View commit details

Commits on Aug 14, 2022

  1. Support DocC generation in Swift Package Index (swiftwasm#205)

    This allows documentation for our products to be generated and hosted automatically by [Swift Package Index](https://swiftpackageindex.com/swiftwasm/JavaScriptKit).
    MaxDesiatov authored Aug 14, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    756c6ca View commit details
  2. Test native builds with Xcode 14.0 (swiftwasm#206)

    Xcode 14.0 beta is already available on GitHub Actions, let's try using it in our workflows.
    MaxDesiatov authored Aug 14, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    4c61f13 View commit details
  3. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    9b865b2 View commit details

Commits on Aug 17, 2022

  1. Add missing doc comments for more types (swiftwasm#208)

    I noticed that some of our types had no doc comments or had inconsistent formatting, here's a (potentially incomplete) fix for that.
    MaxDesiatov authored Aug 17, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    6e62619 View commit details
  2. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    24a5698 View commit details

Commits on Aug 18, 2022

  1. Runtime Performance Optimization (swiftwasm#207)

    * Allocate function call argument buffer on stack
    
    * Revert "Allocate function call argument buffer on stack"
    
    This reverts commit 8d17f5c.
    
    * Reduce memory store for returned value kind
    
    * Add NODEJS_FLAGS to perform profiling by passing --prof
    
    * Revert "Revert "Allocate function call argument buffer on stack""
    
    This reverts commit d684978.
    
    * Revert "Revert "Revert "Allocate function call argument buffer on stack"""
    
    This reverts commit 4f850a0.
    
    * Reduce retain/release dance caused by Optional<this>
    
    * Don't escape JSFunction self
    
    * Add fast path for empty JSValue array
    
    * Skip re-creating DataView in decodeArray
    
    * make regenerate_swiftpm_resources
    
    * Apply the same techniques to call families
    
    * Reuse DataView as much as possible
    
    * npm run format
    
    * Optimize swjs_get_prop to reduce memory store
    
    * Optimize _get_subscript to reduce memory store
    
    * Rename writeV2 -> writeAndReturnKindBits
    
    * Improve doc comment style
    
    * Use writeAndReturnKindBits in write
    
    * Add rationale comments for write
    kateinoigakukun authored Aug 18, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    1afbfaf View commit details

Commits on Aug 22, 2022

  1. Copy the full SHA
    a129f62 View commit details

Commits on Aug 29, 2022

  1. Bump @actions/core from 1.2.6 to 1.9.1 in /ci/perf-tester (swiftwasm#209

    )
    
    Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.2.6 to 1.9.1.
    - [Release notes](https://github.com/actions/toolkit/releases)
    - [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
    - [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)
    
    ---
    updated-dependencies:
    - dependency-name: "@actions/core"
      dependency-type: direct:development
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Aug 29, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    449c041 View commit details

Commits on Sep 20, 2022

  1. Remove baseline tests (e.g. “Call JavaScript function directly”) from…

    … comparison (swiftwasm#211)
    
    * Remove baseline tests (e.g. “Call JavaScript function directly”) from comparison
    
    * )
    j-f1 authored Sep 20, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    73cdff2 View commit details

Commits on Sep 27, 2022

  1. Add 5.7 toolchain matrix (swiftwasm#210)

    * Add 5.7 toolchain matrix
    
    * Reduce 5.5 toolchain matrix entries
    
    * Use stable version
    kateinoigakukun authored Sep 27, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    e9422fe View commit details

Commits on Sep 30, 2022

  1. Copy the full SHA
    f72b207 View commit details
  2. Copy the full SHA
    6fea6e5 View commit details
  3. Copy the full SHA
    d82c70f View commit details
  4. Add arg0 to wasi arguments because XCTest reads process arguments

    and it expects at least having one argument
    kateinoigakukun committed Sep 30, 2022
    Copy the full SHA
    eb9d9f2 View commit details
  5. Exit process when proc_exit is called on Node.js WASI

    because Node.js's WASI implementatin does't supprot proc_exit in async
    reactor model.
    
    See https://github.com/nodejs/node/blob/2a4452a53af65a13db4efae474162a7dcfd38dd5/lib/wasi.js#L121
    kateinoigakukun committed Sep 30, 2022
    Copy the full SHA
    28bb7f2 View commit details
  6. Copy the full SHA
    08c36d2 View commit details
  7. Copy the full SHA
    0c39b24 View commit details
  8. Copy the full SHA
    3e94df2 View commit details
  9. Copy the full SHA
    b34c15f View commit details
  10. Merge pull request swiftwasm#213 from swiftwasm/katei/add-jsel-test-s…

    …upport
    
    Add JavaScriptEventLoopTestSupport module to install executor
    kateinoigakukun authored Sep 30, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    a549f58 View commit details

Commits on Oct 3, 2022

  1. Expose JavaScriptEventLoop.queueMicrotask and .setTimeout

    This allows users to have more flexibility to customize.
    For example, this allows inserting operations before/after single job
    execution loop.
    e.g. It's useful to enable React batch rendering per job execution loop
    by `ReactDOM.unstable_batchedUpdates`.
    
    ```swift
    let original = JavaScriptEventLoop.shared.queueMicrotask
    JavaScriptEventLoop.shared.queueMicrotask = (job) => {
      ReactDOM.unstable_batchedUpdates(() => {
        original(job)
      })
    }
    ```
    kateinoigakukun committed Oct 3, 2022
    Copy the full SHA
    d0f49ad View commit details
  2. Merge pull request swiftwasm#214 from swiftwasm/katei/expose-hook-points

    Expose `JavaScriptEventLoop.queueMicrotask` and `.setTimeout`
    kateinoigakukun authored Oct 3, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    320282f View commit details
  3. Copy the full SHA
    dac9d7b View commit details

Commits on Oct 9, 2022

  1. Use swiftwasm/setup-swiftwasm instead of swiftenv on CI (swiftwasm#215)

    * Use swiftwasm/setup-swiftwasm instead of swiftenv on CI
    
    * Update .github/workflows/perf.yml also
    
    * Update .github/workflows/compatibility.yml also
    kateinoigakukun authored Oct 9, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    60ca6b5 View commit details

Commits on Oct 26, 2022

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    99c9965 View commit details

Commits on Dec 19, 2022

  1. Prefer UInt(bitPattern:) for object id to guarantee uniqueness (swi…

    …ftwasm#219)
    
    Prefer UInt(bitPattern:) for object id to guarantee uniqueness
    
    Close swiftwasm#218
    kateinoigakukun authored Dec 19, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    dbf7a88 View commit details

Commits on Dec 24, 2022

  1. Fix wrong markdown in documentation (swiftwasm#221)

    Fix wrong markdown
    gibachan authored Dec 24, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    59e7b65 View commit details

Commits on Mar 13, 2023

  1. Copy the full SHA
    886919d View commit details
  2. Copy the full SHA
    9c45140 View commit details
  3. Copy the full SHA
    8fbe91d View commit details
  4. Merge pull request swiftwasm#222 from GoodNotes/withUnsafeBytesAsync

    Add `withUnsafeBytesAsync` function to `JSTypedArray`
    kateinoigakukun authored Mar 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    758cb4e View commit details
  5. Copy the full SHA
    31ae862 View commit details
  6. Copy the full SHA
    07a06f1 View commit details
  7. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    6cf6d35 View commit details
  8. Copy the full SHA
    096584b View commit details

Commits on Apr 28, 2023

  1. Copy the full SHA
    a7f981a View commit details
  2. Copy the full SHA
    d29f144 View commit details
  3. Copy the full SHA
    373a011 View commit details
  4. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    5b296e7 View commit details
  5. Copy the full SHA
    a962db3 View commit details

Commits on May 8, 2023

  1. Use stable release

    kateinoigakukun committed May 8, 2023
    Copy the full SHA
    1ef9e6c View commit details
  2. Copy the full SHA
    91567e9 View commit details
  3. Merge pull request swiftwasm#227 from swiftwasm/katei/5.8-toolchain

    Add 5.8 toolchain matrix
    kateinoigakukun authored May 8, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    a66caa0 View commit details

Commits on Jul 21, 2023

  1. Update README.md

    kateinoigakukun authored Jul 21, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    32780ce View commit details

Commits on Jul 23, 2023

  1. Update README.md

    kateinoigakukun authored Jul 23, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    c283fa3 View commit details
Showing 455 changed files with 44,672 additions and 13,064 deletions.
7 changes: 7 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
root = true

[*]
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
insert_final_newline = true
37 changes: 37 additions & 0 deletions .github/actions/install-swift/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: 'Install Swift toolchain'
description: 'Install Swift toolchain tarball from URL'
inputs:
download-url:
description: 'URL to download Swift toolchain tarball'
required: true

runs:
using: composite
steps:
# https://www.swift.org/install/linux/#installation-via-tarball
- name: Install dependent packages for Swift
shell: bash
run: >
sudo apt-get -q update &&
sudo apt-get install -y
binutils
git
gnupg2
libc6-dev
libcurl4-openssl-dev
libedit2
libgcc-9-dev
libpython3.8
libsqlite3-0
libstdc++-9-dev
libxml2-dev
libz3-dev
pkg-config
tzdata
unzip
zlib1g-dev
curl
- name: Install Swift
shell: bash
run: curl -fL ${{ inputs.download-url }} | sudo tar xfz - --strip-components=2 -C /usr/local
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
25 changes: 0 additions & 25 deletions .github/workflows/compatibility.yml

This file was deleted.

26 changes: 0 additions & 26 deletions .github/workflows/documentation.yml

This file was deleted.

22 changes: 0 additions & 22 deletions .github/workflows/npm-publish.yml

This file was deleted.

23 changes: 0 additions & 23 deletions .github/workflows/perf.yml

This file was deleted.

143 changes: 112 additions & 31 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -9,55 +9,136 @@ jobs:
strategy:
matrix:
entry:
# Ensure that all host can install toolchain, build project, and run tests
- { os: macos-10.15, toolchain: wasm-5.6.0-RELEASE, wasi-backend: Node }
- { os: macos-11, toolchain: wasm-5.6.0-RELEASE, wasi-backend: Node }
- { os: macos-12, toolchain: wasm-5.6.0-RELEASE, wasi-backend: Node }
- { os: ubuntu-18.04, toolchain: wasm-5.6.0-RELEASE, wasi-backend: Node }

# Ensure that test succeeds with all toolchains and wasi backend combinations
- { os: ubuntu-20.04, toolchain: wasm-5.5.0-RELEASE, wasi-backend: Node }
- { os: ubuntu-20.04, toolchain: wasm-5.6.0-RELEASE, wasi-backend: Node }
- { os: ubuntu-20.04, toolchain: wasm-5.5.0-RELEASE, wasi-backend: Wasmer }
- { os: ubuntu-20.04, toolchain: wasm-5.6.0-RELEASE, wasi-backend: Wasmer }
- os: ubuntu-22.04
toolchain:
download-url: https://download.swift.org/swift-6.0.2-release/ubuntu2204/swift-6.0.2-RELEASE/swift-6.0.2-RELEASE-ubuntu22.04.tar.gz
wasi-backend: Node
target: "wasm32-unknown-wasi"
- os: ubuntu-22.04
toolchain:
download-url: https://download.swift.org/swift-6.1-release/ubuntu2204/swift-6.1-RELEASE/swift-6.1-RELEASE-ubuntu22.04.tar.gz
wasi-backend: Node
target: "wasm32-unknown-wasi"
- os: ubuntu-22.04
toolchain:
download-url: https://download.swift.org/development/ubuntu2204/swift-DEVELOPMENT-SNAPSHOT-2025-06-12-a/swift-DEVELOPMENT-SNAPSHOT-2025-06-12-a-ubuntu22.04.tar.gz
wasi-backend: Node
target: "wasm32-unknown-wasi"
- os: ubuntu-22.04
toolchain:
download-url: https://download.swift.org/development/ubuntu2204/swift-DEVELOPMENT-SNAPSHOT-2025-06-12-a/swift-DEVELOPMENT-SNAPSHOT-2025-06-12-a-ubuntu22.04.tar.gz
wasi-backend: Node
target: "wasm32-unknown-wasip1-threads"

runs-on: ${{ matrix.entry.os }}
env:
JAVASCRIPTKIT_WASI_BACKEND: ${{ matrix.entry.wasi-backend }}
steps:
- name: Checkout
uses: actions/checkout@master
uses: actions/checkout@v5
- uses: ./.github/actions/install-swift
with:
fetch-depth: 1
- name: Run Test
env:
JAVASCRIPTKIT_WASI_BACKEND: ${{ matrix.entry.wasi-backend }}
download-url: ${{ matrix.entry.toolchain.download-url }}
- uses: swiftwasm/setup-swiftwasm@v2
id: setup-swiftwasm
with:
target: ${{ matrix.entry.target }}
- name: Configure environment variables
run: |
git clone https://github.com/kylef/swiftenv.git ~/.swiftenv
export SWIFTENV_ROOT="$HOME/.swiftenv"
export PATH="$SWIFTENV_ROOT/bin:$PATH"
eval "$(swiftenv init -)"
SWIFT_VERSION=${{ matrix.entry.toolchain }} make bootstrap
echo ${{ matrix.entry.toolchain }} > .swift-version
make test
echo "SWIFT_SDK_ID=${{ steps.setup-swiftwasm.outputs.swift-sdk-id }}" >> $GITHUB_ENV
echo "SWIFT_PATH=$(dirname $(which swiftc))" >> $GITHUB_ENV
- run: make bootstrap
- run: make unittest
# Skip unit tests with uwasi because its proc_exit throws
# unhandled promise rejection.
if: ${{ matrix.entry.wasi-backend != 'MicroWASI' }}
- name: Check if SwiftPM resources are stale
run: |
make regenerate_swiftpm_resources
git diff --exit-code Sources/JavaScriptKit/Runtime
- run: swift test --package-path ./Plugins/PackageToJS
- run: swift test --package-path ./Plugins/BridgeJS

native-build:
# Check native build to make it easy to develop applications by Xcode
name: Build for native target
strategy:
matrix:
include:
- os: macos-10.15
xcode: Xcode_12.4
- os: macos-11
xcode: Xcode_13.2.1
- os: macos-12
xcode: Xcode_13.3
- os: macos-15
xcode: Xcode_16.4
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- run: swift build
- uses: actions/checkout@v5
- run: swift build --package-path ./Examples/Basic
env:
DEVELOPER_DIR: /Applications/${{ matrix.xcode }}.app/Contents/Developer/

format:
runs-on: ubuntu-latest
container:
image: swift:6.1.2
steps:
- uses: actions/checkout@v5
- run: ./Utilities/format.swift
- name: Check for formatting changes
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git diff --exit-code || {
echo "::error::The formatting changed some files. Please run \`./Utilities/format.swift\` and commit the changes."
exit 1
}
check-bridgejs-generated:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/install-swift
with:
download-url: https://download.swift.org/development/ubuntu2204/swift-DEVELOPMENT-SNAPSHOT-2025-06-12-a/swift-DEVELOPMENT-SNAPSHOT-2025-06-12-a-ubuntu22.04.tar.gz
- run: make bootstrap
- run: ./Utilities/bridge-js-generate.sh
- name: Check if BridgeJS generated files are up-to-date
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git diff --exit-code || {
echo "::error::BridgeJS generated files are out of date. Please run \`./Utilities/bridge-js-generate.sh\` and commit the changes."
exit 1
}
build-examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/install-swift
with:
download-url: https://download.swift.org/development/ubuntu2204/swift-DEVELOPMENT-SNAPSHOT-2025-06-12-a/swift-DEVELOPMENT-SNAPSHOT-2025-06-12-a-ubuntu22.04.tar.gz
- uses: swiftwasm/setup-swiftwasm@v2
id: setup-wasm32-unknown-wasi
with: { target: wasm32-unknown-wasi }
- uses: swiftwasm/setup-swiftwasm@v2
id: setup-wasm32-unknown-wasip1-threads
with: { target: wasm32-unknown-wasip1-threads }
- run: ./Utilities/build-examples.sh
env:
SWIFT_SDK_ID_wasm32_unknown_wasip1_threads: ${{ steps.setup-wasm32-unknown-wasip1-threads.outputs.swift-sdk-id }}
SWIFT_SDK_ID_wasm32_unknown_wasi: ${{ steps.setup-wasm32-unknown-wasi.outputs.swift-sdk-id }}
- name: Upload static files as artifact
id: deployment
uses: actions/upload-pages-artifact@v3
with:
path: Examples/
deploy-examples:
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build-examples
permissions:
pages: write
id-token: write
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -7,3 +7,9 @@ node_modules
xcuserdata/
.swiftpm
.vscode
Examples/*/Bundle
Examples/*/package-lock.json
Package.resolved
Plugins/BridgeJS/Sources/JavaScript/package-lock.json
Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/**/*.actual
bridge-js.config.local.json
7 changes: 7 additions & 0 deletions .spi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 1
builder:
configs:
- documentation_targets:
- JavaScriptKit
- JavaScriptEventLoop
- JavaScriptBigIntSupport
13 changes: 13 additions & 0 deletions .swift-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"version": 1,
"lineLength": 120,
"indentation": {
"spaces": 4
},
"lineBreakBeforeEachArgument": true,
"indentConditionalCompilationBlocks": false,
"prioritizeKeepingFunctionOutputTogether": true,
"rules": {
"AlwaysUseLowerCamelCase": false
}
}
1 change: 0 additions & 1 deletion .swift-version

This file was deleted.

30 changes: 30 additions & 0 deletions Benchmarks/Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// swift-tools-version: 6.0

import PackageDescription

let package = Package(
name: "Benchmarks",
platforms: [
.macOS(.v10_15),
.iOS(.v13),
.tvOS(.v13),
.watchOS(.v6),
.macCatalyst(.v13),
],
dependencies: [
.package(path: "../")
],
targets: [
.executableTarget(
name: "Benchmarks",
dependencies: [
"JavaScriptKit",
.product(name: "JavaScriptFoundationCompat", package: "JavaScriptKit"),
],
exclude: ["Generated/JavaScript", "bridge-js.d.ts"],
swiftSettings: [
.enableExperimentalFeature("Extern")
]
)
]
)
Loading