Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/apache/cordova-serve

Apache Cordova Serve Library
https://github.com/apache/cordova-serve

cordova hacktoberfest javascript mobile nodejs

Last synced: 1 day ago
JSON representation

Apache Cordova Serve Library

Awesome Lists containing this project

README

        

# cordova-serve

[![NPM](https://nodei.co/npm/cordova-serve.png)](https://nodei.co/npm/cordova-serve/)

[![Node CI](https://github.com/apache/cordova-serve/workflows/Node%20CI/badge.svg?branch=master)](https://github.com/apache/cordova-serve/actions?query=branch%3Amaster)

This module provides a JavaScript API to serve up a Cordova application in the browser.

**API Example:**

```js
const cordovaServe = require('cordova-serve')();

cordovaServe.launchServer(options);
cordovaServe.servePlatform(platform, options);
cordovaServe.launchBrowser(options);
```

## API Methods

### `launchServer()`

Launches a local HTTP server.

**Code Example:**

```js
const cordovaServe = require('cordova-serve')();

cordovaServe.launchServer(options).then(function () {
const { server, port, root } = cordovaServe;
...
}, error => {
console.log(`An error occurred: ${error}`);
});
```

**Parameters:**

* **options**: described below in the following section "**launchServer & servePlatform Options**".

**Return:**

Returns a resolved or rejected promise depending on if the server had launched successfully.

On a fulfilled promise, the following properties are available on the returned object:

Property | Description
-|-
`serve` | The Node `http.Server` instance.
`root` | The `root` that was specified, or `cwd` if none specified.
`port` | The port that was used. (Either the requested port, the default port of `8000`, or the incremented value of the chosen port when the chosen port is already in use).

## `servePlatform()`

Launches a server that serves up any Cordova platform (e.g. `browser`, `android`, etc) from the current project.

**Code Example:**

```js
const cordovaServe = require('cordova-serve')();

cordovaServe.servePlatform(platform, options).then(() => {
const { server, port, projectRoot, root } = cordovaServe;
...
}, error => {
console.log(`An error occurred: ${error}`);
});
```

**Parameters:**

* **options**: described below in the following section "**launchServer & servePlatform Options**".

**Return:**

Note that for `servePlatform()`, the `root` value should be a Cordova project's root folder or any folder within it. `servePlatform()` will replace it with the platform's `www_dir` folder. If this value is not specified, the *cwd* will be used.

Returns a resolved or rejected promise depending on if the server had launched successfully.

On a fulfilled promise, the following properties are available on the returned object:

Property | Description
-|-
`serve` | The Node `http.Server` instance.
`root` | The requested platform's `www` folder.
`projectRoot` | The root folder of the Cordova project.
`port` | The used port. requested port, the default port `8000`, or incremented value of the chosen port when already in use).

### `launchBrowser()`

Launches a browser window pointing to the specified URL.

**Code Example:**

```js
const cordovaServe = require('cordova-serve')();

cordovaServe.launchBrowser(options).then(
stdout => {
console.log(`Browser was launched successfully: ${stdout}`);
},
error => {
console.log(`An error occurred: ${error}`);
}
);
```

**Parameters:**

* **options** (optional):

Options | Description
-|-
`url` | The URL to open in the browser.
`target` | The browser identifier to launch. **Valid identifier**: `chrome`, `chromium`, `firefox`, `ie`, `opera`, `safari`. (**Default:** `chrome`.)

**Return:**

Returns a resolved or rejected promise depending on if the browser had launched successfully.

## launchServer & servePlatform Options

The `options` object passed to `launchServer()` and `servePlatform()` supports the following values (all optional):

Options | Description
-|-
`root` | The file path on the local file system that is used as the root for the server, for default mapping of URL path to the local file system path.
`port` | The port for the server. Note that if this port is already in use, it will be incremented until a free port is found.
`router` | An `ExpressJS` router. If provided, this will be attached *before* default static handling.
`noLogOutput` | If true, all log output will be turned off.
`noServerInfo` | If `true`, the `Static file server running on...` message will not be outputed.
`events` | An `EventEmitter` to use for logging. If provided, logging will be output using `events.emit('log', msg)`. If not provided, `console.log()` will be used. Note that nothing will be output in either case if `noLogOutput` is `true`.