1.1.2 โ€ข Published 5 months ago

@odg/config v1.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

codecov Stargazers Made by ODGodinho Forks Repository size GitHub last commit License StyleCI

Table of Contents


๐ŸŽ‡ 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 AutoReview Comment example
  • ๐Ÿงช Automatic Test when opening pull-request/merge
  • ๐Ÿ“ˆ Automatic Code Coverage when opening pull-request/merge Code Coverage example
  • ๐Ÿ“ฆ 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 and yarn start again

yarn build && yarn test

๐Ÿงช Test Code

To Test execute this command

yarn test
# or
yarn test:watch
1.1.2

5 months ago

1.1.1

7 months ago

1.1.0

8 months ago

1.0.0

8 months ago