@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
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
.
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.
- Install Dependencies
npm install --quiet
- Build
*.ts
File(s), Enabling TSC File-Watching
npm run build
- Open an Additional TTY and Run
npm run start
Lastly, continue with development.
For alternative build & unit-testing commands, please refer to the commands list.
Common-JS
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
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 for additional information and reference(s).