@augment-vir/node 31.28.0 → 31.29.0

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.
@@ -1,8 +1,8 @@
1
- import { addData, dumpData, getAllPrismaModelNames } from '../prisma/model-data.js';
1
+ import { addData, dumpData } from '../prisma/model-data.js';
2
2
  import { generatePrismaClient, isGeneratedPrismaClientCurrent } from '../prisma/prisma-client.js';
3
3
  import { doesPrismaDiffExist, getPrismaDiff, resetDevPrismaDatabase } from '../prisma/prisma-database.js';
4
4
  import { applyPrismaMigrationsToDev, applyPrismaMigrationsToProd, createPrismaMigration, getMigrationStatus } from '../prisma/prisma-migrations.js';
5
- export type { PrismaAddDataData as PrismaAddModelData, PrismaDataDumpOptions, } from '../prisma/model-data.js';
5
+ export type { PrismaAddDataData as PrismaAddModelData, PrismaDataDumpOptions, PrismaDumpOutput, } from '../prisma/model-data.js';
6
6
  export * from '../prisma/prisma-errors.js';
7
7
  export type { PrismaMigrationStatus } from '../prisma/prisma-migrations.js';
8
8
  export { prismaCommandsThatSupportNoHints, runPrismaCommand } from '../prisma/run-prisma-command.js';
@@ -152,7 +152,5 @@ export declare const prisma: {
152
152
  * @see {@link PrismaDataDumpOptions}
153
153
  */
154
154
  dumpData: typeof dumpData;
155
- /** List all model names in the given Prisma client. */
156
- listModelNames: typeof getAllPrismaModelNames;
157
155
  };
158
156
  };
@@ -1,4 +1,4 @@
1
- import { addData, dumpData, getAllPrismaModelNames } from '../prisma/model-data.js';
1
+ import { addData, dumpData } from '../prisma/model-data.js';
2
2
  import { generatePrismaClient, isGeneratedPrismaClientCurrent } from '../prisma/prisma-client.js';
3
3
  import { doesPrismaDiffExist, getPrismaDiff, resetDevPrismaDatabase, } from '../prisma/prisma-database.js';
4
4
  import { applyPrismaMigrationsToDev, applyPrismaMigrationsToProd, createPrismaMigration, getMigrationStatus, } from '../prisma/prisma-migrations.js';
@@ -150,7 +150,5 @@ export const prisma = {
150
150
  * @see {@link PrismaDataDumpOptions}
151
151
  */
152
152
  dumpData: dumpData,
153
- /** List all model names in the given Prisma client. */
154
- listModelNames: getAllPrismaModelNames,
155
153
  },
156
154
  };
@@ -1,4 +1,4 @@
1
- import { type BasePrismaClient, type PartialWithUndefined, type PrismaAllBasicModels, type PrismaAllModelsCreate, type PrismaModelName } from '@augment-vir/common';
1
+ import { type BasePrismaClient, type BaseTypeMap, type FirstLetterLowercase, type PartialWithUndefined, type PrismaAllModelsCreate, type PrismaBasicModel, type PrismaModelName } from '@augment-vir/common';
2
2
  import { type IsAny } from 'type-fest';
3
3
  /**
4
4
  * Params for `prisma.client.addData()`. This is similar to {@link PrismaAllModelsCreate} but allows
@@ -47,9 +47,10 @@ import { type IsAny } from 'type-fest';
47
47
  *
48
48
  * @package [`@augment-vir/node`](https://www.npmjs.com/package/@augment-vir/node)
49
49
  */
50
- export type PrismaAddDataData<PrismaClient extends BasePrismaClient> = Readonly<PrismaAllModelsCreate<PrismaClient>> | ReadonlyArray<Readonly<PrismaAllModelsCreate<PrismaClient>>>;
51
- export declare function addData<const PrismaClient extends BasePrismaClient>(prismaClient: Readonly<PrismaClient>, data: IsAny<PrismaClient> extends true ? any : PrismaAddDataData<PrismaClient>): Promise<void>;
52
- export declare function getAllPrismaModelNames<const PrismaClient extends BasePrismaClient>(prismaClient: PrismaClient): PrismaModelName<PrismaClient>[];
50
+ export type PrismaAddDataData<PrismaClient extends BasePrismaClient, TypeMap extends BaseTypeMap> = Readonly<PrismaAllModelsCreate<PrismaClient, TypeMap>> | ReadonlyArray<Readonly<PrismaAllModelsCreate<PrismaClient, TypeMap>>>;
51
+ export declare function addData<const PrismaClient extends BasePrismaClient, const TypeMap extends BaseTypeMap>(prismaClient: Readonly<PrismaClient>, data: IsAny<PrismaClient> extends true ? any : PrismaAddDataData<PrismaClient, TypeMap>): Promise<void>;
52
+ /** These are not the real model names, they are the names on the PrismaClient (which are lowercase). */
53
+ export declare function getAllPrismaModelKeys(prismaClient: BasePrismaClient): string[];
53
54
  /**
54
55
  * Options for `prisma.client.dumpData`.
55
56
  *
@@ -71,4 +72,14 @@ export type PrismaDataDumpOptions = {
71
72
  */
72
73
  omitFields: string[];
73
74
  };
74
- export declare function dumpData<const PrismaClient extends BasePrismaClient>(prismaClient: PrismaClient, options?: Readonly<PartialWithUndefined<PrismaDataDumpOptions>>): Promise<PrismaAllBasicModels<PrismaClient>>;
75
+ /**
76
+ * Output for `prisma.client.dumpData`.
77
+ *
78
+ * @category Prisma : Node
79
+ * @category Package : @augment-vir/node
80
+ * @package [`@augment-vir/node`](https://www.npmjs.com/package/@augment-vir/node)
81
+ */
82
+ export type PrismaDumpOutput<TypeMap extends BaseTypeMap> = Partial<{
83
+ [Model in PrismaModelName<TypeMap> as FirstLetterLowercase<Model>]: PrismaBasicModel<TypeMap, Model>[];
84
+ }>;
85
+ export declare function dumpData<const TypeMap extends BaseTypeMap>(prismaClient: BasePrismaClient, options?: Readonly<PartialWithUndefined<PrismaDataDumpOptions>>): Promise<PrismaDumpOutput<TypeMap>>;
@@ -1,5 +1,5 @@
1
1
  import { assert, check } from '@augment-vir/assert';
2
- import { arrayToObject, awaitedForEach, ensureErrorAndPrependMessage, filterMap, getObjectTypedEntries, getObjectTypedValues, mergeDefinedProperties, omitObjectKeys, prismaModelCreateExclude, prismaModelCreateOmitId, } from '@augment-vir/common';
2
+ import { arrayToObject, awaitedForEach, ensureErrorAndPrependMessage, filterMap, getObjectTypedEntries, getObjectTypedValues, mergeDefinedProperties, omitObjectKeys, prismaModelCreateExclude, prismaModelCreateOmitId, setFirstLetterCasing, StringCase, } from '@augment-vir/common';
3
3
  export async function addData(prismaClient, data) {
4
4
  const dataArray = (check.isArray(data) ? data : [data]);
5
5
  await awaitedForEach(dataArray, async (dataEntry) => {
@@ -17,7 +17,7 @@ async function addModelDataObject(prismaClient, data) {
17
17
  const mockModelInstances = Array.isArray(mockData)
18
18
  ? mockData
19
19
  : getObjectTypedValues(mockData);
20
- const modelApi = prismaClient[modelName];
20
+ const modelApi = prismaClient[setFirstLetterCasing(modelName, StringCase.Lower)];
21
21
  assert.isDefined(modelApi, `No PrismaClient API found for model '${modelName}'`);
22
22
  try {
23
23
  const allData = filterMap(mockModelInstances, (entry) => {
@@ -41,7 +41,8 @@ const prismockKeys = [
41
41
  'getData',
42
42
  'setData',
43
43
  ];
44
- export function getAllPrismaModelNames(prismaClient) {
44
+ /** These are not the real model names, they are the names on the PrismaClient (which are lowercase). */
45
+ export function getAllPrismaModelKeys(prismaClient) {
45
46
  return Object.keys(prismaClient)
46
47
  .filter((key) => !key.startsWith('$') &&
47
48
  !key.startsWith('_') &&
@@ -54,7 +55,7 @@ const defaultPrismaDumpDataOptions = {
54
55
  omitFields: [],
55
56
  };
56
57
  export async function dumpData(prismaClient, options = {}) {
57
- const modelNames = getAllPrismaModelNames(prismaClient);
58
+ const modelNames = getAllPrismaModelKeys(prismaClient);
58
59
  const finalOptions = mergeDefinedProperties(defaultPrismaDumpDataOptions, options);
59
60
  const data = await arrayToObject(modelNames, async (modelName) => {
60
61
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@augment-vir/node",
3
- "version": "31.28.0",
3
+ "version": "31.29.0",
4
4
  "description": "A collection of augments, helpers types, functions, and classes only for Node.js (backend) JavaScript environments.",
5
5
  "keywords": [
6
6
  "augment",
@@ -38,8 +38,8 @@
38
38
  "test:update": "npm test"
39
39
  },
40
40
  "dependencies": {
41
- "@augment-vir/assert": "^31.28.0",
42
- "@augment-vir/common": "^31.28.0",
41
+ "@augment-vir/assert": "^31.29.0",
42
+ "@augment-vir/common": "^31.29.0",
43
43
  "@date-vir/duration": "^7.3.2",
44
44
  "ansi-styles": "^6.2.1",
45
45
  "terminate": "^2.8.0",
@@ -48,7 +48,7 @@
48
48
  "typed-event-target": "^4.1.0"
49
49
  },
50
50
  "devDependencies": {
51
- "@augment-vir/test": "^31.28.0",
51
+ "@augment-vir/test": "^31.29.0",
52
52
  "@prisma/client": "^6.12.0",
53
53
  "@types/node": "^24.1.0",
54
54
  "@web/dev-server-esbuild": "^1.0.4",
@@ -1,4 +1,4 @@
1
- import {addData, dumpData, getAllPrismaModelNames} from '../prisma/model-data.js';
1
+ import {addData, dumpData} from '../prisma/model-data.js';
2
2
  import {generatePrismaClient, isGeneratedPrismaClientCurrent} from '../prisma/prisma-client.js';
3
3
  import {
4
4
  doesPrismaDiffExist,
@@ -18,6 +18,7 @@ import {PrismaMigrationNeededError, PrismaResetNeededError} from '../prisma/pris
18
18
  export type {
19
19
  PrismaAddDataData as PrismaAddModelData,
20
20
  PrismaDataDumpOptions,
21
+ PrismaDumpOutput,
21
22
  } from '../prisma/model-data.js';
22
23
  export * from '../prisma/prisma-errors.js';
23
24
  export type {PrismaMigrationStatus} from '../prisma/prisma-migrations.js';
@@ -169,7 +170,5 @@ export const prisma = {
169
170
  * @see {@link PrismaDataDumpOptions}
170
171
  */
171
172
  dumpData: dumpData,
172
- /** List all model names in the given Prisma client. */
173
- listModelNames: getAllPrismaModelNames,
174
173
  },
175
174
  };
@@ -4,18 +4,22 @@ import {
4
4
  arrayToObject,
5
5
  awaitedForEach,
6
6
  type BasePrismaClient,
7
+ type BaseTypeMap,
7
8
  ensureErrorAndPrependMessage,
8
9
  filterMap,
10
+ type FirstLetterLowercase,
9
11
  getObjectTypedEntries,
10
12
  getObjectTypedValues,
11
13
  mergeDefinedProperties,
12
14
  omitObjectKeys,
13
15
  type PartialWithUndefined,
14
- type PrismaAllBasicModels,
15
16
  type PrismaAllModelsCreate,
17
+ type PrismaBasicModel,
16
18
  prismaModelCreateExclude,
17
19
  prismaModelCreateOmitId,
18
20
  type PrismaModelName,
21
+ setFirstLetterCasing,
22
+ StringCase,
19
23
  } from '@augment-vir/common';
20
24
  import {type IsAny} from 'type-fest';
21
25
 
@@ -66,13 +70,16 @@ import {type IsAny} from 'type-fest';
66
70
  *
67
71
  * @package [`@augment-vir/node`](https://www.npmjs.com/package/@augment-vir/node)
68
72
  */
69
- export type PrismaAddDataData<PrismaClient extends BasePrismaClient> =
70
- | Readonly<PrismaAllModelsCreate<PrismaClient>>
71
- | ReadonlyArray<Readonly<PrismaAllModelsCreate<PrismaClient>>>;
72
-
73
- export async function addData<const PrismaClient extends BasePrismaClient>(
73
+ export type PrismaAddDataData<PrismaClient extends BasePrismaClient, TypeMap extends BaseTypeMap> =
74
+ | Readonly<PrismaAllModelsCreate<PrismaClient, TypeMap>>
75
+ | ReadonlyArray<Readonly<PrismaAllModelsCreate<PrismaClient, TypeMap>>>;
76
+
77
+ export async function addData<
78
+ const PrismaClient extends BasePrismaClient,
79
+ const TypeMap extends BaseTypeMap,
80
+ >(
74
81
  prismaClient: Readonly<PrismaClient>,
75
- data: IsAny<PrismaClient> extends true ? any : PrismaAddDataData<PrismaClient>,
82
+ data: IsAny<PrismaClient> extends true ? any : PrismaAddDataData<PrismaClient, TypeMap>,
76
83
  ): Promise<void> {
77
84
  const dataArray: Record<string, AnyObject>[] = (check.isArray(data) ? data : [data]) as Record<
78
85
  string,
@@ -104,7 +111,8 @@ async function addModelDataObject(
104
111
  ? mockData
105
112
  : getObjectTypedValues(mockData);
106
113
 
107
- const modelApi: AnyObject | undefined = prismaClient[modelName];
114
+ const modelApi: AnyObject | undefined =
115
+ prismaClient[setFirstLetterCasing(modelName, StringCase.Lower)];
108
116
 
109
117
  assert.isDefined(modelApi, `No PrismaClient API found for model '${modelName}'`);
110
118
 
@@ -141,9 +149,8 @@ const prismockKeys = [
141
149
  'setData',
142
150
  ];
143
151
 
144
- export function getAllPrismaModelNames<const PrismaClient extends BasePrismaClient>(
145
- prismaClient: PrismaClient,
146
- ): PrismaModelName<PrismaClient>[] {
152
+ /** These are not the real model names, they are the names on the PrismaClient (which are lowercase). */
153
+ export function getAllPrismaModelKeys(prismaClient: BasePrismaClient): string[] {
147
154
  return Object.keys(prismaClient)
148
155
  .filter(
149
156
  (key) =>
@@ -152,7 +159,7 @@ export function getAllPrismaModelNames<const PrismaClient extends BasePrismaClie
152
159
  !prismockKeys.includes(key) &&
153
160
  key !== 'constructor',
154
161
  )
155
- .sort() as PrismaModelName<PrismaClient>[];
162
+ .sort();
156
163
  }
157
164
 
158
165
  /**
@@ -182,14 +189,28 @@ const defaultPrismaDumpDataOptions: PrismaDataDumpOptions = {
182
189
  omitFields: [],
183
190
  };
184
191
 
185
- export async function dumpData<const PrismaClient extends BasePrismaClient>(
186
- prismaClient: PrismaClient,
192
+ /**
193
+ * Output for `prisma.client.dumpData`.
194
+ *
195
+ * @category Prisma : Node
196
+ * @category Package : @augment-vir/node
197
+ * @package [`@augment-vir/node`](https://www.npmjs.com/package/@augment-vir/node)
198
+ */
199
+ export type PrismaDumpOutput<TypeMap extends BaseTypeMap> = Partial<{
200
+ [Model in PrismaModelName<TypeMap> as FirstLetterLowercase<Model>]: PrismaBasicModel<
201
+ TypeMap,
202
+ Model
203
+ >[];
204
+ }>;
205
+
206
+ export async function dumpData<const TypeMap extends BaseTypeMap>(
207
+ prismaClient: BasePrismaClient,
187
208
  options: Readonly<PartialWithUndefined<PrismaDataDumpOptions>> = {},
188
- ): Promise<PrismaAllBasicModels<PrismaClient>> {
189
- const modelNames = getAllPrismaModelNames(prismaClient);
209
+ ): Promise<PrismaDumpOutput<TypeMap>> {
210
+ const modelNames = getAllPrismaModelKeys(prismaClient);
190
211
  const finalOptions = mergeDefinedProperties(defaultPrismaDumpDataOptions, options);
191
212
 
192
- const data: Partial<Record<PrismaModelName<PrismaClient>, AnyObject[]>> = await arrayToObject(
213
+ const data: Partial<Record<PrismaModelName<TypeMap>, AnyObject[]>> = await arrayToObject(
193
214
  modelNames,
194
215
  async (modelName) => {
195
216
  try {
@@ -222,5 +243,5 @@ export async function dumpData<const PrismaClient extends BasePrismaClient>(
222
243
  },
223
244
  );
224
245
 
225
- return data as PrismaAllBasicModels<PrismaClient>;
246
+ return data as PrismaDumpOutput<TypeMap>;
226
247
  }