@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
|
|
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
|
};
|
package/dist/augments/prisma.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { addData, dumpData
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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.
|
|
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.
|
|
42
|
-
"@augment-vir/common": "^31.
|
|
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.
|
|
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",
|
package/src/augments/prisma.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {addData, dumpData
|
|
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
|
};
|
package/src/prisma/model-data.ts
CHANGED
|
@@ -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<
|
|
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 =
|
|
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
|
-
|
|
145
|
-
|
|
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()
|
|
162
|
+
.sort();
|
|
156
163
|
}
|
|
157
164
|
|
|
158
165
|
/**
|
|
@@ -182,14 +189,28 @@ const defaultPrismaDumpDataOptions: PrismaDataDumpOptions = {
|
|
|
182
189
|
omitFields: [],
|
|
183
190
|
};
|
|
184
191
|
|
|
185
|
-
|
|
186
|
-
|
|
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<
|
|
189
|
-
const modelNames =
|
|
209
|
+
): Promise<PrismaDumpOutput<TypeMap>> {
|
|
210
|
+
const modelNames = getAllPrismaModelKeys(prismaClient);
|
|
190
211
|
const finalOptions = mergeDefinedProperties(defaultPrismaDumpDataOptions, options);
|
|
191
212
|
|
|
192
|
-
const data: Partial<Record<PrismaModelName<
|
|
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
|
|
246
|
+
return data as PrismaDumpOutput<TypeMap>;
|
|
226
247
|
}
|