@giancarl021/cli-core-vault-extension
Version:
Plain and secure storage extension for the @giancarl021/cli-core npm package
81 lines (61 loc) • 2.09 kB
Markdown
# cli-core-vault-extension
Plain and secure storage extension for the /cli-core npm package
## Installation
npm:
```bash
npm install /cli-core-vault-extension
```
Yarn:
```bash
yarn add /cli-core-vault-extension
```
## Usage
To use this extension, you first need the [`/cli-core` npm package](https://www.npmjs.com/package/@giancarl021/cli-core) installed.
### Applying the extension
To apply the extension to your cli-core runner, first import the module:
```javascript
const cliCore = require('@giancarl021/cli-core');
const CliCoreVaultExtension = require('@giancarl021/cli-core-vault-extension');
const runner = cliCore(appName, {
extensions: [ CliCoreVaultExtension(options /* optional */) ],
...options
});
```
This will make the extension methods available on each command bound to this runner.
The extension have optional options with the following shape:
```javascript
const options = {
baseData: {} // The initial state of the stored data
dataPath: 'data/extensions/vault/data.json' // The path to the data file, relative paths will be resolved from the project root
};
```
### Using the methods on commands
The extension allows you to use the following methods on each command:
```javascript
const myCommand = function (args, flags) {
// Get a stored value
const myValue = this.extensions.vault.getData('myKey');
// Set a stored value
this.extensions.vault.setData('myKey', 'myValue');
// Remove a stored value
this.extensions.vault.removeData('myKey');
// Get a secret
const mySecret = this.extensions.vault.getSecret('myKey');
// Set a secret
this.extensions.vault.setSecret('myKey', 'myValue');
// Remove a secret
this.extensions.vault.removeSecret('myKey');
}
```
## Tests
If you want to test the library, you can run the tests by running the following commands on the root of the project:
npm:
```bash
npm install
npm test
```
Yarn:
```bash
yarn
yarn test
```