UNPKG

@lucidcms/core

Version:

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

1 lines 4.25 kB
{"version":3,"file":"media-translations.mjs","names":[],"sources":["../../../src/libs/repositories/media-translations.ts"],"sourcesContent":["import z from \"zod\";\nimport type DatabaseAdapter from \"../db/adapter-base.js\";\nimport type {\n\tInsert,\n\tKyselyDB,\n\tLucidMediaTranslations,\n\tSelect,\n} from \"../db/types.js\";\nimport StaticRepository from \"./parents/static-repository.js\";\nimport type { QueryProps } from \"./types.js\";\n\nexport default class MediaAwaitingSyncRepository extends StaticRepository<\"lucid_media_translations\"> {\n\tconstructor(db: KyselyDB, dbAdapter: DatabaseAdapter) {\n\t\tsuper(db, dbAdapter, \"lucid_media_translations\");\n\t}\n\ttableSchema = z.object({\n\t\tid: z.number(),\n\t\tmedia_id: z.number(),\n\t\tlocale_code: z.string(),\n\t\ttitle: z.string().nullable(),\n\t\talt: z.string().nullable(),\n\t\tdescription: z.string().nullable(),\n\t\tsummary: z.string().nullable(),\n\t});\n\tcolumnFormats = {\n\t\tid: this.dbAdapter.getDataType(\"primary\"),\n\t\tmedia_id: this.dbAdapter.getDataType(\"integer\"),\n\t\tlocale_code: this.dbAdapter.getDataType(\"text\"),\n\t\ttitle: this.dbAdapter.getDataType(\"text\"),\n\t\talt: this.dbAdapter.getDataType(\"text\"),\n\t\tdescription: this.dbAdapter.getDataType(\"text\"),\n\t\tsummary: this.dbAdapter.getDataType(\"text\"),\n\t};\n\tqueryConfig = undefined;\n\n\t// ------------------------------------------\n\t// queries\n\tasync upsertMultiple<\n\t\tK extends keyof Select<LucidMediaTranslations>,\n\t\tV extends boolean = false,\n\t>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\tdata: Partial<Insert<LucidMediaTranslations>>[];\n\t\t\t\treturning?: K[];\n\t\t\t\treturnAll?: true;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tconst query = this.db\n\t\t\t.insertInto(\"lucid_media_translations\")\n\t\t\t.values(\n\t\t\t\tprops.data.map((d) =>\n\t\t\t\t\tthis.formatData(d, {\n\t\t\t\t\t\ttype: \"insert\",\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.onConflict((oc) =>\n\t\t\t\toc.columns([\"media_id\", \"locale_code\"]).doUpdateSet((eb) => ({\n\t\t\t\t\ttitle: eb.ref(\"excluded.title\"),\n\t\t\t\t\talt: eb.ref(\"excluded.alt\"),\n\t\t\t\t\tdescription: eb.ref(\"excluded.description\"),\n\t\t\t\t\tsummary: eb.ref(\"excluded.summary\"),\n\t\t\t\t})),\n\t\t\t)\n\t\t\t.$if(\n\t\t\t\tprops.returnAll !== true &&\n\t\t\t\t\tprops.returning !== undefined &&\n\t\t\t\t\tprops.returning.length > 0,\n\t\t\t\t(qb) => qb.returning(props.returning as K[]),\n\t\t\t)\n\t\t\t.$if(props.returnAll ?? false, (qb) => qb.returningAll());\n\n\t\tconst exec = await this.executeQuery(\n\t\t\t() =>\n\t\t\t\tquery.execute() as Promise<Pick<Select<LucidMediaTranslations>, K>[]>,\n\t\t\t{\n\t\t\t\tmethod: \"upsertMultiple\",\n\t\t\t},\n\t\t);\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"multiple\",\n\t\t\tselect: props.returning as string[],\n\t\t\tselectAll: props.returnAll,\n\t\t});\n\t}\n}\n"],"mappings":"kEAWA,IAAqB,EAArB,cAAyD,CAA6C,CACrG,YAAY,EAAc,EAA4B,CACrD,MAAM,EAAI,EAAW,0BAA0B,CAChD,CACA,YAAc,EAAE,OAAO,CACtB,GAAI,EAAE,OAAO,EACb,SAAU,EAAE,OAAO,EACnB,YAAa,EAAE,OAAO,EACtB,MAAO,EAAE,OAAO,CAAC,CAAC,SAAS,EAC3B,IAAK,EAAE,OAAO,CAAC,CAAC,SAAS,EACzB,YAAa,EAAE,OAAO,CAAC,CAAC,SAAS,EACjC,QAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAC9B,CAAC,EACD,cAAgB,CACf,GAAI,KAAK,UAAU,YAAY,SAAS,EACxC,SAAU,KAAK,UAAU,YAAY,SAAS,EAC9C,YAAa,KAAK,UAAU,YAAY,MAAM,EAC9C,MAAO,KAAK,UAAU,YAAY,MAAM,EACxC,IAAK,KAAK,UAAU,YAAY,MAAM,EACtC,YAAa,KAAK,UAAU,YAAY,MAAM,EAC9C,QAAS,KAAK,UAAU,YAAY,MAAM,CAC3C,EACA,YAAc,IAAA,GAId,MAAM,eAIL,EAQC,CACD,IAAM,EAAQ,KAAK,GACjB,WAAW,0BAA0B,CAAC,CACtC,OACA,EAAM,KAAK,IAAK,GACf,KAAK,WAAW,EAAG,CAClB,KAAM,QACP,CAAC,CACF,CACD,CAAC,CACA,WAAY,GACZ,EAAG,QAAQ,CAAC,WAAY,aAAa,CAAC,CAAC,CAAC,YAAa,IAAQ,CAC5D,MAAO,EAAG,IAAI,gBAAgB,EAC9B,IAAK,EAAG,IAAI,cAAc,EAC1B,YAAa,EAAG,IAAI,sBAAsB,EAC1C,QAAS,EAAG,IAAI,kBAAkB,CACnC,EAAE,CACH,CAAC,CACA,IACA,EAAM,YAAc,IACnB,EAAM,YAAc,IAAA,IACpB,EAAM,UAAU,OAAS,EACzB,GAAO,EAAG,UAAU,EAAM,SAAgB,CAC5C,CAAC,CACA,IAAI,EAAM,WAAa,GAAQ,GAAO,EAAG,aAAa,CAAC,EAEnD,EAAO,MAAM,KAAK,iBAEtB,EAAM,QAAQ,EACf,CACC,OAAQ,gBACT,CACD,EAGA,OAFI,EAAK,SAAS,MAAc,EAAK,SAE9B,KAAK,iBAAiB,EAAM,CAClC,GAAG,EAAM,WACT,KAAM,WACN,OAAQ,EAAM,UACd,UAAW,EAAM,SAClB,CAAC,CACF,CACD"}