MiddlewareUnit

libflitter/middleware/MiddlewareUnit~ MiddlewareUnit

Unit to load and manage middleware class definitions.


Constructor

new MiddlewareUnit(base_directoryopt, globals_fileopt)

Instantiate the unit.

Parameters:
Name Type Attributes Default Description
base_directory string <optional>
'./app/routing/middleware'
globals_file string <optional>
'./app/routing/Middleware.js'

Extends

Members

(static) name

Get the name of the service provided by this unit: 'middlewares'

(static) services

Defines the services required by this unit.

(private) _di_allow_defer :boolean

If true, the injector will defer the class if the class requests any services that the container is missing. These services are filled in later and added to the prototype and any instances. True by default.

Type:
  • boolean

(private) _di_deferred_instances :Array.<module:flitter-di/src/Injectable~Injectable>

Collection of instances of this class that need to have the deferred service instances injected into them when the deferred services are finally provided.

(private) _di_deferred_services :Array.<string>

List of services that were deferred and not provided at the time of injection.

Type:
  • Array.<string>

canonical_item :string

The canonical name of the item.

Type:
  • string

canonical_items :object

Mapping of canonical names to instances for this item.

Type:
  • object

directory :Promise.<void>|Promise.<string>

The root directory for this canonical resource's files.

Type:
  • Promise.<void> | Promise.<string>

globals_file :Promise.<void>|Promise.<string>

Fully-qualified path to the file with the definitions for globally-applied middleware.

Type:
  • Promise.<void> | Promise.<string>

suffix :string

The file extension of the canonical item files.

Type:
  • string

Methods

(async) cleanup(app) → {Promise.<void>}

Cleans up the unit's resources before Flitter closes.

Parameters:
Name Type Description
app module:libflitter/app/FlitterApp~FlitterApp

the Flitter app

Returns:
Type
Promise.<void>

directories() → {Object}

Get the directories provided by this unit. module:libflitter/middleware/MiddlewareUnit~MiddlewareUnit#directory as "middleware".

Returns:
Type
Object

get(name, args) → {function}

A helper function to return the Express middleware function for a registered middleware, using its Flitter canonical name.

Parameters:
Name Type Description
name string

the Flitter canonical name of the middleware whose handler should be returned

args *

An argument or arguments to be passed to the middleware function as the 4th argument.

Returns:
  • the Express middleware
Type
function

(async) go(app) → {Promise.<void>}

Initializes the unit. Registers global middleware.

Parameters:
Name Type Description
app module:libflitter/app/FlitterApp~FlitterApp

the Flitter app

Returns:
Type
Promise.<void>

(async) init_canonical_file(info) → {Promise.<*>}

Prepare a single canonical middleware definition and return the value that should be given by the resolver.

Parameters:
Name Type Description
info object
Properties
Name Type Description
app module:libflitter/app/FlitterApp
name string

the unqualified canonical name

instance *

the static middleware CLASS from the file

Returns:
Type
Promise.<*>

migrations() → {string}

Get the fully-qualified path to the migrations provided by this unit.

Returns:
Type
string

name() → {String}

Get the name of the unit. Should be a lowercase, alphanum/dash/underscore string.

Returns:
Type
String

status(setopt) → {string}

Get or set the unit's current status.

Parameters:
Name Type Attributes Description
set string <optional>

if provided, set the status of the unit

Returns:
  • current status of the unit
Type
string

templates() → {Object}

Get the templates provided by this unit. Currently, "middleware" template, using the generator module:libflitter/templates/middleware.

Returns:
Type
Object