op-js
op-js copied to clipboard
Make project class-based
Summary
Currently op-js
uses a singleton approach, where every family of commands is exported. This is nice and handy for quick importing, but we've had requests to make the project class-based so you can have multiple instances going at the same time.
Use cases
There are handful of benefits:
- Requiring different versions of the CLI
- Supplying a specific path to the op binary
- Supporting Service Account and Connect environment variables
Proposed solution
Convert all the exported command functions/objects into methods on an OPJS
class that can be instantiated with options:
new OPJS({
binaryPath: string;
requiredVersion: string | SemVer;
...etc
});
Is there a workaround to accomplish this today?
All of this is technically possible with our current setup, but it's a little messy and obviously only supports a single instance of the library.