UNPKG

@lucidcms/core

Version:

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

1 lines 3.23 kB
{"version":3,"file":"feature-support-checks.mjs","names":[],"sources":["../../../../src/libs/http/utils/feature-support-checks.ts"],"sourcesContent":["import logger from \"../../logger/index.js\";\nimport type { AdapterKeys, RuntimeSupport } from \"../../runtime/types.js\";\n\nconst featureSupportChecks = (\n\tadapterKeys: AdapterKeys,\n\truntimeSupport: RuntimeSupport | undefined,\n) => {\n\tconst issues: Array<{\n\t\ttype: string;\n\t\tkey: string;\n\t\tlevel: \"unsupported\" | \"notice\";\n\t\tmessage?: string;\n\t}> = [];\n\n\tconst checkAdapter = (\n\t\ttype: string,\n\t\tkey: string | null,\n\t\tadapterType:\n\t\t\t| \"databaseAdapter\"\n\t\t\t| \"queueAdapter\"\n\t\t\t| \"kvAdapter\"\n\t\t\t| \"mediaAdapter\"\n\t\t\t| \"emailAdapter\",\n\t) => {\n\t\tif (!key) return;\n\n\t\tconst unsupportedList = runtimeSupport?.unsupported?.[adapterType] || [];\n\t\tconst unsupported = unsupportedList.find((item) => item.key === key);\n\n\t\tif (unsupported) {\n\t\t\tissues.push({\n\t\t\t\ttype,\n\t\t\t\tkey,\n\t\t\t\tlevel: \"unsupported\",\n\t\t\t\tmessage: unsupported.message,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst noticesList = runtimeSupport?.notices?.[adapterType] || [];\n\t\tconst notice = noticesList.find((item) => item.key === key);\n\n\t\tif (notice) {\n\t\t\tissues.push({\n\t\t\t\ttype,\n\t\t\t\tkey,\n\t\t\t\tlevel: \"notice\",\n\t\t\t\tmessage: notice.message,\n\t\t\t});\n\t\t}\n\t};\n\n\tcheckAdapter(\"Database\", adapterKeys.database, \"databaseAdapter\");\n\tcheckAdapter(\"Queue\", adapterKeys.queue, \"queueAdapter\");\n\tcheckAdapter(\"KV\", adapterKeys.kv, \"kvAdapter\");\n\tcheckAdapter(\"Media\", adapterKeys.media, \"mediaAdapter\");\n\tcheckAdapter(\"Email\", adapterKeys.email, \"emailAdapter\");\n\n\t// log issues based on severity\n\tfor (const issue of issues) {\n\t\tconst message =\n\t\t\tissue.message || `${issue.key} is not supported on this runtime`;\n\n\t\tif (issue.level === \"unsupported\") {\n\t\t\tlogger.error({\n\t\t\t\tmessage: `[${issue.type}] ${message}`,\n\t\t\t});\n\t\t} else {\n\t\t\tlogger.warn({\n\t\t\t\tmessage: `[${issue.type}] ${message}`,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn {\n\t\thasErrors: issues.some((i) => i.level === \"unsupported\"),\n\t\thasWarnings: issues.some((i) => i.level === \"notice\"),\n\t\tissues,\n\t};\n};\n\nexport default featureSupportChecks;\n"],"mappings":"sCAGA,MAAM,GACL,EACA,IACI,CACJ,IAAM,EAKD,CAAC,EAEA,GACL,EACA,EACA,IAMI,CACJ,GAAI,CAAC,EAAK,OAGV,IAAM,GADkB,GAAgB,cAAc,IAAgB,CAAC,EAAA,CACnC,KAAM,GAAS,EAAK,MAAQ,CAAG,EAEnE,GAAI,EAAa,CAChB,EAAO,KAAK,CACX,OACA,MACA,MAAO,cACP,QAAS,EAAY,OACtB,CAAC,EACD,MACD,CAGA,IAAM,GADc,GAAgB,UAAU,IAAgB,CAAC,EAAA,CACpC,KAAM,GAAS,EAAK,MAAQ,CAAG,EAEtD,GACH,EAAO,KAAK,CACX,OACA,MACA,MAAO,SACP,QAAS,EAAO,OACjB,CAAC,CAEH,EAEA,EAAa,WAAY,EAAY,SAAU,iBAAiB,EAChE,EAAa,QAAS,EAAY,MAAO,cAAc,EACvD,EAAa,KAAM,EAAY,GAAI,WAAW,EAC9C,EAAa,QAAS,EAAY,MAAO,cAAc,EACvD,EAAa,QAAS,EAAY,MAAO,cAAc,EAGvD,IAAK,IAAM,KAAS,EAAQ,CAC3B,IAAM,EACL,EAAM,SAAW,GAAG,EAAM,IAAI,mCAE3B,EAAM,QAAU,cACnB,EAAO,MAAM,CACZ,QAAS,IAAI,EAAM,KAAK,IAAI,GAC7B,CAAC,EAED,EAAO,KAAK,CACX,QAAS,IAAI,EAAM,KAAK,IAAI,GAC7B,CAAC,CAEH,CAEA,MAAO,CACN,UAAW,EAAO,KAAM,GAAM,EAAE,QAAU,aAAa,EACvD,YAAa,EAAO,KAAM,GAAM,EAAE,QAAU,QAAQ,EACpD,QACD,CACD"}