@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
1 lines • 5.02 kB
Source Map (JSON)
{"version":3,"file":"sync.mjs","names":["cliLogger"],"sources":["../../../../src/libs/cli/commands/sync.ts"],"sourcesContent":["import type { Config, EnvironmentVariables } from \"../../../types.js\";\nimport createServiceContext from \"../../../utils/services/create-service-context.js\";\nimport loadConfigFile from \"../../config/load-config-file.js\";\nimport type { DatabaseConnection } from \"../../db/types.js\";\nimport prepareTranslations from \"../../i18n/prepare-translations.js\";\nimport type { TranslationStore } from \"../../i18n/types.js\";\nimport {\n\tdestroyKVAdapter,\n\tgetInitializedKVAdapter,\n} from \"../../kv/lifecycle.js\";\nimport type { KVAdapterInstance } from \"../../kv/types.js\";\nimport {\n\tstartLoggerBuffering,\n\tstopLoggerBuffering,\n} from \"../../logger/index.js\";\nimport type { AdapterRuntimeContext } from \"../../runtime/types.js\";\nimport cliLogger from \"../logger.js\";\nimport runSyncTasks from \"../services/run-sync-tasks.js\";\nimport validateEnvVars from \"../services/validate-env-vars.js\";\n\nconst syncCommand = async (options?: {\n\tskipEnvValidation?: boolean;\n\tremote?: boolean;\n}) => {\n\tlet kvInstance: KVAdapterInstance | undefined;\n\tlet config: Config | undefined;\n\tlet env: EnvironmentVariables | undefined;\n\tlet runtimeContext: AdapterRuntimeContext | undefined;\n\tlet translationStore: TranslationStore | undefined;\n\tlet database: DatabaseConnection | undefined;\n\n\tconst cleanup = async () => {\n\t\tif (!config) return;\n\t\tawait Promise.allSettled([\n\t\t\tdatabase?.destroy(),\n\t\t\tdestroyKVAdapter(kvInstance, { config, env, runtimeContext }),\n\t\t]);\n\t\tdatabase = undefined;\n\t\tkvInstance = undefined;\n\t};\n\n\ttry {\n\t\tstartLoggerBuffering();\n\t\tconst startTime = cliLogger.startTimer();\n\n\t\tconst res = await loadConfigFile({\n\t\t\tprepareRuntime: true,\n\t\t});\n\t\tconfig = res.config;\n\t\tenv = res.env;\n\t\truntimeContext = res.runtimeContext;\n\t\ttranslationStore = (\n\t\t\tawait prepareTranslations({\n\t\t\t\tconfig,\n\t\t\t\tprojectRoot: res.projectRoot,\n\t\t\t})\n\t\t).translationStore;\n\n\t\tif (options?.skipEnvValidation !== true) {\n\t\t\tconst envValid = await validateEnvVars({\n\t\t\t\tenvSchema: res.envSchema,\n\t\t\t\tenv: res.env,\n\t\t\t});\n\n\t\t\tif (!envValid) {\n\t\t\t\tawait stopLoggerBuffering();\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t}\n\n\t\tkvInstance = await getInitializedKVAdapter(config, {\n\t\t\tenv,\n\t\t\truntimeContext,\n\t\t});\n\t\tdatabase = await config.db.connect(env);\n\n\t\tconst syncResult = await runSyncTasks({\n\t\t\tconfig,\n\t\t\tdatabase,\n\t\t\ttranslationStore,\n\t\t\tkv: kvInstance,\n\t\t\tenv,\n\t\t\truntimeContext,\n\t\t});\n\t\tif (!syncResult) {\n\t\t\tawait cleanup();\n\t\t\tawait stopLoggerBuffering();\n\t\t\tprocess.exit(1);\n\t\t}\n\n\t\tcliLogger.info(\"Clearing KV cache...\");\n\t\tawait kvInstance.clear(\n\t\t\tcreateServiceContext({\n\t\t\t\tconfig,\n\t\t\t\tdatabase,\n\t\t\t\ttranslationStore,\n\t\t\t\tenv,\n\t\t\t\truntimeContext,\n\t\t\t\tkv: kvInstance,\n\t\t\t}),\n\t\t);\n\t\tawait cleanup();\n\n\t\tconst endTime = startTime();\n\t\tcliLogger.log(\n\t\t\tcliLogger.createBadge(\"LUCID CMS\"),\n\t\t\t\"Sync completed\",\n\t\t\tcliLogger.color.green(\"successfully\"),\n\t\t\t\"in\",\n\t\t\tcliLogger.color.green(cliLogger.formatMilliseconds(endTime)),\n\t\t\t{\n\t\t\t\tspaceAfter: true,\n\t\t\t\tspaceBefore: true,\n\t\t\t},\n\t\t);\n\n\t\tawait stopLoggerBuffering();\n\t\tprocess.exit(0);\n\t} catch (error) {\n\t\tawait cleanup();\n\t\tif (error instanceof Error) {\n\t\t\tcliLogger.errorInstance(error, \"Sync failed\");\n\t\t} else {\n\t\t\tcliLogger.error(\"Sync failed\", \"Unknown error\");\n\t\t}\n\t\tawait stopLoggerBuffering();\n\t\tprocess.exit(1);\n\t}\n};\n\nexport default syncCommand;\n"],"mappings":"gdAoBA,MAAM,EAAc,KAAO,IAGrB,CACL,IAAI,EACA,EACA,EACA,EACA,EACA,EAEE,EAAU,SAAY,CACtB,IACL,MAAM,QAAQ,WAAW,CACxB,GAAU,QAAQ,EAClB,EAAiB,EAAY,CAAE,SAAQ,MAAK,gBAAe,CAAC,CAC7D,CAAC,EACD,EAAW,IAAA,GACX,EAAa,IAAA,GACd,EAEA,GAAI,CACH,EAAqB,EACrB,IAAM,EAAYA,EAAU,WAAW,EAEjC,EAAM,MAAM,EAAe,CAChC,eAAgB,EACjB,CAAC,EACD,EAAS,EAAI,OACb,EAAM,EAAI,IACV,EAAiB,EAAI,eACrB,GACC,MAAM,EAAoB,CACzB,SACA,YAAa,EAAI,WAClB,CAAC,EAAA,CACA,iBAEE,GAAS,oBAAsB,KAM7B,MALkB,EAAgB,CACtC,UAAW,EAAI,UACf,IAAK,EAAI,GACV,CAAC,IAGA,MAAM,EAAoB,EAC1B,QAAQ,KAAK,CAAC,IAIhB,EAAa,MAAM,EAAwB,EAAQ,CAClD,MACA,gBACD,CAAC,EACD,EAAW,MAAM,EAAO,GAAG,QAAQ,CAAG,EAUjC,MARoB,EAAa,CACrC,SACA,WACA,mBACA,GAAI,EACJ,MACA,gBACD,CAAC,IAEA,MAAM,EAAQ,EACd,MAAM,EAAoB,EAC1B,QAAQ,KAAK,CAAC,GAGf,EAAU,KAAK,sBAAsB,EACrC,MAAM,EAAW,MAChB,EAAqB,CACpB,SACA,WACA,mBACA,MACA,iBACA,GAAI,CACL,CAAC,CACF,EACA,MAAM,EAAQ,EAEd,IAAM,EAAU,EAAU,EAC1B,EAAU,IACTA,EAAU,YAAY,WAAW,EACjC,iBACAA,EAAU,MAAM,MAAM,cAAc,EACpC,KACAA,EAAU,MAAM,MAAMA,EAAU,mBAAmB,CAAO,CAAC,EAC3D,CACC,WAAY,GACZ,YAAa,EACd,CACD,EAEA,MAAM,EAAoB,EAC1B,QAAQ,KAAK,CAAC,CACf,OAAS,EAAO,CACf,MAAM,EAAQ,EACV,aAAiB,MACpB,EAAU,cAAc,EAAO,aAAa,EAE5C,EAAU,MAAM,cAAe,eAAe,EAE/C,MAAM,EAAoB,EAC1B,QAAQ,KAAK,CAAC,CACf,CACD"}