actionhero
Version:
actionhero.js is a multi-transport API Server with integrated cluster capabilities and delayed tasks
694 lines (691 loc) • 33.8 kB
HTML
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>actionhero</title>
<meta name="description" content="Documentation for actionhero">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="assets/js/search.json" data-base=".">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="index.html" class="title">actionhero</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
<input type="checkbox" id="tsd-filter-only-exported" />
<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="globals.html">Globals</a>
</li>
</ul>
<h1>actionhero</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<div class="tsd-panel tsd-typography">
<a href="#actionhero" id="actionhero" style="color: inherit; text-decoration: none;">
<h1>Actionhero</h1>
</a>
<p><em>The reusable, scalable, and quick node.js API server for stateless and stateful applications</em></p>
<hr>
<div align="center">
<img src="https://raw.github.com/actionhero/actionhero/master/public/logo/actionhero-small.png" alt="Actionhero Logo" />
</div>
<br />
<div align="center" class="topLinks">
<p><strong><a href="https://npmjs.org/package/actionhero">NPM</a> |
<a href="https://www.actionherojs.com">Web Site</a> |
<a href="https://docs.actionherojs.com">Latest Docs</a> |
<a href="https://github.com/actionhero/actionhero">GitHub</a> |
<a href="https://slack.actionherojs.com">Slack</a> |
<a href="https://twitter.com/actionherojs">Twitter</a></strong></p>
</div>
<br />
<div align="center" class="topBadges">
<p><a href="https://www.npmjs.com/package/actionhero"><img src="https://img.shields.io/npm/v/actionhero.svg?style=flat-square" alt="NPM Version"></a>
<a href="https://npmjs.org/package/actionhero"><img src="https://img.shields.io/node/v/actionhero.svg?style=flat-square" alt="Node Version"></a>
<a href="https://npmjs.org/package/actionhero"><img src="https://img.shields.io/npm/dm/actionhero.svg?style=flat-square" alt="NPM"></a>
<a href="https://david-dm.org/actionhero/actionhero"><img src="https://david-dm.org/actionhero/actionhero.svg?style=flat-square" alt="Dependency Status"></a></p>
<p><img src="https://github.com/actionhero/actionhero/workflows/Test/badge.svg" alt="Test">
<a href="https://github.com/l0oky/awesome-actionhero"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome"></a>
<a href="https://app.releasly.co/sites/actionhero/actionhero?utm_source=github_badge"><img src="https://app.releasly.co/assets/badges/badge-green-classic.svg" alt="Follow new releases"></a>
<a href="http://slack.actionherojs.com"><img src="https://slack.actionherojs.com/badge.svg" alt="Chat"></a></p>
</div>
<a href="#who-is-the-actionhero" id="who-is-the-actionhero" style="color: inherit; text-decoration: none;">
<h2>Who is the Actionhero?</h2>
</a>
<p>Actionhero is a multi-transport API Server with integrated cluster capabilities and delayed tasks. The goal of actionhero is to create an easy-to-use toolkit for making <strong>reusable</strong> & <strong>scalable</strong> APIs for HTTP, WebSockets, and more. Clients connected to an actionhero server can <a href="https://www.actionherojs.com/tutorials/actions"><strong>consume the api</strong></a>, <a href="https://www.actionherojs.com/tutorials/file-server"><strong>consume static content</strong></a>, and <a href="https://www.actionherojs.com/tutorials/chat"><strong>communicate with each other</strong></a>. Actionhero is cluster-ready, with built in support for background tasks, 0-downtime deploys, and more. Actionhero provides a simple Async/Await API for managing every type of connection and background task.</p>
<p>Currently actionhero supports the following out of the box...</p>
<ul>
<li><a href="https://www.actionherojs.com/tutorials/web-server">Web Clients</a>: HTTP, HTTPS</li>
<li><a href="https://www.actionherojs.com/tutorials/websocket-server">Web Socket Clients</a>: HTTP, HTTPS</li>
</ul>
<p><a href="https://www.actionherojs.com/tutorials/servers">... and you can also make your own servers and transports.</a></p>
<a href="#quick-start" id="quick-start" style="color: inherit; text-decoration: none;">
<h2>Quick Start</h2>
</a>
<pre><code class="language-bash"><span class="hljs-comment"># Generate a new Project</span>
npx actionhero generate
npm install
npm run build <span class="hljs-comment"># <--- new! I compile the TS to JS</span>
npm run dev <span class="hljs-comment"># <--- new! I use `ts-node` to let you develop on your ts files without compiling</span>
<span class="hljs-comment"># Use the actionhero CLI</span>
(npx) actionhero generate action --name my_action
(npx) actionhero generate task --name my_task --queue default --frequency 0
<span class="hljs-comment"># Test</span>
npm <span class="hljs-built_in">test</span>
<span class="hljs-comment"># I'll run `prettier` and `build` for you first</span>
<span class="hljs-comment"># I handle .ts files now!</span>
<span class="hljs-comment"># To deploy your app</span>
npm run build <span class="hljs-comment"># <--- new! I compile the TS to JS</span>
npm run start</code></pre>
<p>Your new project will come with example actions, tests, and more.</p>
<p>Or deploy a free API server now:</p>
<p><a href="https://heroku.com/deploy?template=https://github.com/actionhero/actionhero"><img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy to Heroku"></a></p>
<a href="#learn-more-📚" id="learn-more-📚" style="color: inherit; text-decoration: none;">
<h2>Learn More 📚</h2>
</a>
<ul>
<li><a href="https://www.actionherojs.com/get-started">Getting Started @ www.actionherojs.com</a><ul>
<li>Actionhero's website can be found @ <a href="https://github.com/actionhero/www.actionherojs.com/">https://github.com/actionhero/www.actionherojs.com/</a>. If you want to contribute to this site, visit the <a href="https://github.com/actionhero/www.actionherojs.com">related project</a></li>
</ul>
</li>
<li><a href="http://docs.actionherojs.com/">Read the typedoc documentation @ docs.actionherojs.com</a><ul>
<li>---> Start with the <a href="https://www.actionherojs.com/tutorials">Tutorials</a> <---</li>
<li>Starting with Actionhero version 18, the documentation for each version is included in this repository (and the NPM package) in the <code>/docs</code> folder. The current version of this documentation is also automatically deployed to <a href="https://docs.actionherojs.com">https://docs.actionherojs.com</a>.</li>
</ul>
</li>
<li><a href="https://github.com/l0oky/awesome-actionhero">Find community-based resources</a></li>
<li><a href="https://www.actionherojs.com/community">Interact with the Community & View the Release History</a></li>
<li><a href="https://github.com/actionhero/actionhero-client">Server Client</a></li>
</ul>
<a href="#in-depth-tutorials-🎓" id="in-depth-tutorials-🎓" style="color: inherit; text-decoration: none;">
<h2>In-depth Tutorials 🎓</h2>
</a>
<a href="#core-components" id="core-components" style="color: inherit; text-decoration: none;">
<h3>Core Components</h3>
</a>
<ul>
<li><a href="https://www.actionherojs.com/tutorials/actions">Actions</a></li>
<li><a href="https://www.actionherojs.com/tutorials/tasks">Tasks</a></li>
<li><a href="https://www.actionherojs.com/tutorials/middleware">Middleware</a></li>
<li><a href="https://www.actionherojs.com/tutorials/initializers">Initializers</a></li>
<li><a href="https://www.actionherojs.com/tutorials/cli">CLI Commands</a></li>
<li><a href="https://www.actionherojs.com/tutorials/config">Configuration</a></li>
<li><a href="https://www.actionherojs.com/tutorials/cluster">Cluster</a></li>
<li><a href="https://www.actionherojs.com/tutorials/chat">Chat & Realtime Communication</a></li>
<li><a href="https://www.actionherojs.com/tutorials/file-server">File Server</a></li>
<li><a href="https://www.actionherojs.com/tutorials/logging">Logging</a></li>
<li><a href="https://www.actionherojs.com/tutorials/plugins">Plugins</a></li>
<li><a href="https://www.actionherojs.com/tutorials/servers">Servers</a></li>
<li><a href="https://www.actionherojs.com/tutorials/localization">Localization & Translation</a></li>
</ul>
<a href="#server-types" id="server-types" style="color: inherit; text-decoration: none;">
<h3>Server Types</h3>
</a>
<ul>
<li><a href="https://www.actionherojs.com/tutorials/web-server">Web Server & Routes</a></li>
<li><a href="https://www.actionherojs.com/tutorials/websocket-server">WebSocket Server</a></li>
</ul>
<a href="#testing-deployment-and-operations" id="testing-deployment-and-operations" style="color: inherit; text-decoration: none;">
<h3>Testing, Deployment, and Operations</h3>
</a>
<ul>
<li><a href="https://www.actionherojs.com/tutorials/running-actionhero">Running Actionhero</a></li>
<li><a href="https://www.actionherojs.com/tutorials#configuration">Development Mode & REPL</a></li>
<li><a href="https://www.actionherojs.com/tutorials/testing">Testing & SpecHelper</a></li>
<li><a href="https://www.actionherojs.com/tutorials/production-notes">Production Notes</a></li>
<li><a href="https://www.actionherojs.com/tutorials/upgrade-path">Upgrade Path</a></li>
</ul>
<a href="#sample-projects" id="sample-projects" style="color: inherit; text-decoration: none;">
<h2>Sample Projects</h2>
</a>
<ul>
<li><a href="https://github.com/actionhero/actionhero-tutorial">Simple</a></li>
<li><a href="https://github.com/actionhero/actionhero-angular-bootstrap-cors-csrf">Elaborate (Angular, Sequelize)</a></li>
<li><a href="https://github.com/actionhero/actionhero-react-next-chat">Client Use: React</a></li>
<li><a href="https://github.com/actionhero/actionhero-react-native">Client Use: React Native</a></li>
</ul>
<a href="#who" id="who" style="color: inherit; text-decoration: none;">
<h2>Who?</h2>
</a>
<ul>
<li>Many folks <a href="https://github.com/actionhero/actionhero/graphs/contributors">have helped</a> to make Actionhero a reality.</li>
<li>If you want to contribute to actionhero, contribute to the conversation on <a href="https://github.com/actionhero/actionhero">github</a> and join us on <a href="https://slack.actionherojs.com">slack</a></li>
</ul>
<a href="#contributing" id="contributing" style="color: inherit; text-decoration: none;">
<h2>Contributing</h2>
</a>
<ul>
<li>Contributing to Actionhero is easy! <a href="https://github.com/actionhero/actionhero/blob/master/.github/CONTRIBUTING.md">You can learn more about contributing to Actionhero here</a></li>
</ul>
<a href="#license" id="license" style="color: inherit; text-decoration: none;">
<h2>License</h2>
</a>
<p><a href="https://github.com/actionhero/actionhero/blob/master/LICENSE.txt">Apache 2.0</a></p>
</div>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="globals.html"><em>Globals</em></a>
</li>
<li class=" tsd-kind-namespace">
<a href="modules/action.html">action</a>
</li>
<li class=" tsd-kind-namespace">
<a href="modules/cache.html">cache</a>
</li>
<li class=" tsd-kind-namespace">
<a href="modules/chatroom.html">chat<wbr>Room</a>
</li>
<li class=" tsd-kind-namespace">
<a href="modules/i18n.html">i18n</a>
</li>
<li class=" tsd-kind-namespace">
<a href="modules/redis.html">redis</a>
</li>
<li class=" tsd-kind-namespace">
<a href="modules/route.html">route</a>
</li>
<li class=" tsd-kind-namespace">
<a href="modules/spechelper.html">spec<wbr>Helper</a>
</li>
<li class=" tsd-kind-namespace">
<a href="modules/task.html">task</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
<li class=" tsd-kind-class">
<a href="classes/action.html" class="tsd-kind-icon">Action</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/actionprocessor.html" class="tsd-kind-icon">Action<wbr>Processor</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/actions.html" class="tsd-kind-icon">Actions</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/actionslist.html" class="tsd-kind-icon">Actions<wbr>List</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/api.html" class="tsd-kind-icon">Api</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/cli.html" class="tsd-kind-icon">CLI</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/cachetest.html" class="tsd-kind-icon">Cache<wbr>Test</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/chatroom.html" class="tsd-kind-icon">Chat<wbr>Room</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/connection.html" class="tsd-kind-icon">Connection</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/connections.html" class="tsd-kind-icon">Connections</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/console.html" class="tsd-kind-icon">Console</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/createchatroom.html" class="tsd-kind-icon">Create<wbr>Chat<wbr>Room</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/documentation.html" class="tsd-kind-icon">Documentation</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/exceptions.html" class="tsd-kind-icon">Exceptions</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/generate.html" class="tsd-kind-icon">Generate</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/generateaction.html" class="tsd-kind-icon">Generate<wbr>Action</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/generatecli.html" class="tsd-kind-icon">GenerateCLI</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/generateinitializer.html" class="tsd-kind-icon">Generate<wbr>Initializer</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/generateplugin.html" class="tsd-kind-icon">Generate<wbr>Plugin</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/generateserver.html" class="tsd-kind-icon">Generate<wbr>Server</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/generatetask.html" class="tsd-kind-icon">Generate<wbr>Task</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/help.html" class="tsd-kind-icon">Help</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/initializer.html" class="tsd-kind-icon">Initializer</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/params.html" class="tsd-kind-icon">Params</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/polyfill.html" class="tsd-kind-icon">Polyfill</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/process.html" class="tsd-kind-icon">Process</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/randomnumber.html" class="tsd-kind-icon">Random<wbr>Number</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/redis.html" class="tsd-kind-icon">Redis</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/resque.html" class="tsd-kind-icon">Resque</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/routes.html" class="tsd-kind-icon">Routes</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/runaction.html" class="tsd-kind-icon">Run<wbr>Action</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/server.html" class="tsd-kind-icon">Server</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/servers.html" class="tsd-kind-icon">Servers</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/showdocumentation.html" class="tsd-kind-icon">Show<wbr>Documentation</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/sleeptest.html" class="tsd-kind-icon">Sleep<wbr>Test</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/spechelper.html" class="tsd-kind-icon">Spec<wbr>Helper</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/staticfile.html" class="tsd-kind-icon">Static<wbr>File</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/task.html" class="tsd-kind-icon">Task</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/taskenqueue.html" class="tsd-kind-icon">Task<wbr>Enqueue</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/tasks.html" class="tsd-kind-icon">Tasks</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/validationtest.html" class="tsd-kind-icon">Validation<wbr>Test</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/version.html" class="tsd-kind-icon">Version</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/webserver.html" class="tsd-kind-icon">Web<wbr>Server</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/websocketserver.html" class="tsd-kind-icon">Web<wbr>Socket<wbr>Server</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/actionsapi.html" class="tsd-kind-icon">Actions<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/chatroomapi.html" class="tsd-kind-icon">Chat<wbr>Room<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/configinterface.html" class="tsd-kind-icon">Config<wbr>Interface</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/connectionmiddleware.html" class="tsd-kind-icon">Connection<wbr>Middleware</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/connectionparams.html" class="tsd-kind-icon">Connection<wbr>Params</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/connectionsapi.html" class="tsd-kind-icon">Connections<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/documentationapi.html" class="tsd-kind-icon">Documentation<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/exceptionhandlerapi.html" class="tsd-kind-icon">Exception<wbr>HandlerAPI</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/initializers.html" class="tsd-kind-icon">Initializers</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/input.html" class="tsd-kind-icon">Input</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/inputs.html" class="tsd-kind-icon">Inputs</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/paramsapi.html" class="tsd-kind-icon">Params<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/redisapi.html" class="tsd-kind-icon">Redis<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/resqueapi.html" class="tsd-kind-icon">Resque<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/routesapi.html" class="tsd-kind-icon">Routes<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/runner.html" class="tsd-kind-icon">Runner</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/runnerinputs.html" class="tsd-kind-icon">Runner<wbr>Inputs</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/serverconfig.html" class="tsd-kind-icon">Server<wbr>Config</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/serversapi.html" class="tsd-kind-icon">Servers<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/spechelperapi.html" class="tsd-kind-icon">Spec<wbr>Helper<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/staticfileapi.html" class="tsd-kind-icon">Static<wbr>File<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/taskapi.html" class="tsd-kind-icon">Task<wbr>Api</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/taskdata.html" class="tsd-kind-icon">Task<wbr>Data</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#packagejson" class="tsd-kind-icon">PackageJSON</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#actionheroversion" class="tsd-kind-icon">actionhero<wbr>Version</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#api" class="tsd-kind-icon">api</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#config" class="tsd-kind-icon">config</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#configpaths" class="tsd-kind-icon">config<wbr>Paths</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#db" class="tsd-kind-icon">db</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#env" class="tsd-kind-icon">env</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#host" class="tsd-kind-icon">host</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#id" class="tsd-kind-icon">id</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#loggers" class="tsd-kind-icon">loggers</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#maxbackoff" class="tsd-kind-icon">max<wbr>Backoff</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#maxeventloopdelay" class="tsd-kind-icon">max<wbr>Event<wbr>Loop<wbr>Delay</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#maxmemoryalloted" class="tsd-kind-icon">max<wbr>Memory<wbr>Alloted</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#maxresquequeuelength" class="tsd-kind-icon">max<wbr>Resque<wbr>Queue<wbr>Length</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#options" class="tsd-kind-icon">options</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#os" class="tsd-kind-icon">os</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#packagejson" class="tsd-kind-icon">packageJSON</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#packagejson" class="tsd-kind-icon">package<wbr>Json</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#password" class="tsd-kind-icon">password</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#path" class="tsd-kind-icon">path</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#pid" class="tsd-kind-icon">pid</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#port" class="tsd-kind-icon">port</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#projectroot" class="tsd-kind-icon">project<wbr>Root</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#taskmodule" class="tsd-kind-icon">task<wbr>Module</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#title" class="tsd-kind-icon">title</a>
</li>
<li class=" tsd-kind-variable">
<a href="globals.html#typescript" class="tsd-kind-icon">typescript</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#arraystartingmatch" class="tsd-kind-icon">array<wbr>Starting<wbr>Match</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#arrayunique" class="tsd-kind-icon">array<wbr>Unique</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#asyncreadlink" class="tsd-kind-icon">async<wbr>Read<wbr>Link</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#asyncstats" class="tsd-kind-icon">async<wbr>Stats</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#asyncwaterfall" class="tsd-kind-icon">async<wbr>Waterfall</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#buildconfig" class="tsd-kind-icon">build<wbr>Config</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#buildconsolelogger" class="tsd-kind-icon">build<wbr>Console<wbr>Logger</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#buildfilelogger" class="tsd-kind-icon">build<wbr>File<wbr>Logger</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#clearpidfile" class="tsd-kind-icon">clear<wbr>Pid<wbr>File</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#collapseobjecttoarray" class="tsd-kind-icon">collapse<wbr>Object<wbr>ToArray</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#createdirsafely" class="tsd-kind-icon">create<wbr>Dir<wbr>Safely</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#createfilesafely" class="tsd-kind-icon">create<wbr>File<wbr>Safely</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#createlinkfilesafely" class="tsd-kind-icon">create<wbr>Linkfile<wbr>Safely</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#createsymlinksafely" class="tsd-kind-icon">create<wbr>Symlink<wbr>Safely</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#determineid" class="tsd-kind-icon">determine<wbr>Id</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#determinenodeenv" class="tsd-kind-icon">determine<wbr>Node<wbr>Env</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#determineprojectroot" class="tsd-kind-icon">determine<wbr>Project<wbr>Root</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#direxists" class="tsd-kind-icon">dir<wbr>Exists</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#ensurenotsheaderfiles" class="tsd-kind-icon">ensure<wbr>NoTs<wbr>Header<wbr>Files</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#eventloopdelay" class="tsd-kind-icon">event<wbr>Loop<wbr>Delay</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#fileexists" class="tsd-kind-icon">file<wbr>Exists</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#filterobjectforlogging" class="tsd-kind-icon">filter<wbr>Object<wbr>For<wbr>Logging</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#getexternalipaddress" class="tsd-kind-icon">get<wbr>ExternalIPAddress</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#hashmerge" class="tsd-kind-icon">hash<wbr>Merge</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#isplainobject" class="tsd-kind-icon">is<wbr>Plain<wbr>Object</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#istypescript" class="tsd-kind-icon">is<wbr>Typescript</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#log" class="tsd-kind-icon">log</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#main" class="tsd-kind-icon">main</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#parsecookies" class="tsd-kind-icon">parse<wbr>Cookies</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#parseheadersforclientaddress" class="tsd-kind-icon">parse<wbr>Headers<wbr>For<wbr>Client<wbr>Address</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#parseipv6uri" class="tsd-kind-icon">parseIPv6URI</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#removelinkfilesafely" class="tsd-kind-icon">remove<wbr>Linkfile<wbr>Safely</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#replacedistwithsrc" class="tsd-kind-icon">replace<wbr>Dist<wbr>With<wbr>Src</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#sanitizeid" class="tsd-kind-icon">sanitize<wbr>Id</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#sleep" class="tsd-kind-icon">sleep</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#sortglobalmiddleware" class="tsd-kind-icon">sort<wbr>Global<wbr>Middleware</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#sortnumber" class="tsd-kind-icon">sort<wbr>Number</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#sourcerelativelinkpath" class="tsd-kind-icon">source<wbr>Relative<wbr>Link<wbr>Path</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#stringifyextramessagepropertiesforconsole" class="tsd-kind-icon">stringify<wbr>Extra<wbr>Message<wbr>Properties<wbr>For<wbr>Console</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#writepidfile" class="tsd-kind-icon">write<wbr>Pid<wbr>File</a>
</li>
<li class=" tsd-kind-object-literal">
<a href="globals.html#default" class="tsd-kind-icon">DEFAULT</a>
</li>
<li class=" tsd-kind-object-literal">
<a href="globals.html#production" class="tsd-kind-icon">production</a>
</li>
<li class=" tsd-kind-object-literal">
<a href="globals.html#test" class="tsd-kind-icon">test</a>
</li>
<li class=" tsd-kind-object-literal">
<a href="globals.html#utils" class="tsd-kind-icon">utils</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="assets/js/main.js"></script>
<script>if (location.protocol == 'file:') document.write('<script src="assets/js/search.js"><' + '/script>');</script>
</body>
</html>