{"version":3,"file":"index-node18.mjs","sources":["../src/index.ts"],"sourcesContent":["import type { ApplicationInCreation } from 'alp-types';\n// eslint-disable-next-line node/no-extraneous-import\nimport type { Context } from 'koa';\nimport { defineLazyProperty } from 'object-properties';\n\ndeclare module 'alp-types' {\n  // eslint-disable-next-line @typescript-eslint/no-empty-interface\n  interface BaseContext {}\n  // eslint-disable-next-line @typescript-eslint/no-shadow\n  interface Context {\n    readonly firstAcceptedLanguage: string;\n    readonly language: string;\n  }\n}\n\nexport default function alpLanguage(app: ApplicationInCreation): void {\n  const config = app.context.config;\n  const availableLanguages: string[] = config.get('availableLanguages');\n  if (!availableLanguages) {\n    throw new Error('Missing config \"availableLanguages\"');\n  }\n\n  defineLazyProperty(app.context, 'language', function (this: Context): string {\n    return this.acceptsLanguages(availableLanguages) || availableLanguages[0];\n  });\n\n  defineLazyProperty(\n    app.context,\n    'firstAcceptedLanguage',\n    function (this: Context): string {\n      return this.acceptsLanguages()[0] || availableLanguages[0];\n    },\n  );\n}\n"],"names":["alpLanguage","app","config","context","availableLanguages","get","Error","defineLazyProperty","acceptsLanguages"],"mappings":";;AACA;;AAce,SAASA,WAAWA,CAACC,GAA0B,EAAQ;AACpE,EAAA,MAAMC,MAAM,GAAGD,GAAG,CAACE,OAAO,CAACD,MAAM,CAAA;AACjC,EAAA,MAAME,kBAA4B,GAAGF,MAAM,CAACG,GAAG,CAAC,oBAAoB,CAAC,CAAA;EACrE,IAAI,CAACD,kBAAkB,EAAE;AACvB,IAAA,MAAM,IAAIE,KAAK,CAAC,qCAAqC,CAAC,CAAA;AACxD,GAAA;AAEAC,EAAAA,kBAAkB,CAACN,GAAG,CAACE,OAAO,EAAE,UAAU,EAAE,YAAiC;IAC3E,OAAO,IAAI,CAACK,gBAAgB,CAACJ,kBAAkB,CAAC,IAAIA,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAC3E,GAAC,CAAC,CAAA;AAEFG,EAAAA,kBAAkB,CAChBN,GAAG,CAACE,OAAO,EACX,uBAAuB,EACvB,YAAiC;AAC/B,IAAA,OAAO,IAAI,CAACK,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAIJ,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAC5D,GACF,CAAC,CAAA;AACH;;;;"}