@webtask/middleware-compiler v1.5.2
Middleware compiler
The middleware compiler provides a mechanism to run any number of middleware prior to invoking a webtask.
Webtask middleware are disigned in a connect-compatible way that should allow many express middleware to just work.
Usage:
Set the
wt-node-dependenciesmetadata property to the stringified JSON of an object having a@webtask/middleware-compilerproperty whose value is the latest version of this module.{"@webtask/middleware-compiler":"1.1.0"}Set the
wt-compilermetadata property on your webtask to@webtask/middleware-compiler.Optionally, set the
wt-middlewaremetadata property to a comma-separated list of middleware references. Middleware references can be any combination of:module_name- The name of an npm module, in which case the module's default export is used. This would be equivalent torequire('module_name').module_name/name_of_export_function- The name of an npm module with the name of the desired export. This wouldbe equivalent torequire('module_name').name_of_export_function.http(s)://url.of/a/file/exporting/a/middleware.js- A publicly accessible url from which the middleware's code will be downloaded and evaluated. The code must export a suitable middleware factory function as the default export.
Optionally, set the
wt-debugmetadata property to a comma-separated list of debug references that containswt-middleware. This will result in additional debug information being sent to real-time logs.
How it works
A middleware is a Function exported by a node module that returns another Function having the signature function(req, res, next), where:
reqis the instance ofhttp.IncomingRequestfor the current request. It has areq.webtaskContextproperty:req.webtaskContextis a typical webtask context object that is augmented with acompilerproperty. Thecompilerobject is exposed so that a middleware can be implemented that supports custom programming models. Thecompilerproperty is an object that hasnodejsCompilerandscriptproperties where:nodejsCompileris the node.js compiler function provided to webtask compilersscriptis the underling webtask's code
resis the instance ofhttp.ServerResponsefor the current requestnextis a function with the signaturefunction next(error). A middleware function may be designed to complete the response, in which case it can omit callingnext. A middleware may also implement authentication logic, such as the authentication middleware. In this case, the middleware might invokenextwith anError. If the error has astatusCodeproperty, this will be used as the response status code. Otherwise, to allow control to go to the next middleware, or to the default middleware (which compiles and invokes the webtask code), the middleware can callnext()with no arguments.
Example middleware
Authentication