UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 2.45 kB
{"version":3,"file":"check-tenants.mjs","names":[],"sources":["../../../../src/libs/config/checks/check-tenants.ts"],"sourcesContent":["import type { Config } from \"../../../types.js\";\nimport { translate } from \"../../i18n/index.js\";\n\nconst checkTenantKeyReferences = (\n\tvalidTenantKeys: Set<string>,\n\tkeys?: string[],\n) => {\n\tif (keys === undefined) return;\n\n\tconst unknownTenant = keys.find((key) => !validTenantKeys.has(key));\n\tif (unknownTenant !== undefined) {\n\t\tthrow new Error(\n\t\t\ttranslate(\"server:core.tenants.unknown\", {\n\t\t\t\tdata: { key: unknownTenant },\n\t\t\t}),\n\t\t);\n\t}\n};\n\nconst checkTenants = (config: Config) => {\n\tconst tenantKeys = config.tenants.map((t) => t.key);\n\tconst duplicate = tenantKeys.find(\n\t\t(key, index) => tenantKeys.indexOf(key) !== index,\n\t);\n\tif (duplicate !== undefined) {\n\t\tthrow new Error(\n\t\t\ttranslate(\"server:core.config.duplicate.tenant\", {\n\t\t\t\tdata: { key: duplicate },\n\t\t\t}),\n\t\t);\n\t}\n\n\tconst defaultTenants = config.tenants.filter((tenant) => tenant.default);\n\tif (defaultTenants.length > 1) {\n\t\tthrow new Error(\n\t\t\ttranslate(\"server:core.config.duplicate.default.tenant\", {\n\t\t\t\tdata: { keys: defaultTenants.map((tenant) => tenant.key).join(\", \") },\n\t\t\t}),\n\t\t);\n\t}\n\n\tconst validTenantKeys = new Set(tenantKeys);\n\tfor (const collection of config.collections) {\n\t\tcheckTenantKeyReferences(validTenantKeys, collection.getData.tenants);\n\n\t\tfor (const brick of collection.brickInstances) {\n\t\t\tcheckTenantKeyReferences(validTenantKeys, brick.config.tenants);\n\t\t}\n\t}\n};\n\nexport default checkTenants;\n"],"mappings":"qDAGA,MAAM,GACL,EACA,IACI,CACJ,GAAI,IAAS,IAAA,GAAW,OAExB,IAAM,EAAgB,EAAK,KAAM,GAAQ,CAAC,EAAgB,IAAI,CAAG,CAAC,EAClE,GAAI,IAAkB,IAAA,GACrB,MAAU,MACT,EAAU,8BAA+B,CACxC,KAAM,CAAE,IAAK,CAAc,CAC5B,CAAC,CACF,CAEF,EAEM,EAAgB,GAAmB,CACxC,IAAM,EAAa,EAAO,QAAQ,IAAK,GAAM,EAAE,GAAG,EAC5C,EAAY,EAAW,MAC3B,EAAK,IAAU,EAAW,QAAQ,CAAG,IAAM,CAC7C,EACA,GAAI,IAAc,IAAA,GACjB,MAAU,MACT,EAAU,sCAAuC,CAChD,KAAM,CAAE,IAAK,CAAU,CACxB,CAAC,CACF,EAGD,IAAM,EAAiB,EAAO,QAAQ,OAAQ,GAAW,EAAO,OAAO,EACvE,GAAI,EAAe,OAAS,EAC3B,MAAU,MACT,EAAU,8CAA+C,CACxD,KAAM,CAAE,KAAM,EAAe,IAAK,GAAW,EAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAE,CACrE,CAAC,CACF,EAGD,IAAM,EAAkB,IAAI,IAAI,CAAU,EAC1C,IAAK,IAAM,KAAc,EAAO,YAAa,CAC5C,EAAyB,EAAiB,EAAW,QAAQ,OAAO,EAEpE,IAAK,IAAM,KAAS,EAAW,eAC9B,EAAyB,EAAiB,EAAM,OAAO,OAAO,CAEhE,CACD"}