
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
A Node.js module that provides registry handling of installable components.
Can be used for integrating modules, components, extensions, plug-ins and pretty much anything that requires registration with a main registry.
$ npm install modreg
$ npm run compile
Compile examples
Note: Examples will be compiled under examples/compiled directory.
$ npm run compile-examples
$ npm run jslint
Lint examples
$ npm run jslint-examples
The below example shows how modreg can be used to register a component.
import modreg from 'modreg'
// Create a manager object (component registry)
var manager = modreg(options)
// Install a component into the manager registry.
manager.install(fnMyComponent)
// The function that makes registration requests to the registry.
function fnMyComponent(register) {
// Use the `register` function to make requests to the registry for
// adding component names.
return register('my-component-name')
.then((reg) => {
// `my-component-name` is available and successfully added
// to the registry.
// Define an object to serve as the value for `my-component-name`
// component
let component = {};
// Commit the value.
reg.commit(component);
})
// If the registration fails, output it to console
.catch((error) => console.log('Failed to register:', error))
}
For more elaborate implementations, see examples directory
modreg worksmodreg was built to provide a base interface for creating registries and
handling component registration.
installs modulesregister a
component name.commit a value that represents the component reference, or cancel
the request.modreg(options)Creates a new Manager object.
options is an object with the following properties:
map - A Map object that handles the storage of key-value pairs. Although
it is not required to be a Map instance, it must provide the following
methods: has(key), set(key,value), get(key) and delete(key).By default, unless map option is provided, each Manager created uses a Map
instance to handle key-value pairs.
Manager.install(fn)Installs function fn into the current manager.
The fn function will receive a register function argument,
that can be used to register keys.
View example in examples/demo-service/manager.js
var manager = modreg()
manager.install(function(register) {
register(key)
})
The register function can be used any number of times to register multiple
keys, and will return a Promise for each call.
The returned Promise will:
reject if the key cannot be registered (e.g.: the
key has already been registered)resolve with a registration
object argument, if the key has been successfully registered.See examples/demo-service/services/service-example-one.js or examples/demo-service/services/service-example-two.js for examples
Registration objectregistration.commit(value) - Associates value with the key that was
registered and for which the registration object was received.
registration.cancel(error) - Explicitly cancel a register request.
Note:
By default, unless commit() is called after a successful key registration,
the request is canceled and the key is deleted once the execution of the
block ends.
In order to signal the install sequence to wait for a commit, ensure that
the execution block returns a Promise that solves after the call to
commit; The result of the promise (resolve, or reject) is discarded.
FAQs
A Node.js module that provides registry handling of installable components.
We found that modreg demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.