
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
abstractfactory
Advanced tools
Copyright (c) 2017 David Betz
See test/provider.js unit test for usage.
Basically an implementation of an abstract factory pattern.
In one system where I use this, I create factories for eachs type of thing in my system. So, SearchFactory, CloudStorageFactory, QueueFactory, AristotleFactory, etc... These would implement for ID interface like ICloudStorageProvider (in Node, it's just a class).
Each of these would have their own switch/case (or whatever) to create the factory for it. So, for example, I may have config in a YAML file specifying that I want to use Mongo for my Aristotle provider ("Aristotle" is what most people incorrectly call "NoSQL").
To begin, create the factory (do this one for the entirety of your system):
const abstractFactory = new AbstractFactory()
Then, add your factories:
abstractFactory.set(SearchFactory)
abstractFactory.set(CloudStorageFactory)
abstractFactory.set(QueueFactory)
abstractFactory.set(AristotleFactory)
When the time comes, just ask for your provider:
provider = abstractFactory.resolve(IAristotleProvider)
Your code SHOULD. NOT. CARE. ABOUT. MONGO. It should the your configuration or something handle that. Don't tightly couple your providers.
Also note that the resolver also accepts various arguments for extra flexibility:
provider = abstractFactory.resolve(IAristotleProvider, "alternateConnectionString", { "collection": "log" })
Despite what random bloggers say, service locators are awesome and provide excellent decoupling.
Look at the Mock examples provided with the tests; they're rather extensive.
FAQs
Copyright (c) 2017 David Betz
The npm package abstractfactory receives a total of 2 weekly downloads. As such, abstractfactory popularity was classified as not popular.
We found that abstractfactory 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
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.