auth0-bundler
Bundle rules, scripts and hooks to deploy them to Auth0.
This allows you to
- test rules, scripts and hooks dedicated to be deployed to Auth0, as they can be required in node as well.
- import other modules by using
require
statements with relative file paths. This way common functionality can be shared between rules. - write your rules using the whole ES2015 feature set, as the rules will be transpiled at bundle time.
- pass in configuration at bundling time which can be used in your rule when it is executed.
API
createBundler
const createBundler = require('auth0-bundler');
const bundler = createBundler(options);
Options
nodeVersion
: the node version that should be targeted (used for@babel/preset-env
), the default is4
bundler.bundleScript(injectedConfig, scriptFilename) -> Promise<bundledScript>
bundler.bundleRule(injectedConfig, ruleFilename) -> Promise<bundledRule>
bundler.bundleHook(injectedConfig, hookFilename) -> Promise<bundledHook>
Bundles a single script, rule or hook so it can be deployed to Auth0. The rule needs to be written as a commonjs
module that exports a single function. This function takes an additional first parameter compared to being defined in Auth0: The injectedConfig
that can be specified at bundle time. Modules required from the node_modules
folder will not be bundled and will be required in the Auth0 environment as well. Auth0 provides a number of modules inside the Auth0 environment, to check whether a module can be required check webtaskio-canirequire.
Example:
Rule:
// my-rule.js// Example rule to be deployed to auth0 // This dependency will be automatically bundled into the ruleconst doRequest = ;// This dependency will be loaded using requireconst R = ; module { return ;};
Bundle dependencies:
const createBundler = ;const bundler = ;const config = baseUrl: 'https://www.example.com' ; bundler ;
Using auth0-bundler during deployment
This is an example on how to use auth0-bundler and the Auth0 Management API client to automatically deploy a rule using auth0-bundler. Like this you can automatically deploy rules e.g. during a CI run.
const ManagementClient = ManagementClient;const management = token: '{YOUR_API_V2_TOKEN}' domain: '{YOUR_ACCOUNT}.auth0.com';const createBundler = ;const bundler = ;const config = baseUrl: 'https://www.example.com' ; bundler;
License
This project is licensed under the MIT license. See the LICENSE file for more info.