
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
fh-wfm-mediator
Advanced tools
An implementation of the mediator pattern for use with WFM
An implementation of the mediator pattern for use with RainCatcher modules.
Method | Description |
---|---|
mediator#publish( channel, [data] ) | Publish data to a channel |
mediator#subscribe( channel, callback ) | Subscribe to events in a channel |
mediator#remove( channel, [identifier] ) | Unsubscribe to events in a channel |
mediator#once( channel, callback ) | A one-time subscribtion to events in a channel |
mediator#promise( channel ) | A promise-based API for mediator#once |
Topics
utilitiesThis module also provides a fluent, promise-based API for subscribing to convention and adhering to the request-response pattern used throughout the RainCatcher modules and available through mediator#request
.
Namely if a data:read
topic that is used to provide a feature such as reading data from a remote source asyncronously, the result of the operation is by convention published in the done:data:read
topic, and if it results in an error, it is published to the error:data:read
topic.
This utility module helps with enforcing the same namespace for a set of related topics without repeating string literals or constants, and adhering to the convention above. It is available under lib/topics
with jsdoc comments.
var mediator = require('fh-wfm-mediator');
var Topics = require('fh-wfm-mediator/lib/topics');
var topics = new Topics(mediator)
.prefix('wfm')
.entity('user')
// This will subscribe to wfm:user:read
// and publish results to done:wfm:user:read:{id}
// and errors to error:wfm:user:read:{id}
.on('read', function(id) {
// will request to 'data:user:read'
return this.mediator.request(['data', this.entity, 'read'].join(':'), id);
})
// If you do not return a Promise from the handler function,
// you must manually publish the result to another topic so it can be consumed
.on('delete', function(id) {
var self = this;
this.mediator.request(this.entity + ':delete', id).then(function() {
self.mediator.publish('done:ui:user:deleted:' + id);
}).catch(function(e) {
self.mediator.publish('error:ui:user:deleted:' + id, e);
});
});
Besides the above operations, the current operations are available :
Method | Description |
---|---|
mediator#subscribeForScope( channel, scope, callback ) | Subscribe to events in a channel and unsubscribe when the scope is destroyed |
This module is packaged in a CommonJS format, exporting the name of the Angular namespace. The module can be included in an angular.js as follows:
angular.module('app', [
, require('fh-wfm-mediator')
...
])
Inject the mediator
service to broadcast and subscribe to events
.controller('MyController', function (mediator) {
...
}
Require the module to get an instance of the mediator. Be sure to use that same instance throughout the application to maintain a single list of subscribers.
mediator = require('fh-wfm-mediator/lib/mediator')
FAQs
An implementation of the mediator pattern for use with WFM
The npm package fh-wfm-mediator receives a total of 4 weekly downloads. As such, fh-wfm-mediator popularity was classified as not popular.
We found that fh-wfm-mediator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers 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
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.