Skip to content

API Reference documentation #63

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions docs/api/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md)

## API Reference
## Packages

| Package | Description |
| --- | --- |
| [php-wasm](./php-wasm.md) | |
| [php-wasm-browser](./php-wasm-browser.md) | |
| [wordpress-wasm](./wordpress-wasm.md) | |

21 changes: 21 additions & 0 deletions docs/api/php-wasm-browser.awaitreply.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [awaitReply](./php-wasm-browser.awaitreply.md)

## awaitReply() function
awaitReply<!-- -->(\
&emsp;&emsp;&emsp;<!-- -->messageTarget<!-- -->: [EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)<!-- -->, \
&emsp;&emsp;&emsp;<!-- -->requestId<!-- -->: [number](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean)<!-- -->, \
&emsp;&emsp;&emsp;<!-- -->timeout?<!-- -->: [number](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean)\
)<!-- -->: [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<!-- -->&lt;[any](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any)<!-- -->&gt;

* `messageTarget` – EventEmitter emitting `message` events, e.g. `window` or a `Worker` instance.
* `requestId` – The message ID returned by postMessageExpectReply().
* `timeout` – Optional. The number of milliseconds to wait for a reply before throwing an error.
* Returns: The reply from the messageTarget.

Exceptions:


Awaits a reply to the message with the given ID.

17 changes: 17 additions & 0 deletions docs/api/php-wasm-browser.cloneresponsemonitorprogress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [cloneResponseMonitorProgress](./php-wasm-browser.cloneresponsemonitorprogress.md)

## cloneResponseMonitorProgress() function
cloneResponseMonitorProgress<!-- -->(\
&emsp;&emsp;&emsp;<!-- -->response<!-- -->: [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)<!-- -->, \
&emsp;&emsp;&emsp;<!-- -->onProgress<!-- -->: [DownloadProgressCallback](./php-wasm-browser.downloadprogresscallback.md)\
)<!-- -->: [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)

* `response` – The fetch Response object to clone.
* `onProgress` – The callback to call when the download progress changes.
* Returns: The cloned response


Clones a fetch Response object and returns a version that calls the `onProgress` callback as the progress changes.

10 changes: 10 additions & 0 deletions docs/api/php-wasm-browser.currentbackend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [currentBackend](./php-wasm-browser.currentbackend.md)

## currentBackend variable
<b>Signature:</b>

```typescript
currentBackend: WorkerThreadBackend
```
12 changes: 12 additions & 0 deletions docs/api/php-wasm-browser.default_base_url.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [DEFAULT_BASE_URL](./php-wasm-browser.default_base_url.md)

## DEFAULT_BASE_URL variable
<b>Signature:</b>

```typescript
DEFAULT_BASE_URL = "http://example.com"
```
The default base used to convert a path into the URL object.

12 changes: 12 additions & 0 deletions docs/api/php-wasm-browser.downloadprogresscallback.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [DownloadProgressCallback](./php-wasm-browser.downloadprogresscallback.md)

## DownloadProgressCallback type
<b>Signature:</b>

```typescript
type DownloadProgressCallback = (event: DownloadProgressEvent) => void;
```
<b>References:</b> [DownloadProgressEvent](./php-wasm-browser.downloadprogressevent.md)

12 changes: 12 additions & 0 deletions docs/api/php-wasm-browser.downloadprogressevent.loaded.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [DownloadProgressEvent](./php-wasm-browser.downloadprogressevent.md) > [loaded](./php-wasm-browser.downloadprogressevent.loaded.md)

## DownloadProgressEvent.loaded property
<b>Signature:</b>

```typescript
loaded: number;
```
The number of bytes loaded so far.

15 changes: 15 additions & 0 deletions docs/api/php-wasm-browser.downloadprogressevent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [DownloadProgressEvent](./php-wasm-browser.downloadprogressevent.md)

## DownloadProgressEvent interface
<b>Signature:</b>

```typescript
interface DownloadProgressEvent
```
## Properties

* `loaded` [number](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean) – The number of bytes loaded so far.
* `total` [number](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean) – The total number of bytes to load.

12 changes: 12 additions & 0 deletions docs/api/php-wasm-browser.downloadprogressevent.total.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [DownloadProgressEvent](./php-wasm-browser.downloadprogressevent.md) > [total](./php-wasm-browser.downloadprogressevent.total.md)

## DownloadProgressEvent.total property
<b>Signature:</b>

```typescript
total: number;
```
The total number of bytes to load.

20 changes: 20 additions & 0 deletions docs/api/php-wasm-browser.getpathqueryfragment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [getPathQueryFragment](./php-wasm-browser.getpathqueryfragment.md)

## getPathQueryFragment() function
getPathQueryFragment<!-- -->(<!-- -->url<!-- -->: [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)<!-- -->)<!-- -->: [string](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean)

* `url` – The URL.
* Returns: The path, query, and fragment.


Returns a string representing the path, query, and fragment of the given URL.

## Example

```js
const url = new URL('http://example.com/foo/bar?baz=qux#quux');
getPathQueryFragment(url); // '/foo/bar?baz=qux#quux'
```

23 changes: 23 additions & 0 deletions docs/api/php-wasm-browser.geturlscope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [getURLScope](./php-wasm-browser.geturlscope.md)

## getURLScope() function
getURLScope<!-- -->(<!-- -->url<!-- -->: [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)<!-- -->)<!-- -->: [string](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean)<!-- -->|<!-- -->null

* `url` – The URL.
* Returns: The scope if the URL contains a scope, `null` otherwise.


Returns the scope stored in the given URL.

## Example

```js
getScopeFromURL(new URL('http://localhost/scope:96253/index.php'));
// '96253'

getScopeFromURL(new URL('http://localhost/index.php'));
// null
```

12 changes: 12 additions & 0 deletions docs/api/php-wasm-browser.initializeserviceworker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [initializeServiceWorker](./php-wasm-browser.initializeserviceworker.md)

## initializeServiceWorker() function
initializeServiceWorker<!-- -->(<!-- -->config<!-- -->: [ServiceWorkerConfiguration](./php-wasm-browser.serviceworkerconfiguration.md)<!-- -->)<!-- -->: [void](https://www.typescriptlang.org/docs/handbook/2/functions.html#void)

* `config` –


Run this function in the service worker to install the required event handlers.

45 changes: 45 additions & 0 deletions docs/api/php-wasm-browser.initializeworkerthread.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [initializeWorkerThread](./php-wasm-browser.initializeworkerthread.md)

## initializeWorkerThread() function
initializeWorkerThread<!-- -->(<!-- -->config<!-- -->: [WorkerThreadConfiguration](./php-wasm-browser.workerthreadconfiguration.md)<!-- -->)<!-- -->: [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<!-- -->&lt;[any](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any)<!-- -->&gt;

* `config` – The worker thread configuration. The backend object to communicate with the parent thread.


Call this in a worker thread script to set the stage for offloading the PHP processing. This function:

* Initializes the PHP runtime * Starts PHPServer and PHPBrowser * Lets the main app know when its ready * Listens for messages from the main app * Runs the requested operations (like `run_php`<!-- -->) * Replies to the main app with the results using the [request/reply protocol](#request-reply-protocol)

Remember: The worker thread code must live in a separate JavaScript file.

A minimal worker thread script looks like this:

```js
import { initializeWorkerThread } from 'php-wasm-browser';
initializeWorkerThread();
```
You can customize the PHP loading flow via the first argument:

```js
import { initializeWorkerThread, loadPHPWithProgress } from 'php-wasm-browser';
initializeWorkerThread( bootBrowser );

async function bootBrowser({ absoluteUrl }) {
const [phpLoaderModule, myDependencyLoaderModule] = await Promise.all([
import(`/php.js`),
import(`/wp.js`)
]);

const php = await loadPHPWithProgress(phpLoaderModule, [myDependencyLoaderModule]);

const server = new PHPServer(php, {
documentRoot: '/www',
absoluteUrl: absoluteUrl
});

return new PHPBrowser(server);
}
```

23 changes: 23 additions & 0 deletions docs/api/php-wasm-browser.isurlscoped.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [isURLScoped](./php-wasm-browser.isurlscoped.md)

## isURLScoped() function
isURLScoped<!-- -->(<!-- -->url<!-- -->: [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)<!-- -->)<!-- -->: [boolean](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean)

* `url` – The URL to check.
* Returns: `true` if the URL contains scope information, `false` otherwise.


Checks if the given URL contains scope information.

## Example

```js
isURLScoped(new URL('http://localhost/scope:96253/index.php'));
// true

isURLScoped(new URL('http://localhost/index.php'));
// false
```

19 changes: 19 additions & 0 deletions docs/api/php-wasm-browser.loadphpwithprogress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [loadPHPWithProgress](./php-wasm-browser.loadphpwithprogress.md)

## loadPHPWithProgress() function
loadPHPWithProgress<!-- -->(\
&emsp;&emsp;&emsp;<!-- -->phpLoaderModule<!-- -->: [any](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any)<!-- -->, \
&emsp;&emsp;&emsp;<!-- -->dataDependenciesModules?<!-- -->: [any](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any)<!-- -->[]<!-- -->, \
&emsp;&emsp;&emsp;<!-- -->phpModuleArgs?<!-- -->: [any](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any)\
)<!-- -->: [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<!-- -->&lt;[PHP](./php-wasm.php.md)<!-- -->&gt;

* `phpLoaderModule` – The ESM-wrapped Emscripten module. Consult the Dockerfile for the build process.
* `dataDependenciesModules` – Optional. A list of the ESM-wrapped Emscripten data dependency modules.
* `phpModuleArgs` – Optional. The Emscripten module arguments, see https://emscripten.org/docs/api_reference/module.html#affecting-execution.
* Returns: PHP instance.


Call this in a Worker Thread to start load the PHP runtime and post the progress to the main thread.

46 changes: 46 additions & 0 deletions docs/api/php-wasm-browser.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md)

## php-wasm-browser package
## Classes

* [SpawnedWorkerThread](./php-wasm-browser.spawnedworkerthread.md)

## Functions

* [awaitReply](./php-wasm-browser.awaitreply.md)
* [cloneResponseMonitorProgress](./php-wasm-browser.cloneresponsemonitorprogress.md)
* [getPathQueryFragment](./php-wasm-browser.getpathqueryfragment.md)
* [getURLScope](./php-wasm-browser.geturlscope.md)
* [initializeServiceWorker](./php-wasm-browser.initializeserviceworker.md)
* [initializeWorkerThread](./php-wasm-browser.initializeworkerthread.md)
* [isURLScoped](./php-wasm-browser.isurlscoped.md)
* [loadPHPWithProgress](./php-wasm-browser.loadphpwithprogress.md)
* [postMessageExpectReply](./php-wasm-browser.postmessageexpectreply.md)
* [registerServiceWorker](./php-wasm-browser.registerserviceworker.md)
* [removeURLScope](./php-wasm-browser.removeurlscope.md)
* [responseTo](./php-wasm-browser.responseto.md)
* [seemsLikeAPHPServerPath](./php-wasm-browser.seemslikeaphpserverpath.md)
* [setURLScope](./php-wasm-browser.seturlscope.md)
* [spawnPHPWorkerThread](./php-wasm-browser.spawnphpworkerthread.md)

## Interfaces

* [DownloadProgressEvent](./php-wasm-browser.downloadprogressevent.md)
* [MessageResponse](./php-wasm-browser.messageresponse.md)
* [PostMessageTarget](./php-wasm-browser.postmessagetarget.md)
* [ServiceWorkerConfiguration](./php-wasm-browser.serviceworkerconfiguration.md)
* [WorkerThreadBackend](./php-wasm-browser.workerthreadbackend.md)
* [WorkerThreadConfig](./php-wasm-browser.workerthreadconfig.md)
* [WorkerThreadConfiguration](./php-wasm-browser.workerthreadconfiguration.md)

## Variables

* [currentBackend](./php-wasm-browser.currentbackend.md)
* [DEFAULT_BASE_URL](./php-wasm-browser.default_base_url.md)

## Type Aliases

* [DownloadProgressCallback](./php-wasm-browser.downloadprogresscallback.md)

16 changes: 16 additions & 0 deletions docs/api/php-wasm-browser.messageresponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [MessageResponse](./php-wasm-browser.messageresponse.md)

## MessageResponse interface
<b>Signature:</b>

```typescript
interface MessageResponse<T>
```
## Properties

* `requestId` [number](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean)
* `response` T
* `type` 'response'

10 changes: 10 additions & 0 deletions docs/api/php-wasm-browser.messageresponse.requestid.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [MessageResponse](./php-wasm-browser.messageresponse.md) > [requestId](./php-wasm-browser.messageresponse.requestid.md)

## MessageResponse.requestId property
<b>Signature:</b>

```typescript
requestId: number;
```
10 changes: 10 additions & 0 deletions docs/api/php-wasm-browser.messageresponse.response.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [MessageResponse](./php-wasm-browser.messageresponse.md) > [response](./php-wasm-browser.messageresponse.response.md)

## MessageResponse.response property
<b>Signature:</b>

```typescript
response: T;
```
10 changes: 10 additions & 0 deletions docs/api/php-wasm-browser.messageresponse.type.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [MessageResponse](./php-wasm-browser.messageresponse.md) > [type](./php-wasm-browser.messageresponse.type.md)

## MessageResponse.type property
<b>Signature:</b>

```typescript
type: 'response';
```
19 changes: 19 additions & 0 deletions docs/api/php-wasm-browser.postmessageexpectreply.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) > [php-wasm-browser](./php-wasm-browser.md) > [postMessageExpectReply](./php-wasm-browser.postmessageexpectreply.md)

## postMessageExpectReply() function
postMessageExpectReply<!-- -->(\
&emsp;&emsp;&emsp;<!-- -->target<!-- -->: [PostMessageTarget](./php-wasm-browser.postmessagetarget.md)<!-- -->, \
&emsp;&emsp;&emsp;<!-- -->message<!-- -->: [Record](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)<!-- -->&lt;[string](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean)<!-- -->,[any](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any)<!-- -->&gt;<!-- -->, \
&emsp;&emsp;&emsp;<!-- -->postMessageArgs<!-- -->: [any](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any)<!-- -->[]\
)<!-- -->: [number](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#the-primitives-string-number-and-boolean)

* `target` – An object that has a `postMessage` method.
* `message` – A key-value object that can be serialized to JSON.
* `postMessageArgs` – Additional arguments to pass to `postMessage`<!-- -->.
* Returns: The message ID for awaitReply().


Posts a message branded with a unique `requestId` to the given `target`<!-- -->. Then returns the `requestId` so it can be used to await a reply.

Loading