Skip to content
GitHub

Getting Started

  1. Install the dependencies

    pnpm add @layerfig/config
  2. Define your files

    • Directoryapp
      • Directoryconfig
        • base.json
      • Directorysrc
        • Directoryconfig
          • index.ts
          • schema.ts
    import { ConfigBuilder, FileSource } from "@layerfig/config";
    
    export const config = new ConfigBuilder({
      validate: (finalConfig, z) =>
        z.object({
            appURL: z.url(),
            port: z.coerce.number().check(z.int(), z.positive()),
          })
          .parse(finalConfig),
    })
      .addSource(new FileSource("base.json"))
      .build();
    
  3. Use your type-safe config

    Now, you can access the configuration anywhere in your server-side code:

    import { config } from "./config";
    
    config.appURL; // string => "https://live.my-app.company"
    config.port; // number => 3000