Skip to content

Make project class-based #76

@jodyheavener

Description

@jodyheavener

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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions