Skip to content

digitalbazaar/bedrock-package-manager

Repository files navigation

bedrock-package-manager

Usage

A package should register itself using a Bedrock event handler.

bedrock.events.on('bedrock.init', () => {
  brPackageManager.register({
    alias: 'mockPackage',
    meta: {
      optional: 'meta values',
    },
    packageName: '@bedrock/package-manager-mock-package',
    type: 'bedrock-mock-plugin',
  });
});

Use a registered package in an API.

exports.getReports = async ({query = {}, storageApi}) => {
  // storageApi === 'mockPackage' would match the registration shown above
  const pkg = brPackageManager.get({
    alias: storageApi, type: 'bedrock-mock-plugin'
  });
  const storage = await import(pkg.packageName);
  return storage.find(query);
};

API Reference

Modules

bedrock-package-manager

Typedefs

PackageInfo : Object

Package information.

bedrock-package-manager

bedrock-package-manager.get(options) ⇒ PackageInfo

Get package information. One of alias or packageName is required.

Kind: static method of bedrock-package-manager Returns: PackageInfo - The package information. Throws:

  • BedrockError Will throw a NotFoundError if the package is not found.
Param Type Description
options Object The options to use.
options.type string The package type.
[options.alias] string The package alias.
[options.packageName] string The package name.

bedrock-package-manager.findType(options) ⇒ Array.<PackageInfo>

Find packages by type.

Kind: static method of bedrock-package-manager Returns: Array.<PackageInfo> - The package information.

Param Type Description
options Object The options to use.
options.type string The package type to find.

bedrock-package-manager.register(options) ⇒ undefined

Register a package.

Kind: static method of bedrock-package-manager Throws:

  • BedrockError Will throw a DuplicateError if the package is already registered.
Param Type Default Description
options Object The options to use.
options.packageName string The NPM package name.
options.type string The package type.
[options.meta] Object {} Domain specific meta data.
[options.alias] string The package alias. A short name for the package (e.g. 'mongodb', 'redis').

PackageInfo : Object

Package information.

Kind: global typedef Properties

Name Type Description
alias string The package alias. A short name for the package (e.g. 'mongodb', 'redis').
packageName string The NPM package name.
type string The package type.
meta Object Domain specific meta data.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •