@sqrzro/server 4.0.0-alpha.32 → 4.0.0-alpha.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -63,7 +63,10 @@ declare function createRepository<TConfig extends RepositoryConfig<TIndexes, any
63
63
  getFromParams: (params?: Promise<Record<string, string>> | Record<string, string> | null) => Promise<UnwrapModel<TConfig> | null>;
64
64
  getIDFromParams: (params?: Promise<Record<string, string>> | Record<string, string> | null) => Promise<UnwrapID<TConfig> | null>;
65
65
  getPaginated: (fnConfig?: PaginatedFunctionConfig<UnwrapFilters<TConfig>, UnwrapGuards<TConfig>>) => Promise<Paginated<UnwrapModel<TConfig>>>;
66
- guardID: (id: (string | null | undefined)[] | string | null | undefined) => UnwrapID<TConfig> | UnwrapID<TConfig>[] | null;
66
+ guardID: {
67
+ (id: (string | null | undefined)[]): UnwrapID<TConfig>[];
68
+ (id: string | null | undefined): UnwrapID<TConfig> | null;
69
+ };
67
70
  undelete: (id: UnwrapID<TConfig>) => Promise<void>;
68
71
  update: (data: UnwrapUpdate<TConfig>["data"]) => Promise<UnwrapUpdate<TConfig>["model"]>;
69
72
  };
@@ -1,2 +1,2 @@
1
- import {a,b,c}from'../chunk-BA3BC4CD.js';import {eq}from'drizzle-orm';import {notFound}from'next/navigation';import {cache}from'react';async function B(r,d,u){let l=await c(r,d,u);return b(l,d)}var P=B;function o(r,d){for(let u of d)if(r[u]===void 0||r[u]===null)throw new Error(`Repository config is missing required field: "${String(u)}"`);return r}function G(r){function d(n){let{prefix:e}=o(r,["prefix"]);return Array.isArray(n)?a(n,e):a(n,e)}function u(n){let{prefix:e}=o(r,["prefix"]);return b(n,e)}async function l(n){let{paramKey:e,prefix:t}=o(r,["paramKey","prefix"]);return c(e,t,n)}async function w(n){let{paramKey:e,prefix:t}=o(r,["paramKey","prefix"]);try{return await P(e,t,n)}catch{notFound();}}async function D(n){let{makeQuery:e}=o(r,["makeQuery"]),t=[],i=await r.applyFilters?.(n?.filters??null);t.push(...i||[]);let a=await r.applyGuards?.(n?.guards??null);return t.push(...a||[]),e(t,{limit:n?.limit??-1,offset:n?.offset??0})}async function F(n){let{makeCountQuery:e,makeQuery:t}=o(r,["makeCountQuery","makeQuery"]),i=[],a=await r.applyFilters?.(n?.filters??null);i.push(...a||[]);let g=await r.applyGuards?.(n?.guards??null);i.push(...g||[]);let f=await e(i);return {data:await t(i,{limit:n?.limit??10,offset:((n?.page??1)-1)*(n?.limit??10)}),meta:{limit:n?.limit??10,page:n?.page??1,total:f}}}async function c$1(n,e,t){let{makeQuery:i}=o(r,["makeQuery"]);if(!r.indexes?.[n])throw new Error(`'Could not \`getByIndex\`. Index ${String(n)} is not defined in the repository configuration.`);let a=[],g=await r.applyFilters?.(t?.filters??null);a.push(...g||[]);let f=await r.applyGuards?.(t?.guards??null);a.push(...f||[]),a.push(eq(r.indexes[n],e));let[U]=await i(a,{limit:1,offset:0});return U??null}async function T(...n){let e=await c$1(...n);return e||notFound()}async function C(n){return c$1("id",n)}async function I(n){return T("id",n)}async function h(n){let e=await l(n);return e?C(e):null}async function k(n){let e=await w(n);return I(e)}async function R(n){let{makeInsertMutation:e}=o(r,["makeInsertMutation"]);return e(n)}async function K(n){let{makeUpdateMutation:e}=o(r,["makeUpdateMutation"]);return e(n)}async function M(n){let{makeDeleteMutation:e}=o(r,["makeDeleteMutation"]);return e(n)}async function Q(n){let{makeUndeleteMutation:e}=o(r,["makeUndeleteMutation"]);return e(n)}return {create:R,delete:M,ensureByID:cache(I),ensureByIndex:cache(T),ensureFromParams:cache(k),ensureID:u,ensureIDFromParams:w,getAll:cache(D),getByID:cache(C),getByIndex:cache(c$1),getFromParams:cache(h),getIDFromParams:l,getPaginated:cache(F),guardID:d,undelete:Q,update:K}}var S=G;export{S as createRepository};//# sourceMappingURL=index.js.map
1
+ import {a,b,c}from'../chunk-BA3BC4CD.js';import {eq}from'drizzle-orm';import {notFound}from'next/navigation';import {cache}from'react';async function B(r,d,u){let l=await c(r,d,u);return b(l,d)}var P=B;function i(r,d){for(let u of d)if(r[u]===void 0||r[u]===null)throw new Error(`Repository config is missing required field: "${String(u)}"`);return r}function G(r){function d(n){let{prefix:e}=i(r,["prefix"]);return Array.isArray(n)?a(n,e):a(n,e)}function u(n){let{prefix:e}=i(r,["prefix"]);return b(n,e)}async function l(n){let{paramKey:e,prefix:t}=i(r,["paramKey","prefix"]);return c(e,t,n)}async function w(n){let{paramKey:e,prefix:t}=i(r,["paramKey","prefix"]);try{return await P(e,t,n)}catch{notFound();}}async function x(n){let{makeQuery:e}=i(r,["makeQuery"]),t=[],o=await r.applyFilters?.(n?.filters??null);t.push(...o||[]);let a=await r.applyGuards?.(n?.guards??null);return t.push(...a||[]),e(t,{limit:n?.limit??-1,offset:n?.offset??0})}async function F(n){let{makeCountQuery:e,makeQuery:t}=i(r,["makeCountQuery","makeQuery"]),o=[],a=await r.applyFilters?.(n?.filters??null);o.push(...a||[]);let g=await r.applyGuards?.(n?.guards??null);o.push(...g||[]);let f=await e(o);return {data:await t(o,{limit:n?.limit??10,offset:((n?.page??1)-1)*(n?.limit??10)}),meta:{limit:n?.limit??10,page:n?.page??1,total:f}}}async function c$1(n,e,t){let{makeQuery:o}=i(r,["makeQuery"]);if(!r.indexes?.[n])throw new Error(`'Could not \`getByIndex\`. Index ${String(n)} is not defined in the repository configuration.`);let a=[],g=await r.applyFilters?.(t?.filters??null);a.push(...g||[]);let f=await r.applyGuards?.(t?.guards??null);a.push(...f||[]),a.push(eq(r.indexes[n],e));let[U]=await o(a,{limit:1,offset:0});return U??null}async function T(...n){let e=await c$1(...n);return e||notFound()}async function C(n){return c$1("id",n)}async function I(n){return T("id",n)}async function h(n){let e=await l(n);return e?C(e):null}async function k(n){let e=await w(n);return I(e)}async function R(n){let{makeInsertMutation:e}=i(r,["makeInsertMutation"]);return e(n)}async function K(n){let{makeUpdateMutation:e}=i(r,["makeUpdateMutation"]);return e(n)}async function M(n){let{makeDeleteMutation:e}=i(r,["makeDeleteMutation"]);return e(n)}async function Q(n){let{makeUndeleteMutation:e}=i(r,["makeUndeleteMutation"]);return e(n)}return {create:R,delete:M,ensureByID:cache(I),ensureByIndex:cache(T),ensureFromParams:cache(k),ensureID:u,ensureIDFromParams:w,getAll:cache(x),getByID:cache(C),getByIndex:cache(c$1),getFromParams:cache(h),getIDFromParams:l,getPaginated:cache(F),guardID:d,undelete:Q,update:K}}var S=G;export{S as createRepository};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utility/ensure-id-from-params.ts","../../src/database/create-repository.ts"],"names":["ensureIDFromParams","key","prefix","params","id","get_id_from_params_default","ensure_id_default","ensure_id_from_params_default","ensureConfig","config","keys","createRepository","guardID","guard_id_default","ensureID","getIDFromParams","paramKey","notFound","uncached_getAll","fnConfig","makeQuery","conditions","filters","guards","uncached_getPaginated","makeCountQuery","total","uncached_getByIndex","value","eq","result","uncached_ensureByIndex","args","uncached_getByID","uncached_ensureByID","uncached_getFromParams","uncached_ensureFromParams","create","data","makeInsertMutation","update","makeUpdateMutation","$delete","makeDeleteMutation","undelete","makeUndeleteMutation","cache","create_repository_default"],"mappings":"uIAGA,eAAeA,CAAAA,CACXC,CAAAA,CACAC,EACAC,CAAAA,CACU,CACV,IAAMC,CAAAA,CAAK,MAAMC,CAAAA,CAAmBJ,CAAAA,CAAKC,CAAAA,CAAQC,CAAM,EACvD,OAAOG,CAAAA,CAAYF,CAAAA,CAAIF,CAAM,CACjC,CAEA,IAAOK,CAAAA,CAAQP,CAAAA,CCaf,SAASQ,CAAAA,CACLC,CAAAA,CACAC,CAAAA,CAC2C,CAC3C,QAAWT,CAAAA,IAAOS,CAAAA,CACd,GAAID,CAAAA,CAAOR,CAAG,CAAA,GAAM,MAAA,EAAaQ,CAAAA,CAAOR,CAAG,IAAM,IAAA,CAC7C,MAAM,IAAI,KAAA,CAAM,iDAAiD,MAAA,CAAOA,CAAG,CAAC,CAAA,CAAA,CAAG,EAGvF,OAAOQ,CACX,CAEA,SAASE,EAGPF,CAAAA,CAAiB,CACf,SAASG,CAAAA,CACLR,EAC8C,CAC9C,GAAM,CAAE,MAAA,CAAAF,CAAO,CAAA,CAAIM,CAAAA,CAAaC,CAAAA,CAAQ,CAAC,QAAQ,CAAC,CAAA,CAElD,OAAI,MAAM,OAAA,CAAQL,CAAE,CAAA,CACTS,CAAAA,CAA6BT,EAAIF,CAAM,CAAA,CAG3CW,CAAAA,CAA6BT,CAAAA,CAAIF,CAAM,CAClD,CAEA,SAASY,CAAAA,CAASV,EAAkD,CAChE,GAAM,CAAE,MAAA,CAAAF,CAAO,CAAA,CAAIM,CAAAA,CAAaC,CAAAA,CAAQ,CAAC,QAAQ,CAAC,CAAA,CAClD,OAAOH,CAAAA,CAA8BF,EAAIF,CAAM,CACnD,CAEA,eAAea,EACXZ,CAAAA,CACiC,CACjC,GAAM,CAAE,SAAAa,CAAAA,CAAU,MAAA,CAAAd,CAAO,CAAA,CAAIM,EAAaC,CAAAA,CAAQ,CAAC,UAAA,CAAY,QAAQ,CAAC,CAAA,CACxE,OAAOJ,CAAAA,CAAqCW,CAAAA,CAAUd,EAAQC,CAAM,CACxE,CAEA,eAAeH,EACXG,CAAAA,CAC0B,CAC1B,GAAM,CAAE,SAAAa,CAAAA,CAAU,MAAA,CAAAd,CAAO,CAAA,CAAIM,EAAaC,CAAAA,CAAQ,CAAC,UAAA,CAAY,QAAQ,CAAC,CAAA,CAExE,GAAI,CAEA,OADW,MAAMF,CAAAA,CAAwCS,CAAAA,CAAUd,CAAAA,CAAQC,CAAM,CAErF,CAAA,KAAc,CACVc,QAAAA,GACJ,CACJ,CAEA,eAAeC,CAAAA,CACXC,EAC+B,CAC/B,GAAM,CAAE,SAAA,CAAAC,CAAU,CAAA,CAAIZ,CAAAA,CAAaC,CAAAA,CAAQ,CAAC,WAAW,CAAC,CAAA,CAElDY,CAAAA,CAA8B,GAE9BC,CAAAA,CAAU,MAAMb,CAAAA,CAAO,YAAA,GAAeU,GAAU,OAAA,EAAW,IAAI,CAAA,CACrEE,CAAAA,CAAW,KAAK,GAAIC,CAAAA,EAAW,EAAG,EAElC,IAAMC,CAAAA,CAAS,MAAMd,CAAAA,CAAO,cAAcU,CAAAA,EAAU,MAAA,EAAU,IAAI,CAAA,CAClE,OAAAE,CAAAA,CAAW,IAAA,CAAK,GAAIE,CAAAA,EAAU,EAAG,CAAA,CAE1BH,CAAAA,CAAUC,CAAAA,CAAY,CACzB,KAAA,CAAOF,CAAAA,EAAU,KAAA,EAAS,EAAA,CAC1B,OAAQA,CAAAA,EAAU,MAAA,EAAU,CAChC,CAAC,CACL,CAEA,eAAeK,CAAAA,CACXL,EACwC,CACxC,GAAM,CAAE,cAAA,CAAAM,EAAgB,SAAA,CAAAL,CAAU,CAAA,CAAIZ,CAAAA,CAAaC,EAAQ,CAAC,gBAAA,CAAkB,WAAW,CAAC,EAEpFY,CAAAA,CAA8B,EAAC,CAE/BC,CAAAA,CAAU,MAAMb,CAAAA,CAAO,YAAA,GAAeU,CAAAA,EAAU,OAAA,EAAW,IAAI,CAAA,CACrEE,CAAAA,CAAW,IAAA,CAAK,GAAIC,GAAW,EAAG,CAAA,CAElC,IAAMC,EAAS,MAAMd,CAAAA,CAAO,WAAA,GAAcU,CAAAA,EAAU,QAAU,IAAI,CAAA,CAClEE,CAAAA,CAAW,IAAA,CAAK,GAAIE,CAAAA,EAAU,EAAG,CAAA,CAEjC,IAAMG,CAAAA,CAAQ,MAAMD,CAAAA,CAAeJ,CAAU,EAO7C,OAAO,CACH,IAAA,CANS,MAAMD,EAAUC,CAAAA,CAAY,CACrC,KAAA,CAAOF,CAAAA,EAAU,OAAS,EAAA,CAC1B,MAAA,CAAA,CAAA,CAAUA,CAAAA,EAAU,IAAA,EAAQ,GAAK,CAAA,GAAMA,CAAAA,EAAU,KAAA,EAAS,EAAA,CAC9D,CAAC,CAAA,CAIG,IAAA,CAAM,CAAE,MAAOA,CAAAA,EAAU,KAAA,EAAS,EAAA,CAAI,IAAA,CAAMA,GAAU,IAAA,EAAQ,CAAA,CAAG,KAAA,CAAAO,CAAM,CAC3E,CACJ,CAEA,eAAeC,GAAAA,CACX1B,EACA2B,CAAAA,CACAT,CAAAA,CACoC,CACpC,GAAM,CAAE,SAAA,CAAAC,CAAU,CAAA,CAAIZ,CAAAA,CAAaC,EAAQ,CAAC,WAAW,CAAC,CAAA,CAExD,GAAI,CAACA,CAAAA,CAAO,OAAA,GAAUR,CAAG,EACrB,MAAM,IAAI,KAAA,CACN,CAAA,iCAAA,EAAoC,OAAOA,CAAG,CAAC,CAAA,gDAAA,CACnD,CAAA,CAGJ,IAAMoB,CAAAA,CAA8B,EAAC,CAE/BC,CAAAA,CAAU,MAAMb,CAAAA,CAAO,YAAA,GAAeU,CAAAA,EAAU,OAAA,EAAW,IAAI,CAAA,CACrEE,CAAAA,CAAW,IAAA,CAAK,GAAIC,GAAW,EAAG,CAAA,CAElC,IAAMC,EAAS,MAAMd,CAAAA,CAAO,WAAA,GAAcU,CAAAA,EAAU,QAAU,IAAI,CAAA,CAClEE,CAAAA,CAAW,IAAA,CAAK,GAAIE,CAAAA,EAAU,EAAG,EAEjCF,CAAAA,CAAW,IAAA,CAAKQ,EAAAA,CAAGpB,CAAAA,CAAO,QAAQR,CAAG,CAAA,CAAG2B,CAAK,CAAC,EAE9C,GAAM,CAACE,CAAM,CAAA,CAAI,MAAMV,CAAAA,CAAUC,CAAAA,CAAY,CAAE,KAAA,CAAO,EAAG,MAAA,CAAQ,CAAE,CAAC,CAAA,CAEpE,OAAOS,CAAAA,EAAU,IACrB,CAEA,eAAeC,KACRC,CAAAA,CAC0B,CAC7B,IAAMF,CAAAA,CAAS,MAAMH,GAAAA,CAAoB,GAAGK,CAAI,CAAA,CAEhD,OAAKF,CAAAA,EACMb,QAAAA,EAIf,CAEA,eAAegB,CAAAA,CAAiB7B,CAAAA,CAA6D,CACzF,OAAOuB,IAAoB,IAAA,CAAMvB,CAAE,CACvC,CAEA,eAAe8B,CAAAA,CAAoB9B,CAAAA,CAAsD,CACrF,OAAO2B,EAAuB,IAAA,CAAM3B,CAAE,CAC1C,CAEA,eAAe+B,CAAAA,CACXhC,CAAAA,CACoC,CACpC,IAAMC,EAAK,MAAMW,CAAAA,CAAgBZ,CAAM,CAAA,CACvC,OAAOC,CAAAA,CAAK6B,CAAAA,CAAiB7B,CAAE,EAAI,IACvC,CAEA,eAAegC,CAAAA,CACXjC,EAC6B,CAC7B,IAAMC,CAAAA,CAAK,MAAMJ,EAAmBG,CAAM,CAAA,CAC1C,OAAO+B,CAAAA,CAAoB9B,CAAE,CACjC,CAEA,eAAeiC,CAAAA,CACXC,EACuC,CACvC,GAAM,CAAE,kBAAA,CAAAC,CAAmB,CAAA,CAAI/B,CAAAA,CAAaC,CAAAA,CAAQ,CAAC,oBAAoB,CAAC,CAAA,CAC1E,OAAO8B,CAAAA,CAAmBD,CAAI,CAClC,CAEA,eAAeE,CAAAA,CACXF,EACuC,CACvC,GAAM,CAAE,kBAAA,CAAAG,CAAmB,CAAA,CAAIjC,CAAAA,CAAaC,CAAAA,CAAQ,CAAC,oBAAoB,CAAC,CAAA,CAC1E,OAAOgC,CAAAA,CAAmBH,CAAI,CAClC,CAEA,eAAeI,CAAAA,CAAQtC,EAAsC,CACzD,GAAM,CAAE,kBAAA,CAAAuC,CAAmB,CAAA,CAAInC,CAAAA,CAAaC,CAAAA,CAAQ,CAAC,oBAAoB,CAAC,CAAA,CAC1E,OAAOkC,CAAAA,CAAmBvC,CAAE,CAChC,CAEA,eAAewC,CAAAA,CAASxC,EAAsC,CAC1D,GAAM,CAAE,oBAAA,CAAAyC,CAAqB,CAAA,CAAIrC,CAAAA,CAAaC,CAAAA,CAAQ,CAAC,sBAAsB,CAAC,CAAA,CAC9E,OAAOoC,CAAAA,CAAqBzC,CAAE,CAClC,CAEA,OAAO,CACH,OAAAiC,CAAAA,CACA,MAAA,CAAQK,CAAAA,CACR,UAAA,CAAYI,MAAMZ,CAAmB,CAAA,CACrC,aAAA,CAAeY,KAAAA,CAAMf,CAAsB,CAAA,CAC3C,gBAAA,CAAkBe,KAAAA,CAAMV,CAAyB,EACjD,QAAA,CAAAtB,CAAAA,CACA,kBAAA,CAAAd,CAAAA,CACA,OAAQ8C,KAAAA,CAAM5B,CAAe,CAAA,CAC7B,OAAA,CAAS4B,MAAMb,CAAgB,CAAA,CAC/B,UAAA,CAAYa,KAAAA,CAAMnB,GAAmB,CAAA,CACrC,aAAA,CAAemB,KAAAA,CAAMX,CAAsB,EAC3C,eAAA,CAAApB,CAAAA,CACA,YAAA,CAAc+B,KAAAA,CAAMtB,CAAqB,CAAA,CACzC,OAAA,CAAAZ,CAAAA,CACA,QAAA,CAAAgC,EACA,MAAA,CAAAJ,CACJ,CACJ,KAEOO,CAAAA,CAAQpC","file":"index.js","sourcesContent":["import ensureID from './ensure-id';\nimport getIDFromParams from './get-id-from-params';\n\nasync function ensureIDFromParams<T extends string>(\n key: string,\n prefix: string,\n params?: Promise<Record<string, string>> | Record<string, string> | null\n): Promise<T> {\n const id = await getIDFromParams<T>(key, prefix, params);\n return ensureID<T>(id, prefix);\n}\n\nexport default ensureIDFromParams;\n","import { eq } from 'drizzle-orm';\nimport { PgColumn } from 'drizzle-orm/pg-core';\nimport { notFound } from 'next/navigation';\nimport { cache } from 'react';\n\nimport ensureIDFn from '../utility/ensure-id';\nimport ensureIDFromParamsFn from '../utility/ensure-id-from-params';\nimport getIDFromParamsFn from '../utility/get-id-from-params';\nimport guardIDFn from '../utility/guard-id';\nimport { Paginated } from '../utility/interfaces';\n\nimport {\n QueryConditions,\n PaginatedFunctionConfig,\n RepositoryConfig,\n SelectFunctionConfig,\n UnwrapColumnType,\n UnwrapFilters,\n UnwrapGuards,\n UnwrapID,\n UnwrapInsert,\n UnwrapModel,\n UnwrapUpdate,\n} from './interfaces';\n\nfunction ensureConfig<TConfig extends RepositoryConfig, TKeys extends keyof TConfig>(\n config: TConfig,\n keys: TKeys[]\n): { [K in TKeys]-?: NonNullable<TConfig[K]> } {\n for (const key of keys) {\n if (config[key] === undefined || config[key] === null) {\n throw new Error(`Repository config is missing required field: \"${String(key)}\"`);\n }\n }\n return config as unknown as { [K in TKeys]-?: NonNullable<TConfig[K]> };\n}\n\nfunction createRepository<\n TConfig extends RepositoryConfig<TIndexes, any, any>,\n TIndexes extends Record<string, PgColumn<any>> = Record<string, PgColumn<any>>,\n>(config: TConfig) {\n function guardID(\n id: (string | null | undefined)[] | string | null | undefined\n ): UnwrapID<TConfig> | UnwrapID<TConfig>[] | null {\n const { prefix } = ensureConfig(config, ['prefix']);\n\n if (Array.isArray(id)) {\n return guardIDFn<UnwrapID<TConfig>>(id, prefix);\n }\n\n return guardIDFn<UnwrapID<TConfig>>(id, prefix);\n }\n\n function ensureID(id: string | null | undefined): UnwrapID<TConfig> {\n const { prefix } = ensureConfig(config, ['prefix']);\n return ensureIDFn<UnwrapID<TConfig>>(id, prefix);\n }\n\n async function getIDFromParams(\n params?: Promise<Record<string, string>> | Record<string, string> | null\n ): Promise<UnwrapID<TConfig> | null> {\n const { paramKey, prefix } = ensureConfig(config, ['paramKey', 'prefix']);\n return getIDFromParamsFn<UnwrapID<TConfig>>(paramKey, prefix, params);\n }\n\n async function ensureIDFromParams(\n params?: Promise<Record<string, string>> | Record<string, string> | null\n ): Promise<UnwrapID<TConfig>> {\n const { paramKey, prefix } = ensureConfig(config, ['paramKey', 'prefix']);\n\n try {\n const id = await ensureIDFromParamsFn<UnwrapID<TConfig>>(paramKey, prefix, params);\n return id;\n } catch (err) {\n notFound();\n }\n }\n\n async function uncached_getAll(\n fnConfig?: SelectFunctionConfig<UnwrapFilters<TConfig>, UnwrapGuards<TConfig>>\n ): Promise<UnwrapModel<TConfig>[]> {\n const { makeQuery } = ensureConfig(config, ['makeQuery']);\n\n const conditions: QueryConditions = [];\n\n const filters = await config.applyFilters?.(fnConfig?.filters ?? null);\n conditions.push(...(filters || []));\n\n const guards = await config.applyGuards?.(fnConfig?.guards ?? null);\n conditions.push(...(guards || []));\n\n return makeQuery(conditions, {\n limit: fnConfig?.limit ?? -1,\n offset: fnConfig?.offset ?? 0,\n });\n }\n\n async function uncached_getPaginated(\n fnConfig?: PaginatedFunctionConfig<UnwrapFilters<TConfig>, UnwrapGuards<TConfig>>\n ): Promise<Paginated<UnwrapModel<TConfig>>> {\n const { makeCountQuery, makeQuery } = ensureConfig(config, ['makeCountQuery', 'makeQuery']);\n\n const conditions: QueryConditions = [];\n\n const filters = await config.applyFilters?.(fnConfig?.filters ?? null);\n conditions.push(...(filters || []));\n\n const guards = await config.applyGuards?.(fnConfig?.guards ?? null);\n conditions.push(...(guards || []));\n\n const total = await makeCountQuery(conditions);\n\n const data = await makeQuery(conditions, {\n limit: fnConfig?.limit ?? 10,\n offset: ((fnConfig?.page ?? 1) - 1) * (fnConfig?.limit ?? 10),\n });\n\n return {\n data,\n meta: { limit: fnConfig?.limit ?? 10, page: fnConfig?.page ?? 1, total },\n };\n }\n\n async function uncached_getByIndex<K extends keyof TIndexes>(\n key: K,\n value: UnwrapColumnType<TIndexes[K]>,\n fnConfig?: SelectFunctionConfig<UnwrapFilters<TConfig>, UnwrapGuards<TConfig>>\n ): Promise<UnwrapModel<TConfig> | null> {\n const { makeQuery } = ensureConfig(config, ['makeQuery']);\n\n if (!config.indexes?.[key]) {\n throw new Error(\n `'Could not \\`getByIndex\\`. Index ${String(key)} is not defined in the repository configuration.`\n );\n }\n\n const conditions: QueryConditions = [];\n\n const filters = await config.applyFilters?.(fnConfig?.filters ?? null);\n conditions.push(...(filters || []));\n\n const guards = await config.applyGuards?.(fnConfig?.guards ?? null);\n conditions.push(...(guards || []));\n\n conditions.push(eq(config.indexes[key], value));\n\n const [result] = await makeQuery(conditions, { limit: 1, offset: 0 });\n\n return result ?? null;\n }\n\n async function uncached_ensureByIndex<K extends keyof TIndexes>(\n ...args: Parameters<typeof uncached_getByIndex<K>>\n ): Promise<UnwrapModel<TConfig>> {\n const result = await uncached_getByIndex(...args);\n\n if (!result) {\n return notFound();\n }\n\n return result;\n }\n\n async function uncached_getByID(id: UnwrapID<TConfig>): Promise<UnwrapModel<TConfig> | null> {\n return uncached_getByIndex('id', id);\n }\n\n async function uncached_ensureByID(id: UnwrapID<TConfig>): Promise<UnwrapModel<TConfig>> {\n return uncached_ensureByIndex('id', id);\n }\n\n async function uncached_getFromParams(\n params?: Promise<Record<string, string>> | Record<string, string> | null\n ): Promise<UnwrapModel<TConfig> | null> {\n const id = await getIDFromParams(params);\n return id ? uncached_getByID(id) : null;\n }\n\n async function uncached_ensureFromParams(\n params?: Promise<Record<string, string>> | Record<string, string> | null\n ): Promise<UnwrapModel<TConfig>> {\n const id = await ensureIDFromParams(params);\n return uncached_ensureByID(id);\n }\n\n async function create(\n data: UnwrapInsert<TConfig>['data']\n ): Promise<UnwrapInsert<TConfig>['model']> {\n const { makeInsertMutation } = ensureConfig(config, ['makeInsertMutation']);\n return makeInsertMutation(data);\n }\n\n async function update(\n data: UnwrapUpdate<TConfig>['data']\n ): Promise<UnwrapUpdate<TConfig>['model']> {\n const { makeUpdateMutation } = ensureConfig(config, ['makeUpdateMutation']);\n return makeUpdateMutation(data);\n }\n\n async function $delete(id: UnwrapID<TConfig>): Promise<void> {\n const { makeDeleteMutation } = ensureConfig(config, ['makeDeleteMutation']);\n return makeDeleteMutation(id);\n }\n\n async function undelete(id: UnwrapID<TConfig>): Promise<void> {\n const { makeUndeleteMutation } = ensureConfig(config, ['makeUndeleteMutation']);\n return makeUndeleteMutation(id);\n }\n\n return {\n create,\n delete: $delete,\n ensureByID: cache(uncached_ensureByID),\n ensureByIndex: cache(uncached_ensureByIndex),\n ensureFromParams: cache(uncached_ensureFromParams),\n ensureID,\n ensureIDFromParams,\n getAll: cache(uncached_getAll),\n getByID: cache(uncached_getByID),\n getByIndex: cache(uncached_getByIndex),\n getFromParams: cache(uncached_getFromParams),\n getIDFromParams,\n getPaginated: cache(uncached_getPaginated),\n guardID,\n undelete,\n update,\n };\n}\n\nexport default createRepository;\n"]}
1
+ {"version":3,"sources":["../../src/utility/ensure-id-from-params.ts","../../src/database/create-repository.ts"],"names":["ensureIDFromParams","key","prefix","params","id","get_id_from_params_default","ensure_id_default","ensure_id_from_params_default","ensureConfig","config","keys","createRepository","guardID","guard_id_default","ensureID","getIDFromParams","paramKey","notFound","uncached_getAll","fnConfig","makeQuery","conditions","filters","guards","uncached_getPaginated","makeCountQuery","total","uncached_getByIndex","value","eq","result","uncached_ensureByIndex","args","uncached_getByID","uncached_ensureByID","uncached_getFromParams","uncached_ensureFromParams","create","data","makeInsertMutation","update","makeUpdateMutation","$delete","makeDeleteMutation","undelete","makeUndeleteMutation","cache","create_repository_default"],"mappings":"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","file":"index.js","sourcesContent":["import ensureID from './ensure-id';\nimport getIDFromParams from './get-id-from-params';\n\nasync function ensureIDFromParams<T extends string>(\n key: string,\n prefix: string,\n params?: Promise<Record<string, string>> | Record<string, string> | null\n): Promise<T> {\n const id = await getIDFromParams<T>(key, prefix, params);\n return ensureID<T>(id, prefix);\n}\n\nexport default ensureIDFromParams;\n","import { eq } from 'drizzle-orm';\nimport { PgColumn } from 'drizzle-orm/pg-core';\nimport { notFound } from 'next/navigation';\nimport { cache } from 'react';\n\nimport ensureIDFn from '../utility/ensure-id';\nimport ensureIDFromParamsFn from '../utility/ensure-id-from-params';\nimport getIDFromParamsFn from '../utility/get-id-from-params';\nimport guardIDFn from '../utility/guard-id';\nimport { Paginated } from '../utility/interfaces';\n\nimport {\n QueryConditions,\n PaginatedFunctionConfig,\n RepositoryConfig,\n SelectFunctionConfig,\n UnwrapColumnType,\n UnwrapFilters,\n UnwrapGuards,\n UnwrapID,\n UnwrapInsert,\n UnwrapModel,\n UnwrapUpdate,\n} from './interfaces';\n\nfunction ensureConfig<TConfig extends RepositoryConfig, TKeys extends keyof TConfig>(\n config: TConfig,\n keys: TKeys[]\n): { [K in TKeys]-?: NonNullable<TConfig[K]> } {\n for (const key of keys) {\n if (config[key] === undefined || config[key] === null) {\n throw new Error(`Repository config is missing required field: \"${String(key)}\"`);\n }\n }\n return config as unknown as { [K in TKeys]-?: NonNullable<TConfig[K]> };\n}\n\nfunction createRepository<\n TConfig extends RepositoryConfig<TIndexes, any, any>,\n TIndexes extends Record<string, PgColumn<any>> = Record<string, PgColumn<any>>,\n>(config: TConfig) {\n function guardID(id: (string | null | undefined)[]): UnwrapID<TConfig>[];\n function guardID(id: string | null | undefined): UnwrapID<TConfig> | null;\n\n function guardID(\n id: (string | null | undefined)[] | string | null | undefined\n ): UnwrapID<TConfig> | UnwrapID<TConfig>[] | null {\n const { prefix } = ensureConfig(config, ['prefix']);\n\n if (Array.isArray(id)) {\n return guardIDFn<UnwrapID<TConfig>>(id, prefix);\n }\n\n return guardIDFn<UnwrapID<TConfig>>(id, prefix);\n }\n\n function ensureID(id: string | null | undefined): UnwrapID<TConfig> {\n const { prefix } = ensureConfig(config, ['prefix']);\n return ensureIDFn<UnwrapID<TConfig>>(id, prefix);\n }\n\n async function getIDFromParams(\n params?: Promise<Record<string, string>> | Record<string, string> | null\n ): Promise<UnwrapID<TConfig> | null> {\n const { paramKey, prefix } = ensureConfig(config, ['paramKey', 'prefix']);\n return getIDFromParamsFn<UnwrapID<TConfig>>(paramKey, prefix, params);\n }\n\n async function ensureIDFromParams(\n params?: Promise<Record<string, string>> | Record<string, string> | null\n ): Promise<UnwrapID<TConfig>> {\n const { paramKey, prefix } = ensureConfig(config, ['paramKey', 'prefix']);\n\n try {\n const id = await ensureIDFromParamsFn<UnwrapID<TConfig>>(paramKey, prefix, params);\n return id;\n } catch (err) {\n notFound();\n }\n }\n\n async function uncached_getAll(\n fnConfig?: SelectFunctionConfig<UnwrapFilters<TConfig>, UnwrapGuards<TConfig>>\n ): Promise<UnwrapModel<TConfig>[]> {\n const { makeQuery } = ensureConfig(config, ['makeQuery']);\n\n const conditions: QueryConditions = [];\n\n const filters = await config.applyFilters?.(fnConfig?.filters ?? null);\n conditions.push(...(filters || []));\n\n const guards = await config.applyGuards?.(fnConfig?.guards ?? null);\n conditions.push(...(guards || []));\n\n return makeQuery(conditions, {\n limit: fnConfig?.limit ?? -1,\n offset: fnConfig?.offset ?? 0,\n });\n }\n\n async function uncached_getPaginated(\n fnConfig?: PaginatedFunctionConfig<UnwrapFilters<TConfig>, UnwrapGuards<TConfig>>\n ): Promise<Paginated<UnwrapModel<TConfig>>> {\n const { makeCountQuery, makeQuery } = ensureConfig(config, ['makeCountQuery', 'makeQuery']);\n\n const conditions: QueryConditions = [];\n\n const filters = await config.applyFilters?.(fnConfig?.filters ?? null);\n conditions.push(...(filters || []));\n\n const guards = await config.applyGuards?.(fnConfig?.guards ?? null);\n conditions.push(...(guards || []));\n\n const total = await makeCountQuery(conditions);\n\n const data = await makeQuery(conditions, {\n limit: fnConfig?.limit ?? 10,\n offset: ((fnConfig?.page ?? 1) - 1) * (fnConfig?.limit ?? 10),\n });\n\n return {\n data,\n meta: { limit: fnConfig?.limit ?? 10, page: fnConfig?.page ?? 1, total },\n };\n }\n\n async function uncached_getByIndex<K extends keyof TIndexes>(\n key: K,\n value: UnwrapColumnType<TIndexes[K]>,\n fnConfig?: SelectFunctionConfig<UnwrapFilters<TConfig>, UnwrapGuards<TConfig>>\n ): Promise<UnwrapModel<TConfig> | null> {\n const { makeQuery } = ensureConfig(config, ['makeQuery']);\n\n if (!config.indexes?.[key]) {\n throw new Error(\n `'Could not \\`getByIndex\\`. Index ${String(key)} is not defined in the repository configuration.`\n );\n }\n\n const conditions: QueryConditions = [];\n\n const filters = await config.applyFilters?.(fnConfig?.filters ?? null);\n conditions.push(...(filters || []));\n\n const guards = await config.applyGuards?.(fnConfig?.guards ?? null);\n conditions.push(...(guards || []));\n\n conditions.push(eq(config.indexes[key], value));\n\n const [result] = await makeQuery(conditions, { limit: 1, offset: 0 });\n\n return result ?? null;\n }\n\n async function uncached_ensureByIndex<K extends keyof TIndexes>(\n ...args: Parameters<typeof uncached_getByIndex<K>>\n ): Promise<UnwrapModel<TConfig>> {\n const result = await uncached_getByIndex(...args);\n\n if (!result) {\n return notFound();\n }\n\n return result;\n }\n\n async function uncached_getByID(id: UnwrapID<TConfig>): Promise<UnwrapModel<TConfig> | null> {\n return uncached_getByIndex('id', id);\n }\n\n async function uncached_ensureByID(id: UnwrapID<TConfig>): Promise<UnwrapModel<TConfig>> {\n return uncached_ensureByIndex('id', id);\n }\n\n async function uncached_getFromParams(\n params?: Promise<Record<string, string>> | Record<string, string> | null\n ): Promise<UnwrapModel<TConfig> | null> {\n const id = await getIDFromParams(params);\n return id ? uncached_getByID(id) : null;\n }\n\n async function uncached_ensureFromParams(\n params?: Promise<Record<string, string>> | Record<string, string> | null\n ): Promise<UnwrapModel<TConfig>> {\n const id = await ensureIDFromParams(params);\n return uncached_ensureByID(id);\n }\n\n async function create(\n data: UnwrapInsert<TConfig>['data']\n ): Promise<UnwrapInsert<TConfig>['model']> {\n const { makeInsertMutation } = ensureConfig(config, ['makeInsertMutation']);\n return makeInsertMutation(data);\n }\n\n async function update(\n data: UnwrapUpdate<TConfig>['data']\n ): Promise<UnwrapUpdate<TConfig>['model']> {\n const { makeUpdateMutation } = ensureConfig(config, ['makeUpdateMutation']);\n return makeUpdateMutation(data);\n }\n\n async function $delete(id: UnwrapID<TConfig>): Promise<void> {\n const { makeDeleteMutation } = ensureConfig(config, ['makeDeleteMutation']);\n return makeDeleteMutation(id);\n }\n\n async function undelete(id: UnwrapID<TConfig>): Promise<void> {\n const { makeUndeleteMutation } = ensureConfig(config, ['makeUndeleteMutation']);\n return makeUndeleteMutation(id);\n }\n\n return {\n create,\n delete: $delete,\n ensureByID: cache(uncached_ensureByID),\n ensureByIndex: cache(uncached_ensureByIndex),\n ensureFromParams: cache(uncached_ensureFromParams),\n ensureID,\n ensureIDFromParams,\n getAll: cache(uncached_getAll),\n getByID: cache(uncached_getByID),\n getByIndex: cache(uncached_getByIndex),\n getFromParams: cache(uncached_getFromParams),\n getIDFromParams,\n getPaginated: cache(uncached_getPaginated),\n guardID,\n undelete,\n update,\n };\n}\n\nexport default createRepository;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sqrzro/server",
3
- "version": "4.0.0-alpha.32",
3
+ "version": "4.0.0-alpha.33",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",