Skip to main content

@php-wasm/node

Index

Type Aliases

BuiltInPHPExtension

BuiltInPHPExtension: BuiltInPHPExtensionName | { name: xdebug; options?: XdebugOptions } | { name: Exclude<BuiltInPHPExtensionName, xdebug> }

Built-in PHP extension request accepted by loadNodeRuntime().

Pass a string for defaults, or an object when a built-in extension exposes options. Currently only xdebug has options.

BuiltInPHPExtensionName

BuiltInPHPExtensionName: intl | xdebug | redis | memcached

Built-in PHP extensions shipped with @php-wasm/node.

PHPExtension

PHP extension request accepted by loadNodeRuntime().

The array may mix built-in extension names with external extension sources:

await loadNodeRuntime('8.4', {
extensions: [
'intl',
{ source: { format: 'manifest', manifestUrl: './manifest.json' } },
],
});

In Node, local manifest and artifact files work without a custom fetch implementation. Pass manifestUrl as a filesystem path, a file: URL, or an HTTP URL.

PHPLoaderOptionsForNode

PHPLoaderOptionsForNode: PHPLoaderOptions & { emscriptenOptions?: EmscriptenOptions & { bindUserSpace?: (userSpaceContext: WasmUserSpaceContext) => WasmUserSpaceAPI; nativeInternalDirPath?: string; processId?: number; trace?: (processId: number, format: string, ...args: any[]) => void }; fileLockManager?: FileLockManager }

RuntimePHPExtensionSource

RuntimePHPExtensionSource: Omit<ResolvedInstallOptions, phpVersion>

External PHP extension source that can be installed before PHP starts.

External sources are supported in JSPI runtimes only. Asyncify support is limited to bundled extensions shipped with this package.

WasmKernelSpace

WasmKernelSpace: { fileLockManager: FileLockManager | undefined }

Shared state that persists across all PHP-WASM processes, analogous to OS kernel space. Currently holds the file lock manager that coordinates locks across PHP-WASM instances.


Type declaration

WasmUserSpaceAPI

WasmUserSpaceAPI: { fcntl64: (fd: number, cmd: number, varargs?: number) => number; fd_close: (fd: number) => number; flock: (fd: number, op: number) => number; gethostbyname: (hostname: string) => Promise<string>; js_release_file_locks: () => void }

Type declaration

  • fcntl64: (fd: number, cmd: number, varargs?: number) => number
      • (fd: number, cmd: number, varargs?: number): number
      • Parameters

        • fd: number
        • cmd: number
        • optionalvarargs: number

        Returns number

  • fd_close: (fd: number) => number
      • (fd: number): number
      • Parameters

        • fd: number

        Returns number

  • flock: (fd: number, op: number) => number
      • (fd: number, op: number): number
      • Parameters

        • fd: number
        • op: number

        Returns number

  • gethostbyname: (hostname: string) => Promise<string>
      • (hostname: string): Promise<string>
      • Parameters

        • hostname: string

        Returns Promise<string>

  • js_release_file_locks: () => void
      • (): void
      • Returns void

WasmUserSpaceContext

WasmUserSpaceContext: { FS: typeof Emscripten.FS; NODEFS: typeof Emscripten.NODEFS & { realPath: any }; PROXYFS: typeof Emscripten.PROXYFS & { realPath: any }; constants: { F_GETFL: number; F_GETLK: number; F_RDLCK: number; F_SETFL: number; F_SETLK: number; F_SETLKW: number; F_UNLCK: number; F_WRLCK: number; LOCK_EX: 2; LOCK_NB: 4; LOCK_SH: 1; LOCK_UN: 8; O_ACCMODE: number; O_APPEND: number; O_NONBLOCK: number; O_RDONLY: number; O_WRONLY: number; SEEK_CUR: number; SEEK_END: number; SEEK_SET: number }; errnoCodes: { EAGAIN: NonZeroNumber; EBADF: NonZeroNumber; EDEADLK: NonZeroNumber; EINVAL: NonZeroNumber; EWOULDBLOCK: NonZeroNumber }; memory: { HEAP16: HeapAccessor<number>; HEAP32: HeapAccessor<number>; HEAP64: HeapAccessor<bigint>; HEAP8: HeapAccessor<number>; HEAPF32: HeapAccessor<number>; HEAPF64: HeapAccessor<bigint>; HEAPU16: HeapAccessor<number>; HEAPU32: HeapAccessor<number>; HEAPU64: HeapAccessor<bigint>; HEAPU8: HeapAccessor<number> }; pid: number; syscalls: { getStreamFromFD: (fd: number) => Emscripten.FS.FSStream }; wasmExports: { wasm_get_end_offset: (fd: number) => bigint }; wasmImports: { builtin_fcntl64: (fd: number, cmd: number, varargs?: any) => number; builtin_fd_close: (fd: number) => number; js_wasm_trace: (...args: any[]) => void } }

Type declaration

  • FS: typeof Emscripten.FS
  • NODEFS: typeof Emscripten.NODEFS & { realPath: any }
  • PROXYFS: typeof Emscripten.PROXYFS & { realPath: any }
  • constants: { F_GETFL: number; F_GETLK: number; F_RDLCK: number; F_SETFL: number; F_SETLK: number; F_SETLKW: number; F_UNLCK: number; F_WRLCK: number; LOCK_EX: 2; LOCK_NB: 4; LOCK_SH: 1; LOCK_UN: 8; O_ACCMODE: number; O_APPEND: number; O_NONBLOCK: number; O_RDONLY: number; O_WRONLY: number; SEEK_CUR: number; SEEK_END: number; SEEK_SET: number }
    • F_GETFL: number
    • F_GETLK: number
    • F_RDLCK: number
    • F_SETFL: number
    • F_SETLK: number
    • F_SETLKW: number
    • F_UNLCK: number
    • F_WRLCK: number
    • LOCK_EX: 2
    • LOCK_NB: 4
    • LOCK_SH: 1
    • LOCK_UN: 8
    • O_ACCMODE: number
    • O_APPEND: number
    • O_NONBLOCK: number
    • O_RDONLY: number
    • O_WRONLY: number
    • SEEK_CUR: number
    • SEEK_END: number
    • SEEK_SET: number
  • errnoCodes: { EAGAIN: NonZeroNumber; EBADF: NonZeroNumber; EDEADLK: NonZeroNumber; EINVAL: NonZeroNumber; EWOULDBLOCK: NonZeroNumber }
    • EAGAIN: NonZeroNumber
    • EBADF: NonZeroNumber
    • EDEADLK: NonZeroNumber
    • EINVAL: NonZeroNumber
    • EWOULDBLOCK: NonZeroNumber
  • memory: { HEAP16: HeapAccessor<number>; HEAP32: HeapAccessor<number>; HEAP64: HeapAccessor<bigint>; HEAP8: HeapAccessor<number>; HEAPF32: HeapAccessor<number>; HEAPF64: HeapAccessor<bigint>; HEAPU16: HeapAccessor<number>; HEAPU32: HeapAccessor<number>; HEAPU64: HeapAccessor<bigint>; HEAPU8: HeapAccessor<number> }
    • HEAP16: HeapAccessor<number>
    • HEAP32: HeapAccessor<number>
    • HEAP64: HeapAccessor<bigint>
    • HEAP8: HeapAccessor<number>
    • HEAPF32: HeapAccessor<number>
    • HEAPF64: HeapAccessor<bigint>
    • HEAPU16: HeapAccessor<number>
    • HEAPU32: HeapAccessor<number>
    • HEAPU64: HeapAccessor<bigint>
    • HEAPU8: HeapAccessor<number>
  • pid: number
  • syscalls: { getStreamFromFD: (fd: number) => Emscripten.FS.FSStream }
    • getStreamFromFD: (fd: number) => Emscripten.FS.FSStream
        • (fd: number): Emscripten.FS.FSStream
        • Parameters

          • fd: number

          Returns Emscripten.FS.FSStream

  • wasmExports: { wasm_get_end_offset: (fd: number) => bigint }
    • wasm_get_end_offset: (fd: number) => bigint
        • (fd: number): bigint
        • Parameters

          • fd: number

          Returns bigint

  • wasmImports: { builtin_fcntl64: (fd: number, cmd: number, varargs?: any) => number; builtin_fd_close: (fd: number) => number; js_wasm_trace: (...args: any[]) => void }
    • builtin_fcntl64: (fd: number, cmd: number, varargs?: any) => number
        • (fd: number, cmd: number, varargs?: any): number
        • Parameters

          • fd: number
          • cmd: number
          • optionalvarargs: any

          Returns number

    • builtin_fd_close: (fd: number) => number
        • (fd: number): number
        • Parameters

          • fd: number

          Returns number

    • js_wasm_trace: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • rest...args: any[]

          Returns void