1.1.2 โข Published 5 months ago
@odg/config v1.1.2
Table of Contents
- ๐ Benefits
- ๐ Dependencies
- โฉ Get Started
- ๐ป Prepare to develop
- ๐ Start Project
- ๐จ Build and Run
- ๐งช Test Code
๐ Benefits
- ๐ Speed start new project or package using typescript
- ๐จ Over 800 rules for pattern, possible errors and errors in Linter
- ๐ Code quality guaranteed
- ๐ข AutoReview when opening a pull-request/merge
- ๐งช Automatic Test when opening pull-request/merge
- ๐ Automatic Code Coverage when opening pull-request/merge
- ๐ฆ Automatic Package and release generate on merge
- ๐ช Run Lint/Test command pre-commit execute
- โ๏ธ IOT/IOC (Inversion of Control) for easy use of libraries
๐ Dependencies
โฉ Get Started
๐ Example Usage
Create new instance config class
// Example transform config with zod
const zBoolean = zod.union([
zod.string().transform((value): boolean => value === "true" || value === "1"),
zod.boolean(),
]);
const myValidator = zod.object({
USE_HTTPS: zBoolean,
OPTIONAL: zod.string().optional(),
});
// Container Instance Configuration
const config = new JsonConfig<zod.infer<typeof myValidator>>({ ...process.env }, validator);
await config.init();
๐งฒ Get Configs
const config: ConfigInterface;
// Get Configs
const useHttps = await config.get("USE_HTTPS");
const optional = await config.get("OPTIONAL", () => "default value");
// Has Config
if (await config.has("OPTIONAL")) {
// Config key exists
}
// set Config
await config
.set("OPTIONAL", "filled")
.set("USE_HTTPS", false);
// All Configs
const all = config.all(); // Return Json with configs
// Prepare class to use
const all = config.init();
๐ Send Configs to class
For packages and SDK, always prefer to send an object instead of the entire config class
new PackageClass({
timeout: await config.get("DEFAULT_TIMEOUT", () => 1000),
attempt: await config.get("ATTEMPT"),
})
๐ป Prepare To Develop
Copy .env.example
to .env
and add the values according to your needs.
๐ Start Project
First install dependencies with the following command
yarn install
# or
npm install
๐จ Build and Run
To build the project, you can use the following command
if you change files, you need to run
yarn build
andyarn start
again
yarn build && yarn test
๐งช Test Code
To Test execute this command
yarn test
# or
yarn test:watch