New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

rolldown-plugin-wasm

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rolldown-plugin-wasm

Rolldown plugin for WASM.

latest
Source
npmnpm
Version
0.2.1
Version published
Maintainers
1
Created
Source

rolldown-plugin-wasm

npm version npm downloads Unit Test

Rolldown plugin for WASM.

This project is heavily referenced from @rollup/plugin-wasm and vite-plugin-wasm.

Install

npm i rolldown-plugin-wasm

Usage

// rolldown.config.ts
import { defineConfig } from 'rolldown'
import { wasm } from 'rolldown-plugin-wasm'

export default defineConfig({
  plugins: [
    wasm({
      // ...options
    }),
  ],
})

Importing WASM Modules

import { add } from './add.wasm'

add(1, 2)

Asynchronous Init

import init from './add.wasm?init'

const instance = await init(
  imports, // optional
)

instance.exports.add(1, 2)

Synchronous Init

import initSync from './add.wasm?init&sync'

const instance = initSync(
  imports, // optional
)

instance.exports.add(1, 2)

wasm-bindgen Support

import { add } from 'some-pkg'

add(1, 2)

Target web

Node.js
import { readFile } from 'node:fs/promises'
import init, { add } from 'some-pkg'
import wasmUrl from 'some-pkg/add_bg.wasm?url'

await init({
  module_or_path: readFile(new URL(wasmUrl, import.meta.url)),
})

add(1, 2)
Browser
import init, { add } from 'some-pkg/add.js'
import wasmUrl from 'some-pkg/add_bg.wasm?url'

await init({
  module_or_path: wasmUrl,
})

add(1, 2)

[!NOTE] Other targets such as nodejs and no-modules are not supported.

TypeScript Support

// tsconfig.json
{
  "compilerOptions": {
    "types": ["rolldown-plugin-wasm/types"],
  },
}

Options

/**
 * - `"auto"` will determine the environment at runtime and invoke the correct methods accordingly
 * - `"auto-inline"` always inlines the WASM and will decode it according to the environment
 * - `"browser"` omits emitting code that requires node.js builtin modules
 * - `"node"` omits emitting code that requires `fetch`, but requires Node.js 20.16.0 or higher
 */
export type TargetEnv = 'auto' | 'auto-inline' | 'browser' | 'node'

export interface Options {
  /**
   * The maximum file size for inline files. If a file exceeds this limit, it will be copied to the destination folder and loaded from a separate file at runtime.
   * If `maxFileSize` is set to `0` all files will be copied.
   * Files specified in `sync` to load synchronously are always inlined, regardless of size.
   *
   * @default 14 * 1024
   */
  maxFileSize?: number
  /**
   * String used to rename the emitted Wasm files.
   * @default '[hash][extname]'
   */
  fileName?: string
  /**
   * A string which will be added in front of filenames when they are not inlined but are copied.
   */
  publicPath?: string
  /**
   * Configures what code is emitted to instantiate the Wasm (both inline and separate)
   */
  targetEnv?: TargetEnv
}

Sponsors

License

MIT License © 2026-PRESENT Kevin Deng

MIT Copyright (c) 2022 Menci

MIT License Copyright (c) 2019 RollupJS Plugin Contributors

FAQs

Package last updated on 02 Jan 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts