# @cloud-technology/parameter

> Base Parameter Type-Interface via Node.js

Latest version **0.7.142** (published 2022-02-27) · BSD-2-Clause license · 0 weekly downloads

## Install

```sh
npm install @cloud-technology/parameter
pnpm add @cloud-technology/parameter
yarn add @cloud-technology/parameter
bun add @cloud-technology/parameter
```

Provides the command `parameter`.

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.7.142 |
| Published | 2022-02-27 |
| First published | 2022-01-20 |
| Weekly downloads | 0 |
| License | BSD-2-Clause |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 117 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Jacob B. Sanders |
| Maintainers | segmentational |

## Links

- npm: https://www.npmjs.com/package/@cloud-technology/parameter
- Repository: https://github.com/cloud-hybrid/parameter
- Homepage: https://github.com/cloud-hybrid/parameter#readme
- Issues: https://github.com/cloud-hybrid/parameter/issues
- npm.io page: https://npm.io/package/@cloud-technology/parameter

## Recent versions

- 0.7.142 (latest) — 2022-02-27
- 0.7.141 — 2022-02-26
- 0.7.139 — 2022-02-22
- 0.7.138 — 2022-02-22
- 0.7.137 — 2022-02-22
- 0.6.136 — 2022-02-21
- 0.6.135 — 2022-02-12
- 0.5.131 — 2022-02-03
- 0.5.129 — 2022-01-30
- 0.5.128 — 2022-01-30
- 0.5.127 — 2022-01-30
- 0.5.126 — 2022-01-30
- 0.4.125 — 2022-01-29
- 0.4.124 — 2022-01-29
- 0.4.123 — 2022-01-29
- … 99 more at https://npm.io/package/@cloud-technology/parameter/versions

## README

# `@cloud-technology/parameter` #

*A Zero-Dependency "Type-Interface" via Node.js*

While intentionally ambiguous, `parameter` extends a primitive string. Specifically,
the following utility methods are available to the `Parameter` class:

- `Parameter.format()`
- `Parameter.string()`
- `Parameter.enumerations()`
- `Parameter.instantiate()`
- `Parameter.create()`

to follow an opinionated convention
to be used in cloud-related 

Parameters often used during configuration can be a difficult concept to standardize.

`@cloud-technology/parameter` aims to strictly define a naming and constructor convention to ease efforts associated
with configuration, while allowing for an easy inheritance pattern to further extend from; examples of applicable
extensions include usages with:

- `etcd`
- Hashicorp's `vault`
- AWS Secure Systems Manager
- AWS Secrets Manager
- Microsoft Cloud Vault
- GCP Credential Management

## Table of Contents ##

- [Type-Interface](#type-interface)
- [Usage](#usage)
    - [Development](#development)
    - [Common-JS](#common-js)
    - [Modules](#modules)
- [Documentation](#documentation)

## Type-Interface ##

What is meant by "Type-Interface" is welcome to interpretation. However, the intended definition is as follows:

***A primitive data-type, with special utility functions and methods***.

## Usage ##

`@cloud-technology/parameter` uses the latest Node.js LTS version; to quickly enable, run `nvm use`.

- See [installation guide](https://github.com/nvm-sh/nvm#about) for a quick walk-through on installing `nvm`.

| Package Script | NPM Command Invocation | Description                                     |
|----------------|------------------------|-------------------------------------------------|
| **test**       | `npm test`             | Unit-Test the Distribution                      |
| **start**      | `npm start`            | Compile + Unit-Test the Distribution            |
| **watch**      | `npm run watch`        | Unit-Test Upon File-System Change(s)            |
| **build**      | `npm run build`        | Compile Distribution Upon File-System Change(s) |
| **compile**    | `npm run compile`      | Compile Distribution                            |
| **upload**     | `npm run upload`       | Deploy Package to NPM Registry                  |

### Development ###

**Recommended** - Testing Mode

Locally developing with `jest` file-watchers helps ensure non-breaking change are introduced.

1. Install Dependencies
    ```bash
    npm install --quiet
    ```
2. Build `*.ts` File(s), Enabling TSC File-Watching
    ```bash
    npm run build
    ```
3. Open an Additional TTY and Run
    ```bash
    npm run start
    ```

Lastly, continue with development.

For alternative build & unit-testing commands, please refer to the [commands list](#usage).

### Common-JS ###

```node
const Main = async () => {
    const { Parameter } = await import("@cloud-technology/parameter");

    const instance = new Parameter({
        organization: "IBM",
        environment: "Development",
        application: "Storage-Store",
        service: "Authorization-Service",
        identifier: "Credentials"
    });

    console.log(instance);

    console.log(instance.string());

    console.log(instance.string("Directory"));
    console.log(instance.string("Train-Case"));
    console.log(instance.string("Screaming-Train-Case"));
}

( async () => await Main() )();
```

### Modules ###

```node
import { Parameter } from "@cloud-technology/parameter";

const instance = new Parameter({
    organization: "IBM",
    environment: "Development",
    application: "Storage-Store",
    service: "Authorization-Service",
    identifier: "Credentials"
});

console.log(instance);
console.log(instance.string());

console.log(instance.string("Directory"));
console.log(instance.string("Train-Case"));
console.log(instance.string("Screaming-Train-Case"));
```

## Documentation ##

Please see [documentation](./documentation) for additional information and reference(s).

---
_Source: https://npm.io/package/@cloud-technology/parameter · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
