import {readFileSync} from "node:fs";
import {envs} from "./envs/index.js";
import loggerConfig from "./logger/index.js";{{#if mongoose}}
import mongooseConfig from "./mongoose/index.js";
{{/if}}{{#if oidc}}
import oidcConfig from "./oidc/index.js";
import {FileSyncAdapter} from "@tsed/adapters";
{{/if}}

const pkg = JSON.parse(readFileSync("./package.json", {encoding: "utf8"}));

export const config: Partial<TsED.Configuration> = {
  version: pkg.version,
  envs,
  ajv: {
    returnsCoercedValues: true
  },
  logger: loggerConfig,
  {{#if mongoose}}
  mongoose: mongooseConfig,
  {{/if}}
  {{#if graphql}}
  graphql: {
    default: {
      path: "/graphql",
      buildSchemaOptions: {
      }
    }
  },
  {{/if}}
  {{#if oidc}}
  oidc: oidcConfig,
  adapters: [
    FileSyncAdapter
  ]
  {{/if}}
  // additional shared configuration
};
