Provides Application level methods
Example usage:
import { createWindow } from 'socket:application'
Returns the current window index
Return Value |
Type |
Description |
Not specified |
number |
|
Creates a new window and returns an instance of ApplicationWindow.
Argument |
Type |
Default |
Optional |
Description |
opts |
object |
|
false |
an options object |
opts.index |
number |
|
false |
the index of the window |
opts.path |
string |
|
false |
the path to the HTML file to load into the window |
opts.title |
string |
|
true |
the title of the window |
opts.width |
number | string |
|
true |
the width of the window. If undefined, the window will have the main window width. |
opts.height |
number | string |
|
true |
the height of the window. If undefined, the window will have the main window height. |
opts.minWidth |
number | string |
0 |
true |
the minimum width of the window |
opts.minHeight |
number | string |
0 |
true |
the minimum height of the window |
opts.maxWidth |
number | string |
100% |
true |
the maximum width of the window |
opts.maxHeight |
number | string |
100% |
true |
the maximum height of the window |
opts.resizable |
boolean |
true |
true |
whether the window is resizable |
opts.frameless |
boolean |
false |
true |
whether the window is frameless |
opts.utility |
boolean |
false |
true |
whether the window is utility (macOS only) |
opts.canExit |
boolean |
false |
true |
whether the window can exit the app |
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Returns the current screen size.
Return Value |
Type |
Description |
Not specified |
Promise<{ width: number, height: number |
>} |
Returns the ApplicationWindow instances for the given indices or all windows if no indices are provided.
Argument |
Type |
Default |
Optional |
Description |
indices |
number |
|
true |
the indices of the windows |
Return Value |
Type |
Description |
Not specified |
Promise<Object.<number, ApplicationWindow>> |
|
Returns the ApplicationWindow instance for the given index
Argument |
Type |
Default |
Optional |
Description |
index |
number |
|
false |
the index of the window |
Return Value |
Type |
Description |
Not specified |
Promise
|
the ApplicationWindow instance or null if the window does not exist |
Returns the ApplicationWindow instance for the current window.
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Quits the backend process and then quits the render process, the exit code used is the final exit code to the OS.
Argument |
Type |
Default |
Optional |
Description |
code |
number |
0 |
true |
an exit code |
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Set the native menu for the app.
Socket Runtime provides a minimalist DSL that makes it easy to create
cross platform native system and context menus.
Menus are created at run time. They can be created from either the Main or
Render process. The can be recreated instantly by calling the setSystemMenu
method.
The method takes a string. Here's an example of a menu. The semi colon is
significant indicates the end of the menu. Use an underscore when there is no
accelerator key. Modifiers are optional. And well known OS menu options like
the edit menu will automatically get accelerators you dont need to specify them.
socket.application.setSystemMenu({ index: 0, value: `
App:
Foo: f;
Edit:
Cut: x
Copy: c
Paste: v
Delete: _
Select All: a;
Other:
Apple: _
Another Test: T
!Im Disabled: I
Some Thing: S + Meta
---
Bazz: s + Meta, Control, Alt;
`)
Separators
To create a separator, use three dashes ---
.
Accelerator Modifiers
Accelerator modifiers are used as visual indicators but don't have a
material impact as the actual key binding is done in the event listener.
A capital letter implies that the accelerator is modified by the Shift
key.
Additional accelerators are Meta
, Control
, Option
, each separated
by commas. If one is not applicable for a platform, it will just be ignored.
On MacOS Meta
is the same as Command
.
Disabled Items
If you want to disable a menu item just prefix the item with the !
character.
This will cause the item to appear disabled when the system menu renders.
Submenus
We feel like nested menus are an anti-pattern. We don't use them. If you have a
strong argument for them and a very simple pull request that makes them work we
may consider them.
Event Handling
When a menu item is activated, it raises the menuItemSelected
event in
the front end code, you can then communicate with your backend code if you
want from there.
For example, if the Apple
item is selected from the Other
menu...
window.addEventListener('menuItemSelected', event => {
assert(event.detail.parent === 'Other')
assert(event.detail.title === 'Apple')
})
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
an options object |
options.value |
string |
|
false |
the menu layout |
options.index |
number |
|
false |
the window to target (if applicable) |
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Set the enabled state of the system menu.
Argument |
Type |
Default |
Optional |
Description |
value |
object |
|
false |
an options object |
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Socket Runtime version.
Runtime debug flag.
Application configuration.
The application's backend instance.
Argument |
Type |
Default |
Optional |
Description |
opts |
object |
|
false |
an options object |
opts.force |
boolean |
false |
true |
whether to force the existing process to close |
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
A high-level, cross-platform API for Bluetooth Pub-Sub
Example usage:
import { Bluetooth } from 'socket:bluetooth'
Create an instance of a Bluetooth service.
constructor is an example property that is set to true
Creates a new service with key-value pairs
Argument |
Type |
Default |
Optional |
Description |
serviceId |
string |
|
false |
Given a default value to determine the type |
Start the Bluetooth service.
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Start scanning for published values that correspond to a well-known UUID.
Once subscribed to a UUID, events that correspond to that UUID will be
emitted. To receive these events you can add an event listener, for example...
const ble = new Bluetooth(id)
ble.subscribe(uuid)
ble.on(uuid, (data, details) => {
// ...do something interesting
})
Argument |
Type |
Default |
Optional |
Description |
id |
string |
|
true |
A well-known UUID |
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Start advertising a new value for a well-known UUID
Argument |
Type |
Default |
Optional |
Description |
id |
string |
|
true |
A well-known UUID |
value |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Buffer module is a third party vendor module provided by Feross Aboukhadijeh and other contributors (MIT License).
External docs: https://nodejs.org/api/buffer.html
Some high-level methods around the crypto.subtle
API for getting
random bytes and hashing.
Example usage:
import { randomBytes } from 'socket:crypto'
External docs: https://developer.mozilla.org/en-US/docs/Web/API/Crypto
WebCrypto API
A promise that resolves when all internals to be loaded/ready.
External docs: https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
Generate cryptographically strong random values into the buffer
Argument |
Type |
Default |
Optional |
Description |
buffer |
TypedArray |
|
false |
|
Return Value |
Type |
Description |
Not specified |
TypedArray |
|
Generate a random 64-bit number.
Return Value |
Type |
Description |
A random 64-bit number. |
BigInt |
|
Maximum total size of random bytes per page
Maximum total size for random bytes.
Maximum total amount of allocated per page of bytes (max/quota)
Generate size
random bytes.
Argument |
Type |
Default |
Optional |
Description |
size |
number |
|
false |
The number of bytes to generate. The size must not be larger than 2**31 - 1. |
Return Value |
Type |
Description |
Not specified |
Buffer |
A promise that resolves with an instance of socket.Buffer with random bytes. |
Argument |
Type |
Default |
Optional |
Description |
algorithm |
string |
|
false |
SHA-1 |
message |
Buffer | TypedArray | DataView |
|
false |
An instance of socket.Buffer, TypedArray or Dataview. |
Return Value |
Type |
Description |
Not specified |
Promise
|
A promise that resolves with an instance of socket.Buffer with the hash. |
A murmur3 hash implementation based on https://github.com/jwerle/murmurhash.c
that works on strings and ArrayBuffer
views (typed arrays)
Argument |
Type |
Default |
Optional |
Description |
value |
string | Uint8Array | ArrayBuffer |
|
false |
|
seed |
number |
0 |
true |
|
Return Value |
Type |
Description |
Not specified |
number |
|
This module enables name resolution. For example, use it to look up IP
addresses of host names. Although named for the Domain Name System (DNS),
it does not always use the DNS protocol for lookups. dns.lookup() uses the
operating system facilities to perform name resolution. It may not need to
perform any network communication. To perform name resolution the way other
applications on the same system do, use dns.lookup().
Example usage:
import { lookup } from 'socket:dns'
External docs: https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback
Resolves a host name (e.g. example.org
) into the first found A (IPv4) or
AAAA (IPv6) record. All option properties are optional. If options is an
integer, then it must be 4 or 6 – if options is 0 or not provided, then IPv4
and IPv6 addresses are both returned if found.
From the node.js website...
With the all option set to true, the arguments for callback change to (err,
addresses), with addresses being an array of objects with the properties
address and family.
On error, err is an Error object, where err.code is the error code. Keep in
mind that err.code will be set to 'ENOTFOUND' not only when the host name does
not exist but also when the lookup fails in other ways such as no available
file descriptors. dns.lookup() does not necessarily have anything to do with
the DNS protocol. The implementation uses an operating system facility that
can associate names with addresses and vice versa. This implementation can
have subtle but important consequences on the behavior of any Node.js program.
Please take some time to consult the Implementation considerations section
before using dns.lookup().
Argument |
Type |
Default |
Optional |
Description |
hostname |
string |
|
false |
The host name to resolve. |
options |
object | intenumberger |
|
true |
An options object or record family. |
options.family |
number | string |
0 |
true |
The record family. Must be 4, 6, or 0. For backward compatibility reasons,'IPv4' and 'IPv6' are interpreted as 4 and 6 respectively. The value 0 indicates that IPv4 and IPv6 addresses are both returned. Default: 0. |
cb |
function |
|
false |
The function to call after the method is complete. |
This module enables name resolution. For example, use it to look up IP
addresses of host names. Although named for the Domain Name System (DNS),
it does not always use the DNS protocol for lookups. dns.lookup() uses the
operating system facilities to perform name resolution. It may not need to
perform any network communication. To perform name resolution the way other
applications on the same system do, use dns.lookup().
Example usage:
import { lookup } from 'socket:dns/promises'
External docs: https://nodejs.org/api/dns.html#dnspromiseslookuphostname-options
Argument |
Type |
Default |
Optional |
Description |
hostname |
string |
|
false |
The host name to resolve. |
opts |
Object |
|
true |
An options object. |
opts.family |
number | string |
0 |
true |
The record family. Must be 4, 6, or 0. For backward compatibility reasons,'IPv4' and 'IPv6' are interpreted as 4 and 6 respectively. The value 0 indicates that IPv4 and IPv6 addresses are both returned. Default: 0. |
Return Value |
Type |
Description |
Not specified |
Promise |
|
This module provides an implementation of UDP datagram sockets. It does
not (yet) provide any of the multicast methods or properties.
Example usage:
import { createSocket } from 'socket:dgram'
Creates a Socket
instance.
Argument |
Type |
Default |
Optional |
Description |
options |
string | Object |
|
false |
either a string ('udp4' or 'udp6') or an options object |
options.type |
string |
|
true |
The family of socket. Must be either 'udp4' or 'udp6'. Required. |
options.reuseAddr |
boolean |
false |
true |
When true socket.bind() will reuse the address, even if another process has already bound a socket on it. Default: false. |
options.ipv6Only |
boolean |
false |
true |
Default: false. |
options.recvBufferSize |
number |
|
true |
Sets the SO_RCVBUF socket value. |
options.sendBufferSize |
number |
|
true |
Sets the SO_SNDBUF socket value. |
options.signal |
AbortSignal |
|
true |
An AbortSignal that may be used to close a socket. |
callback |
function |
|
true |
Attached as a listener for 'message' events. Optional. |
Return Value |
Type |
Description |
Not specified |
Socket |
|
New instances of dgram.Socket are created using dgram.createSocket().
The new keyword is not to be used to create dgram.Socket instances.
External docs: https://nodejs.org/api/dgram.html#socketbindport-address-callback
Listen for datagram messages on a named port and optional address
If the address is not specified, the operating system will attempt to
listen on all addresses. Once the binding is complete, a 'listening'
event is emitted and the optional callback function is called.
If binding fails, an 'error' event is emitted.
Argument |
Type |
Default |
Optional |
Description |
port |
number |
|
false |
The port to listen for messages on |
address |
string |
|
false |
The address to bind to (0.0.0.0) |
callback |
function |
|
false |
With no parameters. Called when binding is complete. |
External docs: https://nodejs.org/api/dgram.html#socketconnectport-address-callback
Associates the dgram.Socket to a remote address and port. Every message sent
by this handle is automatically sent to that destination. Also, the socket
will only receive messages from that remote peer. Trying to call connect()
on an already connected socket will result in an ERR_SOCKET_DGRAM_IS_CONNECTED
exception. If the address is not provided, '0.0.0.0' (for udp4 sockets) or '::1'
(for udp6 sockets) will be used by default. Once the connection is complete,
a 'connect' event is emitted and the optional callback function is called.
In case of failure, the callback is called or, failing this, an 'error' event
is emitted.
Argument |
Type |
Default |
Optional |
Description |
port |
number |
|
false |
Port the client should connect to. |
host |
string |
|
true |
Host the client should connect to. |
connectListener |
function |
|
true |
Common parameter of socket.connect() methods. Will be added as a listener for the 'connect' event once. |
External docs: https://nodejs.org/api/dgram.html#socketdisconnect
A synchronous function that disassociates a connected dgram.Socket from
its remote address. Trying to call disconnect() on an unbound or already
disconnected socket will result in an ERR_SOCKET_DGRAM_NOT_CONNECTED exception.
External docs: https://nodejs.org/api/dgram.html#socketsendmsg-offset-length-port-address-callback
Broadcasts a datagram on the socket. For connectionless sockets, the
destination port and address must be specified. Connected sockets, on the
other hand, will use their associated remote endpoint, so the port and
address arguments must not be set.
The msg argument contains the message to be sent. Depending on its type,
different behavior can apply. If msg is a Buffer, any TypedArray, or a
DataView, the offset and length specify the offset within the Buffer where
the message begins and the number of bytes in the message, respectively.
If msg is a String, then it is automatically converted to a Buffer with
'utf8' encoding. With messages that contain multi-byte characters, offset,
and length will be calculated with respect to byte length and not the
character position. If msg is an array, offset and length must not be
specified.
The address argument is a string. If the value of the address is a hostname,
DNS will be used to resolve the address of the host. If the address is not
provided or otherwise nullish, '0.0.0.0' (for udp4 sockets) or '::1'
(for udp6 sockets) will be used by default.
If the socket has not been previously bound with a call to bind, the socket
is assigned a random port number and is bound to the "all interfaces"
address ('0.0.0.0' for udp4 sockets, '::1' for udp6 sockets.)
An optional callback function may be specified as a way of reporting DNS
errors or for determining when it is safe to reuse the buf object. DNS
lookups delay the time to send for at least one tick of the Node.js event
loop.
The only way to know for sure that the datagram has been sent is by using a
callback. If an error occurs and a callback is given, the error will be
passed as the first argument to the callback. If a callback is not given,
the error is emitted as an 'error' event on the socket object.
Offset and length are optional but both must be set if either is used.
They are supported only when the first argument is a Buffer, a TypedArray,
or a DataView.
Argument |
Type |
Default |
Optional |
Description |
msg |
Buffer | TypedArray | DataView | string | Array |
|
false |
Message to be sent. |
offset |
integer |
|
true |
Offset in the buffer where the message starts. |
length |
integer |
|
true |
Number of bytes in the message. |
port |
integer |
|
true |
Destination port. |
address |
string |
|
true |
Destination host name or IP address. |
callback |
Function |
|
true |
Called when the message has been sent. |
External docs: https://nodejs.org/api/dgram.html#socketclosecallback
Close the underlying socket and stop listening for data on it. If a
callback is provided, it is added as a listener for the 'close' event.
Argument |
Type |
Default |
Optional |
Description |
callback |
function |
|
true |
Called when the connection is completed or on error. |
External docs: https://nodejs.org/api/dgram.html#socketaddress
Returns an object containing the address information for a socket. For
UDP sockets, this object will contain address, family, and port properties.
This method throws EBADF if called on an unbound socket.
Return Value |
Type |
Description |
socketInfo |
Object |
Information about the local socket |
socketInfo.address |
string |
The IP address of the socket |
socketInfo.port |
string |
The port of the socket |
socketInfo.family |
string |
The IP family of the socket |
External docs: https://nodejs.org/api/dgram.html#socketremoteaddress
Returns an object containing the address, family, and port of the remote
endpoint. This method throws an ERR_SOCKET_DGRAM_NOT_CONNECTED exception
if the socket is not connected.
Return Value |
Type |
Description |
socketInfo |
Object |
Information about the remote socket |
socketInfo.address |
string |
The IP address of the socket |
socketInfo.port |
string |
The port of the socket |
socketInfo.family |
string |
The IP family of the socket |
External docs: https://nodejs.org/api/dgram.html#socketsetrecvbuffersizesize
Sets the SO_RCVBUF socket option. Sets the maximum socket receive buffer in
bytes.
Argument |
Type |
Default |
Optional |
Description |
size |
number |
|
false |
The size of the new receive buffer |
External docs: https://nodejs.org/api/dgram.html#socketsetsendbuffersizesize
Sets the SO_SNDBUF socket option. Sets the maximum socket send buffer in
bytes.
Argument |
Type |
Default |
Optional |
Description |
size |
number |
|
false |
The size of the new send buffer |
External docs: https://nodejs.org/api/dgram.html#socketgetrecvbuffersize
External docs: https://nodejs.org/api/dgram.html#socketgetsendbuffersize
Return Value |
Type |
Description |
Not specified |
number |
the SO_SNDBUF socket send buffer size in bytes. |
Thrown when a socket is already bound.
Thrown when the socket is already connected.
Thrown when the socket is not connected.
Thrown when the socket is not running (not bound or connected).
Thrown when a bad socket type is used in an argument.
Thrown when a bad port is given.
Events module is a third party module provided by Browserify and Node.js contributors (MIT License).
External docs: https://nodejs.org/api/events.html
This module enables interacting with the file system in a way modeled on
standard POSIX functions.
The Application Sandbox restricts access to the file system.
iOS Application Sandboxing has a set of rules that limits access to the file
system. Apps can only access files in their own sandboxed home directory.
Directory |
Description |
Documents |
The app’s sandboxed documents directory. The contents of this directory are backed up by iTunes and may be set as accessible to the user via iTunes when UIFileSharingEnabled is set to true in the application's info.plist . |
Library |
The app’s sandboxed library directory. The contents of this directory are synchronized via iTunes (except the Library/Caches subdirectory, see below), but never exposed to the user. |
Library/Caches |
The app’s sandboxed caches directory. The contents of this directory are not synchronized via iTunes and may be deleted by the system at any time. It's a good place to store data which provides a good offline-first experience for the user. |
Library/Preferences |
The app’s sandboxed preferences directory. The contents of this directory are synchronized via iTunes. Its purpose is to be used by the Settings app. Avoid creating your own files in this directory. |
tmp |
The app’s sandboxed temporary directory. The contents of this directory are not synchronized via iTunes and may be deleted by the system at any time. Although, it's recommended that you delete data that is not necessary anymore manually to minimize the space your app takes up on the file system. Use this directory to store data that is only useful during the app runtime. |
Example usage:
import * as fs from 'socket:fs';
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fsopenpath-flags-mode-callback
Asynchronously check access a file for a given mode calling callback
upon success or error.
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
mode |
string? | function(Error?)? |
F_OK(0) |
true |
|
callback |
function(Error?)? |
|
true |
|
External docs: https://nodejs.org/api/fs.html#fschmodpath-mode-callback
Asynchronously changes the permissions of a file.
No arguments other than a possible exception are given to the completion callback
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
mode |
number |
|
false |
|
callback |
function(Error?) |
|
false |
|
Changes ownership of file or directory at path
with uid
and gid
.
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
uid |
number |
|
false |
|
gid |
number |
|
false |
|
callback |
function |
|
false |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fsclosefd-callback
Asynchronously close a file descriptor calling callback
upon success or error.
Argument |
Type |
Default |
Optional |
Description |
fd |
number |
|
false |
|
callback |
function(Error?)? |
|
true |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fscopyfilesrc-dest-mode-callback
Asynchronously copies src
to dest
calling callback
upon success or error.
Argument |
Type |
Default |
Optional |
Description |
src |
string |
|
false |
The source file path. |
dest |
string |
|
false |
The destination file path. |
flags |
number |
|
false |
Modifiers for copy operation. |
callback |
function(Error=) |
|
true |
The function to call after completion. |
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fscreatewritestreampath-options
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
options |
object? |
|
true |
|
Return Value |
Type |
Description |
Not specified |
ReadStream |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fscreatewritestreampath-options
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
options |
object? |
|
true |
|
Return Value |
Type |
Description |
Not specified |
WriteStream |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fsfstatfd-options-callback
Invokes the callback with the <fs.Stats> for the file descriptor. See
the POSIX fstat(2) documentation for more detail.
Argument |
Type |
Default |
Optional |
Description |
fd |
number |
|
false |
A file descriptor. |
options |
object? | function? |
|
true |
An options object. |
callback |
function? |
|
false |
The function to call after completion. |
Request that all data for the open file descriptor is flushed
to the storage device.
Argument |
Type |
Default |
Optional |
Description |
fd |
number |
|
false |
A file descriptor. |
callback |
function |
|
false |
The function to call after completion. |
Truncates the file up to offset
bytes.
Argument |
Type |
Default |
Optional |
Description |
fd |
number |
|
false |
A file descriptor. |
offset |
number= | function |
0 |
true |
|
callback |
function? |
|
false |
The function to call after completion. |
Chages ownership of link at path
with uid
and `gid.
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
uid |
number |
|
false |
|
gid |
number |
|
false |
|
callback |
function |
|
false |
|
Creates a link to dest
from src
.
Argument |
Type |
Default |
Optional |
Description |
src |
string |
|
false |
|
dest |
string |
|
false |
|
(Position 0) |
function |
|
false |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fsopenpath-flags-mode-callback
Asynchronously open a file calling callback
upon success or error.
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
flags |
string? |
r |
true |
|
mode |
string? |
0o666 |
true |
|
options |
object? | function? |
|
true |
|
callback |
function(Error?, number?)? |
|
true |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fsreaddirpath-options-callback
Asynchronously open a directory calling callback
upon success or error.
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
options |
object? | function(Error?, Dir?) |
|
true |
|
options.encoding |
string? |
utf8 |
true |
|
options.withFileTypes |
boolean? |
false |
true |
|
callback |
function(Error?, Dir?)? |
|
false |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fsreadfd-buffer-offset-length-position-callback
Asynchronously read from an open file descriptor.
Argument |
Type |
Default |
Optional |
Description |
fd |
number |
|
false |
|
buffer |
object | Buffer | TypedArray |
|
false |
The buffer that the data will be written to. |
offset |
number |
|
false |
The position in buffer to write the data to. |
length |
number |
|
false |
The number of bytes to read. |
position |
number | BigInt | null |
|
false |
Specifies where to begin reading from in the file. If position is null or -1 , data will be read from the current file position, and the file position will be updated. If position is an integer, the file position will be unchanged. |
callback |
function(Error?, number?, Buffer?) |
|
false |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fsreaddirpath-options-callback
Asynchronously read all entries in a directory.
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
options |
object? | function(Error?, object) |
|
true |
|
options.encoding ? utf8 |
string? |
|
true |
|
options.withFileTypes ? false |
boolean? |
|
true |
|
callback |
function(Error?, object) |
|
false |
|
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL | number |
|
false |
|
options |
object? | function(Error?, Buffer?) |
|
true |
|
options.encoding ? utf8 |
string? |
|
true |
|
options.flag ? r |
string? |
|
true |
|
options.signal |
AbortSignal? |
|
true |
|
callback |
function(Error?, Buffer?) |
|
false |
|
Reads link at path
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
callback |
function(err, string) |
|
false |
|
Computes real path for path
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
callback |
function(err, string) |
|
false |
|
Renames file or directory at src
to dest
.
Argument |
Type |
Default |
Optional |
Description |
src |
string |
|
false |
|
dest |
string |
|
false |
|
callback |
function |
|
false |
|
Removes directory at path
.
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
callback |
function |
|
false |
|
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL | number |
|
false |
filename or file descriptor |
options |
object? |
|
false |
|
options.encoding ? utf8 |
string? |
|
true |
|
options.flag ? r |
string? |
|
true |
|
options.signal |
AbortSignal? |
|
true |
|
callback |
function(Error?, Stats?) |
|
false |
|
Creates a symlink of src
at dest
.
Argument |
Type |
Default |
Optional |
Description |
src |
string |
|
false |
|
dest |
string |
|
false |
|
Unlinks (removes) file at path
.
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
callback |
function |
|
false |
|
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL | number |
|
false |
filename or file descriptor |
data |
string | Buffer | TypedArray | DataView | object |
|
false |
|
options |
object? |
|
false |
|
options.encoding ? utf8 |
string? |
|
true |
|
options.mode ? 0o666 |
string? |
|
true |
|
options.flag ? w |
string? |
|
true |
|
options.signal |
AbortSignal? |
|
true |
|
callback |
function(Error?) |
|
false |
|
Watch for changes at path
calling callback
Argument |
Type |
Default |
Optional |
Description |
(Position 0) |
string |
|
false |
|
options |
function | object |
|
true |
|
options.encoding |
string |
utf8 |
true |
|
callback |
?function |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Watcher |
|
- This module enables interacting with the file system in a way modeled on
standard POSIX functions.
The Application Sandbox restricts access to the file system.
iOS Application Sandboxing has a set of rules that limits access to the file
system. Apps can only access files in their own sandboxed home directory.
Directory |
Description |
Documents |
The app’s sandboxed documents directory. The contents of this directory are backed up by iTunes and may be set as accessible to the user via iTunes when UIFileSharingEnabled is set to true in the application's info.plist . |
Library |
The app’s sandboxed library directory. The contents of this directory are synchronized via iTunes (except the Library/Caches subdirectory, see below), but never exposed to the user. |
Library/Caches |
The app’s sandboxed caches directory. The contents of this directory are not synchronized via iTunes and may be deleted by the system at any time. It's a good place to store data which provides a good offline-first experience for the user. |
Library/Preferences |
The app’s sandboxed preferences directory. The contents of this directory are synchronized via iTunes. Its purpose is to be used by the Settings app. Avoid creating your own files in this directory. |
tmp |
The app’s sandboxed temporary directory. The contents of this directory are not synchronized via iTunes and may be deleted by the system at any time. Although, it's recommended that you delete data that is not necessary anymore manually to minimize the space your app takes up on the file system. Use this directory to store data that is only useful during the app runtime. |
Example usage:
import fs from 'socket:fs/promises'
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fspromisesaccesspath-mode
Asynchronously check access a file.
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
mode |
string? |
|
true |
|
options |
object? |
|
true |
|
External docs: https://nodejs.org/api/fs.html#fspromiseschmodpath-mode
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
mode |
number |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Changes ownership of file or directory at path
with uid
and gid
.
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
uid |
number |
|
false |
|
gid |
number |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise |
|
Asynchronously copies src
to dest
calling callback
upon success or error.
Argument |
Type |
Default |
Optional |
Description |
src |
string |
|
false |
The source file path. |
dest |
string |
|
false |
The destination file path. |
flags |
number |
|
false |
Modifiers for copy operation. |
Return Value |
Type |
Description |
Not specified |
Promise |
|
Chages ownership of link at path
with uid
and `gid.
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
uid |
number |
|
false |
|
gid |
number |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise |
|
Creates a link to dest
from dest
.
Argument |
Type |
Default |
Optional |
Description |
src |
string |
|
false |
|
dest |
string |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise |
|
Asynchronously creates a directory.
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
The path to create |
options |
object |
|
true |
The optional options argument can be an integer specifying mode (permission and sticky bits), or an object with a mode property and a recursive property indicating whether parent directories should be created. Calling fs.mkdir() when path is a directory that exists results in an error only when recursive is false. |
options.recursive |
boolean |
false |
true |
Recursively create missing path segments. |
options.mode |
number |
0o777 |
true |
Set the mode of directory, or missing path segments when recursive is true. |
Return Value |
Type |
Description |
Not specified |
Promise
|
Upon success, fulfills with undefined if recursive is false, or the first directory path created if recursive is true. |
External docs: https://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode
Asynchronously open a file.
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
flags |
string |
|
true |
default: 'r' |
mode |
number |
|
true |
default: 0o666 |
Return Value |
Type |
Description |
Not specified |
Promise
|
|
External docs: https://nodejs.org/api/fs.html#fspromisesopendirpath-options
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
options |
object? |
|
true |
|
options.encoding |
string? |
utf8 |
true |
|
options.bufferSize |
number? |
32 |
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fspromisesreaddirpath-options
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
options |
object? |
|
false |
|
options.encoding |
string? |
utf8 |
true |
|
options.withFileTypes |
boolean? |
false |
true |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fspromisesreadfilepath-options
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
options |
object? |
|
true |
|
options.encoding |
(string | null)? |
null |
true |
|
options.flag |
string? |
r |
true |
|
options.signal |
AbortSignal? |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise<Buffer | string> |
|
Reads link at path
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Computes real path for path
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Renames file or directory at src
to dest
.
Argument |
Type |
Default |
Optional |
Description |
src |
string |
|
false |
|
dest |
string |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise |
|
Removes directory at path
.
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise |
|
External docs: https://nodejs.org/api/fs.html#fspromisesstatpath-options
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL |
|
false |
|
options |
object? |
|
true |
|
options.bigint |
boolean? |
false |
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Creates a symlink of src
at dest
.
Argument |
Type |
Default |
Optional |
Description |
src |
string |
|
false |
|
dest |
string |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise |
|
Unlinks (removes) file at path
.
Argument |
Type |
Default |
Optional |
Description |
path |
string |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise |
|
External docs: https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#fspromiseswritefilefile-data-options
Argument |
Type |
Default |
Optional |
Description |
path |
string | Buffer | URL | FileHandle |
|
false |
filename or FileHandle |
data |
string | Buffer | Array | DataView | TypedArray |
|
false |
|
options |
object? |
|
true |
|
options.encoding |
string | null |
utf8 |
true |
|
options.mode |
number |
0o666 |
true |
|
options.flag |
string |
w |
true |
|
options.signal |
AbortSignal? |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Watch for changes at path
calling callback
Argument |
Type |
Default |
Optional |
Description |
(Position 0) |
string |
|
false |
|
options |
function | object |
|
true |
|
options.encoding |
string |
utf8 |
true |
|
options.signal |
AbortSignal |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Watcher |
|
This is a low-level API that you don't need unless you are implementing
a library on top of Socket runtime. A Socket app has one or more processes.
When you need to send a message to another window or to the backend, you
should use the application
module to get a reference to the window and
use the send
method to send a message.
- The
Render
process, is the UI where the HTML, CSS, and JS are run.
- The
Bridge
process, is the thin layer of code that manages everything.
- The
Main
process, is for apps that need to run heavier compute jobs. And
unlike electron it's optional.
The Bridge process manages the Render and Main process, it may also broker
data between them.
The Binding process uses standard input and output as a way to communicate.
Data written to the write-end of the pipe is buffered by the OS until it is
read from the read-end of the pipe.
The IPC protocol uses a simple URI-like scheme. Data is passed as
ArrayBuffers.
ipc://command?key1=value1&key2=value2...
Example usage:
import { send } from 'socket:ipc'
Emit event to be dispatched on window
object.
Argument |
Type |
Default |
Optional |
Description |
name |
string |
|
false |
|
value |
any |
|
false |
|
target |
EventTarget |
window |
true |
|
options |
Object |
|
true |
|
Sends an async IPC command request with parameters.
Argument |
Type |
Default |
Optional |
Description |
command |
string |
|
false |
|
value |
any |
|
true |
|
options |
object |
|
true |
|
options.cache |
boolean |
false |
true |
|
options.bytes |
boolean |
false |
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
External docs: https://socketsupply.co/guides/#p2p-guide
Provides a higher level API over the stream-relay protocol.
This module provides normalized system information from all the major
operating systems.
Example usage:
import { arch, platform } from 'socket:os'
Returns the operating system CPU architecture for which Socket was compiled.
Return Value |
Type |
Description |
Not specified |
string |
'arm64', 'ia32', 'x64', or 'unknown' |
External docs: https://nodejs.org/api/os.html#os_os_cpus
Returns an array of objects containing information about each CPU/core.
The properties of the objects are:
- model
<string>
- CPU model name.
- speed
<number>
- CPU clock speed (in MHz).
- times
<object>
- An object containing the fields user, nice, sys, idle, irq representing the number of milliseconds the CPU has spent in each mode.
- user
<number>
- Time spent by this CPU or core in user mode.
- nice
<number>
- Time spent by this CPU or core in user mode with low priority (nice).
- sys
<number>
- Time spent by this CPU or core in system mode.
- idle
<number>
- Time spent by this CPU or core in idle mode.
- irq
<number>
- Time spent by this CPU or core in IRQ mode.
Return Value |
Type |
Description |
cpus |
Array
|
An array of objects containing information about each CPU/core. |
External docs: https://nodejs.org/api/os.html#os_os_networkinterfaces
Returns an object containing network interfaces that have been assigned a network address.
Each key on the returned object identifies a network interface. The associated value is an array of objects that each describe an assigned network address.
The properties available on the assigned network address object include:
- address
<string>
- The assigned IPv4 or IPv6 address.
- netmask
<string>
- The IPv4 or IPv6 network mask.
- family
<string>
- The address family ('IPv4' or 'IPv6').
- mac
<string>
- The MAC address of the network interface.
- internal
<boolean>
- Indicates whether the network interface is a loopback interface.
- scopeid
<number>
- The numeric scope ID (only specified when family is 'IPv6').
- cidr
<string>
- The CIDR notation of the interface.
Return Value |
Type |
Description |
Not specified |
object |
An object containing network interfaces that have been assigned a network address. |
External docs: https://nodejs.org/api/os.html#os_os_platform
Returns the operating system platform.
The returned value is equivalent to process.platform
.
Return Value |
Type |
Description |
Not specified |
string |
'android', 'cygwin', 'freebsd', 'linux', 'darwin', 'ios', 'openbsd', 'win32', or 'unknown' |
External docs: https://nodejs.org/api/os.html#os_os_type
Returns the operating system name.
Return Value |
Type |
Description |
Not specified |
string |
'CYGWIN_NT', 'Mac', 'Darwin', 'FreeBSD', 'Linux', 'OpenBSD', 'Windows_NT', 'Win32', or 'Unknown' |
Return Value |
Type |
Description |
Not specified |
boolean |
true if the operating system is Windows. |
Return Value |
Type |
Description |
Not specified |
string |
The operating system's default directory for temporary files. |
The operating system's end-of-line marker. '\r\n'
on Windows and '\n'
on POSIX.
Get resource usage.
Returns the system uptime in seconds.
Return Value |
Type |
Description |
Not specified |
number |
The system uptime in seconds. |
Returns the operating system name.
Return Value |
Type |
Description |
Not specified |
string |
The operating system name. |
Example usage:
import { Path } from 'socket:path'
External docs: https://nodejs.org/api/path.html#path_path_resolve_paths
The path.resolve() method resolves a sequence of paths or path segments into an absolute path.
Argument |
Type |
Default |
Optional |
Description |
...paths |
strig |
|
false |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Computes current working directory for a path
Argument |
Type |
Default |
Optional |
Description |
opts |
object |
|
true |
|
opts.posix Set to true to force POSIX style path |
boolean |
|
true |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Computed location origin. Defaults to socket:///
if not available.
Return Value |
Type |
Description |
Not specified |
string |
|
Computes the relative path from from
to to
.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
|
from |
PathComponent |
|
false |
|
to |
PathComponent |
|
false |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Joins path components. This function may not return an absolute path.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
|
components |
...PathComponent |
|
false |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Computes directory name of path.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
|
components |
...PathComponent |
|
false |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Computes base name of path.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
|
components |
...PathComponent |
|
false |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Computes extension name of path.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
|
path |
PathComponent |
|
false |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Computes normalized path
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
|
path |
PathComponent |
|
false |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Formats Path
object into a string.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
|
path |
object | Path |
|
false |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Parses input path
into a Path
instance.
Argument |
Type |
Default |
Optional |
Description |
path |
PathComponent |
|
false |
|
Return Value |
Type |
Description |
Not specified |
object |
|
A container for a parsed Path.
Creates a Path
instance from input
and optional cwd
.
Argument |
Type |
Default |
Optional |
Description |
input |
PathComponent |
|
false |
|
cwd |
string |
|
true |
|
Path
class constructor.
Argument |
Type |
Default |
Optional |
Description |
pathname |
string |
|
false |
|
cwd |
string |
Path.cwd() |
true |
|
true
if the path is relative, otherwise `false.
The working value of this path.
The original source, unresolved.
Computed parent path.
Computed root in path.
Computed directory name in path.
Computed base name in path.
Computed base name in path without path extension.
Computed extension name in path.
The computed drive, if given in the path.
Return Value |
Type |
Description |
Not specified |
URL |
|
Converts this Path
instance to a string.
Return Value |
Type |
Description |
Not specified |
string |
|
Example usage:
import process from 'socket:process'
Adds callback to the 'nextTick' queue.
Argument |
Type |
Default |
Optional |
Description |
callback |
Function |
|
false |
|
Return Value |
Type |
Description |
Not specified |
string |
The home directory of the current user. |
Computed high resolution time as a BigInt
.
Argument |
Type |
Default |
Optional |
Description |
time |
Array?
|
|
true |
|
Return Value |
Type |
Description |
Not specified |
bigint |
|
Argument |
Type |
Default |
Optional |
Description |
code |
number |
0 |
true |
The exit code. Default: 0. |
Returns an object describing the memory usage of the Node.js process measured in bytes.
Return Value |
Type |
Description |
Not specified |
Object |
|
Provides a test runner for Socket Runtime.
Example usage:
import { test } from 'socket:test'
test('test name', async t => {
t.equal(1, 1)
})
Return Value |
Type |
Description |
Not specified |
number |
The default timeout for tests in milliseconds. |
Argument |
Type |
Default |
Optional |
Description |
name |
string |
|
false |
|
fn |
TestFn |
|
false |
|
runner |
TestRunner |
|
false |
|
Argument |
Type |
Default |
Optional |
Description |
msg |
string |
|
false |
|
Plan the number of assertions.
Argument |
Type |
Default |
Optional |
Description |
n |
number |
|
false |
|
Argument |
Type |
Default |
Optional |
Description |
actual |
T |
|
false |
|
expected |
T |
|
false |
|
msg |
string |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
actual |
T |
|
false |
|
expected |
T |
|
false |
|
msg |
string |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
actual |
T |
|
false |
|
expected |
T |
|
false |
|
msg |
string |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
actual |
unknown |
|
false |
|
expected |
unknown |
|
false |
|
msg |
string |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
msg |
string |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
actual |
unknown |
|
false |
|
msg |
string |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
msg |
string |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
err |
Error | null | undefined |
|
false |
|
msg |
string |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
fn |
Function |
|
false |
|
expected |
RegExp | any |
|
true |
|
message |
string |
|
true |
|
Sleep for ms with an optional msg
Argument |
Type |
Default |
Optional |
Description |
ms |
number |
|
false |
|
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Request animation frame with an optional msg. Falls back to a 0ms setTimeout when
tests are run headlessly.
await t.requestAnimationFrame()
Argument |
Type |
Default |
Optional |
Description |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Dispatch the `click`` method on an element specified by selector.
await t.click('.class button', 'Click a button')
Argument |
Type |
Default |
Optional |
Description |
selector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Dispatch the click window.MouseEvent on an element specified by selector.
await t.eventClick('.class button', 'Click a button with an event')
Argument |
Type |
Default |
Optional |
Description |
selector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Dispatch an event on the target.
await t.dispatchEvent('my-event', '#my-div', 'Fire the my-event event')
Argument |
Type |
Default |
Optional |
Description |
event |
string | Event |
|
false |
The event name or Event instance to dispatch. |
target |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element to dispatch the event on. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Call the focus method on element specified by selector.
Argument |
Type |
Default |
Optional |
Description |
selector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Call the blur method on element specified by selector.
Argument |
Type |
Default |
Optional |
Description |
selector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Consecutively set the str value of the element specified by selector to simulate typing.
await t.typeValue('#my-div', 'Hello World', 'Type "Hello World" into #my-div')
Argument |
Type |
Default |
Optional |
Description |
selector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element. |
str |
string |
|
false |
The string to type into the :focus element. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
appendChild an element el to a parent selector element.
const myElement = createElement('div')
await t.appendChild('#parent-selector', myElement, 'Append myElement into #parent-selector')
Argument |
Type |
Default |
Optional |
Description |
parentSelector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element to appendChild on. |
el |
HTMLElement | Element |
|
false |
A element to append to the parent element. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Remove an element from the DOM.
await t.removeElement('#dom-selector', 'Remove #dom-selector')
Argument |
Type |
Default |
Optional |
Description |
selector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element to remove from the DOM. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Test if an element is visible
await t.elementVisible('#dom-selector','Element is visible')
Argument |
Type |
Default |
Optional |
Description |
selector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element to test visibility on. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Test if an element is invisible
await t.elementInvisible('#dom-selector','Element is invisible')
Argument |
Type |
Default |
Optional |
Description |
selector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element to test visibility on. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Test if an element is invisible
await t.waitFor('#dom-selector', { visible: true },'#dom-selector is on the page and visible')
Argument |
Type |
Default |
Optional |
Description |
querySelectorOrFn |
string | (() => HTMLElement | Element | null | undefined) |
|
false |
A query string or a function that returns an element. |
opts |
Object |
|
true |
|
opts.visible |
boolean |
|
true |
The element needs to be visible. |
opts.timeout |
number |
|
true |
The maximum amount of time to wait. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise<HTMLElement | Element | void> |
|
Test if an element is invisible
await t.waitForText('#dom-selector', 'Text to wait for')
await t.waitForText('#dom-selector', /hello/i)
await t.waitForText('#dom-selector', {
text: 'Text to wait for',
multipleTags: true
})
Argument |
Type |
Default |
Optional |
Description |
selector |
string | HTMLElement | Element |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element. |
opts |
WaitForTextOpts | string | RegExp |
|
true |
|
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Promise<HTMLElement | Element | void> |
|
Run a querySelector as an assert and also get the results
const element = await t.querySelector('#dom-selector')
Argument |
Type |
Default |
Optional |
Description |
selector |
string |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element to select. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
HTMLElement | Element |
|
Run a querySelectorAll as an assert and also get the results
const elements = await t.querySelectorAll('#dom-selector', '')
Argument |
Type |
Default |
Optional |
Description |
selector |
string |
|
false |
A CSS selector string, or an instance of HTMLElement, or Element to select. |
msg |
string |
|
true |
|
Return Value |
Type |
Description |
Not specified |
Array<HTMLElement | Element> |
|
Retrieves the computed styles for a given element.
// Using CSS selector
const style = getComputedStyle('.my-element', 'Custom success message');
// Using Element object
const el = document.querySelector('.my-element');
const style = getComputedStyle(el);
Argument |
Type |
Default |
Optional |
Description |
selector |
string | Element |
|
false |
The CSS selector or the Element object for which to get the computed styles. |
msg |
string |
|
true |
An optional message to display when the operation is successful. Default message will be generated based on the type of selector. |
Return Value |
Type |
Description |
Not specified |
CSSStyleDeclaration |
The computed styles of the element. |
pass: number,
fail: number
}>}
Argument |
Type |
Default |
Optional |
Description |
report |
(lines: string) => void |
|
true |
|
Return Value |
Type |
Description |
Not specified |
string |
|
Argument |
Type |
Default |
Optional |
Description |
name |
string |
|
false |
|
fn |
TestFn |
|
false |
|
only |
boolean |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Argument |
Type |
Default |
Optional |
Description |
) |
(result: { total: number, success: number, fail: number |
> void} callback |
false |
|
Argument |
Type |
Default |
Optional |
Description |
name |
string |
|
false |
|
fn |
TestFn |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
_name |
string |
|
false |
|
_fn |
TestFn |
|
true |
|
Argument |
Type |
Default |
Optional |
Description |
strict |
boolean |
|
false |
|
Provides ApplicationWindow class and methods
Don't use this module directly, get instances of ApplicationWindow with
socket:application
methods like getCurrentWindow
, createWindow
,
getWindow
, and getWindows
.
Represents a window in the application
Get the index of the window
Return Value |
Type |
Description |
Not specified |
number |
the index of the window |
Get the size of the window
Return Value |
Type |
Description |
Not specified |
{ width: number, height: number |
} - the size of the window |
Get the title of the window
Return Value |
Type |
Description |
Not specified |
string |
the title of the window |
Get the status of the window
Return Value |
Type |
Description |
Not specified |
string |
the status of the window |
Close the window
Return Value |
Type |
Description |
Not specified |
Promise
|
the options of the window |
Shows the window
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Hides the window
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Sets the title of the window
Argument |
Type |
Default |
Optional |
Description |
title |
string |
|
false |
the title of the window |
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Sets the size of the window
Argument |
Type |
Default |
Optional |
Description |
opts |
object |
|
false |
an options object |
opts.width |
number | string |
|
true |
the width of the window |
opts.height |
number | string |
|
true |
the height of the window |
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Navigate the window to a given path
Argument |
Type |
Default |
Optional |
Description |
path |
object |
|
false |
file path |
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Opens the Web Inspector for the window
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Sets the background color of the window
Argument |
Type |
Default |
Optional |
Description |
opts |
object |
|
false |
an options object |
opts.red |
number |
|
false |
the red value |
opts.green |
number |
|
false |
the green value |
opts.blue |
number |
|
false |
the blue value |
opts.alpha |
number |
|
false |
the alpha value |
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Opens a native context menu.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
an options object |
Return Value |
Type |
Description |
Not specified |
Promise
|
|
Shows a native open file dialog.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
an options object |
Return Value |
Type |
Description |
Not specified |
Promise<string[]> |
an array of file paths |
Shows a native save file dialog.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
an options object |
Return Value |
Type |
Description |
Not specified |
Promise<string[]> |
an array of file paths |
Shows a native directory dialog.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
an options object |
Return Value |
Type |
Description |
Not specified |
Promise<string[]> |
an array of file paths |
This is a high-level API that you should use instead of ipc.send
when
you want to send a message to another window or to the backend.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
an options object |
options.window |
number |
|
true |
the window to send the message to |
options.backend |
boolean |
false |
true |
whether to send the message to the backend |
options.event |
string |
|
false |
the event to send |
options.value |
string | object |
|
true |
the value to send |
Opens an URL in the default browser.
Argument |
Type |
Default |
Optional |
Description |
options |
object |
|
false |
|
Return Value |
Type |
Description |
Not specified |
Promise<ipc.Result> |
|
Adds a listener to the window.
Argument |
Type |
Default |
Optional |
Description |
event |
string |
|
false |
the event to listen to |
cb |
function(*): void |
|
false |
the callback to call |
Adds a listener to the window. An alias for addListener
.
Argument |
Type |
Default |
Optional |
Description |
event |
string |
|
false |
the event to listen to |
cb |
function(*): void |
|
false |
the callback to call |
Adds a listener to the window. The listener is removed after the first call.
Argument |
Type |
Default |
Optional |
Description |
event |
string |
|
false |
the event to listen to |
cb |
function(*): void |
|
false |
the callback to call |
Removes a listener from the window.
Argument |
Type |
Default |
Optional |
Description |
event |
string |
|
false |
the event to remove the listener from |
cb |
function(*): void |
|
false |
the callback to remove |
Removes all listeners from the window.
Argument |
Type |
Default |
Optional |
Description |
event |
string |
|
false |
the event to remove the listeners from |
Removes a listener from the window. An alias for removeListener
.
Argument |
Type |
Default |
Optional |
Description |
event |
string |
|
false |
the event to remove the listener from |
cb |
function(*): void |
|
false |
the callback to remove |