@lokalise/prisma-utils 5.0.2 → 6.0.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.
Files changed (85) hide show
  1. package/README.md +129 -12
  2. package/dist/{errors → src/errors}/cockroachdbError.d.ts +1 -1
  3. package/dist/src/errors/cockroachdbError.js.map +1 -0
  4. package/dist/src/errors/index.js.map +1 -0
  5. package/dist/{errors → src/errors}/prismaError.d.ts +1 -1
  6. package/dist/src/errors/prismaError.js.map +1 -0
  7. package/dist/src/factory/extendPrismaClientWithMetrics.d.ts +3 -0
  8. package/dist/src/factory/extendPrismaClientWithMetrics.js +90 -0
  9. package/dist/src/factory/extendPrismaClientWithMetrics.js.map +1 -0
  10. package/dist/src/factory/index.d.ts +1 -0
  11. package/dist/src/factory/index.js +2 -0
  12. package/dist/src/factory/index.js.map +1 -0
  13. package/dist/src/factory/prismaClientFactory.d.ts +20 -0
  14. package/dist/src/factory/prismaClientFactory.js +26 -0
  15. package/dist/src/factory/prismaClientFactory.js.map +1 -0
  16. package/dist/src/index.d.ts +4 -0
  17. package/dist/src/index.js +4 -0
  18. package/dist/src/index.js.map +1 -0
  19. package/dist/src/transaction/index.d.ts +2 -0
  20. package/dist/src/transaction/index.js +2 -0
  21. package/dist/src/transaction/index.js.map +1 -0
  22. package/dist/src/transaction/prismaTransaction.d.ts +17 -0
  23. package/dist/{prismaTransaction.js → src/transaction/prismaTransaction.js} +5 -6
  24. package/dist/src/transaction/prismaTransaction.js.map +1 -0
  25. package/dist/src/transaction/types.d.ts +15 -0
  26. package/dist/src/transaction/types.js +2 -0
  27. package/dist/src/transaction/types.js.map +1 -0
  28. package/dist/src/types.d.ts +7 -0
  29. package/dist/src/types.js +5 -0
  30. package/dist/src/types.js.map +1 -0
  31. package/dist/test/db-client/client.d.ts +31 -0
  32. package/dist/test/db-client/client.js +36 -0
  33. package/dist/test/db-client/client.js.map +1 -0
  34. package/dist/test/db-client/commonInputTypes.d.ts +119 -0
  35. package/dist/test/db-client/commonInputTypes.js +11 -0
  36. package/dist/test/db-client/commonInputTypes.js.map +1 -0
  37. package/dist/test/db-client/enums.d.ts +1 -0
  38. package/dist/test/db-client/enums.js +12 -0
  39. package/dist/test/db-client/enums.js.map +1 -0
  40. package/dist/test/db-client/internal/class.d.ts +137 -0
  41. package/dist/test/db-client/internal/class.js +50 -0
  42. package/dist/test/db-client/internal/class.js.map +1 -0
  43. package/dist/test/db-client/internal/prismaNamespace.d.ts +592 -0
  44. package/dist/test/db-client/internal/prismaNamespace.js +98 -0
  45. package/dist/test/db-client/internal/prismaNamespace.js.map +1 -0
  46. package/dist/test/db-client/models/Item1.d.ts +912 -0
  47. package/dist/test/db-client/models/Item1.js +2 -0
  48. package/dist/test/db-client/models/Item1.js.map +1 -0
  49. package/dist/test/db-client/models/Item2.d.ts +909 -0
  50. package/dist/test/db-client/models/Item2.js +2 -0
  51. package/dist/test/db-client/models/Item2.js.map +1 -0
  52. package/dist/test/db-client/models.d.ts +3 -0
  53. package/dist/test/db-client/models.js +2 -0
  54. package/dist/test/db-client/models.js.map +1 -0
  55. package/package.json +13 -18
  56. package/dist/errors/cockroachdbError.js.map +0 -1
  57. package/dist/errors/index.js.map +0 -1
  58. package/dist/errors/prismaError.js.map +0 -1
  59. package/dist/index.d.ts +0 -5
  60. package/dist/index.js +0 -5
  61. package/dist/index.js.map +0 -1
  62. package/dist/isolation_level/isolationLevel.d.ts +0 -3
  63. package/dist/isolation_level/isolationLevel.js +0 -2
  64. package/dist/isolation_level/isolationLevel.js.map +0 -1
  65. package/dist/plugins/CollectionScheduler.d.ts +0 -12
  66. package/dist/plugins/CollectionScheduler.js +0 -20
  67. package/dist/plugins/CollectionScheduler.js.map +0 -1
  68. package/dist/plugins/MetricsCollector.d.ts +0 -36
  69. package/dist/plugins/MetricsCollector.js +0 -188
  70. package/dist/plugins/MetricsCollector.js.map +0 -1
  71. package/dist/plugins/prismaMetricsPlugin.d.ts +0 -21
  72. package/dist/plugins/prismaMetricsPlugin.js +0 -49
  73. package/dist/plugins/prismaMetricsPlugin.js.map +0 -1
  74. package/dist/prismaClientFactory.d.ts +0 -5
  75. package/dist/prismaClientFactory.js +0 -11
  76. package/dist/prismaClientFactory.js.map +0 -1
  77. package/dist/prismaTransaction.d.ts +0 -17
  78. package/dist/prismaTransaction.js.map +0 -1
  79. package/dist/types.d.ts +0 -44
  80. package/dist/types.js +0 -4
  81. package/dist/types.js.map +0 -1
  82. /package/dist/{errors → src/errors}/cockroachdbError.js +0 -0
  83. /package/dist/{errors → src/errors}/index.d.ts +0 -0
  84. /package/dist/{errors → src/errors}/index.js +0 -0
  85. /package/dist/{errors → src/errors}/prismaError.js +0 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Item2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item2.js","sourceRoot":"","sources":["../../../../test/db-client/models/Item2.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export type * from './models/Item1.ts';
2
+ export type * from './models/Item2.ts';
3
+ export type * from './commonInputTypes.ts';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../test/db-client/models.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/prisma-utils",
3
- "version": "5.0.2",
3
+ "version": "6.0.0",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "files": [
@@ -23,39 +23,34 @@
23
23
  "clean": "rimraf dist",
24
24
  "lint": "biome check . && tsc",
25
25
  "lint:fix": "biome check --write",
26
- "docker:start:ci": "docker compose up -d cockroachdb",
27
- "db:migration:dev": "prisma migrate dev",
26
+ "db:migration:dev": "prisma migrate dev --config=./prisma/prisma.config",
28
27
  "db:update-client": "prisma generate",
29
- "db:wait": "while ! echo \"SELECT 1;\" | prisma db execute --stdin --schema prisma/schema.prisma; do sleep 1; done",
30
28
  "test": "vitest run",
31
- "test:migrate": "cross-env NODE_ENV=test prisma migrate reset --force",
32
- "pretest:ci": "npm run docker:start:ci && npm run db:wait && npm run test:migrate",
29
+ "test:migrate": "cross-env NODE_ENV=test prisma migrate reset --config=./prisma/prisma.config --force",
30
+ "pretest:ci": "docker compose up -d --wait && npm run test:migrate",
33
31
  "test:ci": "npm run test",
34
- "test:ci:teardown": "docker compose down",
32
+ "posttest:ci": "docker compose down",
35
33
  "prepublishOnly": "npm run build",
36
34
  "package-version": "echo $npm_package_version",
37
35
  "postversion": "biome check --write package.json"
38
36
  },
39
- "dependencies": {
40
- "@lokalise/node-core": "^14.4.2"
41
- },
42
37
  "peerDependencies": {
43
- "@prisma/client": ">=5.0.0 <7.0.0",
44
- "prisma": ">=5.0.0 <7.0.0"
38
+ "@lokalise/node-core": ">=14.7.4",
39
+ "@prisma/client": "^7.0.0",
40
+ "prisma": "^7.0.0",
41
+ "prom-client": ">=15.0.0"
45
42
  },
46
43
  "devDependencies": {
47
44
  "@biomejs/biome": "^2.3.7",
48
- "@lokalise/backend-http-client": "^9.0.0",
49
45
  "@lokalise/biome-config": "^3.1.0",
50
- "@lokalise/fastify-extras": "30.6.0",
51
46
  "@lokalise/tsconfig": "^3.1.0",
52
- "@prisma/client": "~6.19.0",
47
+ "@prisma/adapter-pg": "^7.4.0",
48
+ "@prisma/client": "^7.4.0",
53
49
  "@vitest/coverage-v8": "^4.0.15",
54
50
  "cross-env": "^10.0.0",
55
- "prisma": "~6.19.0",
51
+ "prisma": "^7.4.0",
56
52
  "rimraf": "^6.0.1",
57
53
  "typescript": "5.9.3",
58
- "vitest": "^4.0.15",
59
- "zod": "^4.3.6"
54
+ "vitest": "^4.0.15"
60
55
  }
61
56
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"cockroachdbError.js","sourceRoot":"","sources":["../../src/errors/cockroachdbError.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,kCAAkC,GAAG,OAAO,CAAA;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,KAAoC,EAAW,EAAE;IAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAEvB,OAAO,IAAI,CAAC,IAAI,KAAK,kCAAkC,CAAA;AACzD,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"prismaError.js","sourceRoot":"","sources":["../../src/errors/prismaError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAG7C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,KAAc,EAC0B,EAAE,CAC1C,CAAC,CAAC,KAAK;IACP,OAAO,CAAC,KAAK,CAAC;IACd,MAAM,IAAI,KAAK;IACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;IAC9B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAE5B,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,KAAoC,EAAW,EAAE,CAC9F,KAAK,CAAC,IAAI,KAAK,wBAAwB;IACvC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAA;AAEpE;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAA;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAA;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,OAAO,CAAA"}
package/dist/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from './errors/index.ts';
2
- export { type PrismaMetricsPluginOptions, prismaMetricsPlugin, } from './plugins/prismaMetricsPlugin.ts';
3
- export { prismaClientFactory } from './prismaClientFactory.ts';
4
- export { prismaTransaction } from './prismaTransaction.ts';
5
- export type * from './types.ts';
package/dist/index.js DELETED
@@ -1,5 +0,0 @@
1
- export * from "./errors/index.js";
2
- export { prismaMetricsPlugin, } from "./plugins/prismaMetricsPlugin.js";
3
- export { prismaClientFactory } from "./prismaClientFactory.js";
4
- export { prismaTransaction } from "./prismaTransaction.js";
5
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAEL,mBAAmB,GACpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA"}
@@ -1,3 +0,0 @@
1
- type IsolationLevel = 'Serializable' | 'ReadCommitted' | 'ReadUncommitted' | 'RepeatableRead' | 'Snapshot';
2
- export type CockroachDbIsolationLevel = Extract<IsolationLevel, 'ReadCommitted' | 'Serializable'>;
3
- export {};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=isolationLevel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isolationLevel.js","sourceRoot":"","sources":["../../src/isolation_level/isolationLevel.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- export type CollectionScheduler = {
2
- start: () => void;
3
- stop: () => void;
4
- };
5
- export declare class PromiseBasedCollectionScheduler implements CollectionScheduler {
6
- private active;
7
- private readonly collectionIntervalInMs;
8
- private readonly collect;
9
- constructor(collectionIntervalInMs: number, collect: () => Promise<void>);
10
- start(): Promise<void>;
11
- stop(): void;
12
- }
@@ -1,20 +0,0 @@
1
- import { setTimeout } from 'node:timers/promises';
2
- export class PromiseBasedCollectionScheduler {
3
- active = true;
4
- collectionIntervalInMs;
5
- collect;
6
- constructor(collectionIntervalInMs, collect) {
7
- this.collectionIntervalInMs = collectionIntervalInMs;
8
- this.collect = collect;
9
- }
10
- async start() {
11
- while (this.active) {
12
- await setTimeout(this.collectionIntervalInMs);
13
- await this.collect();
14
- }
15
- }
16
- stop() {
17
- this.active = false;
18
- }
19
- }
20
- //# sourceMappingURL=CollectionScheduler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CollectionScheduler.js","sourceRoot":"","sources":["../../src/plugins/CollectionScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAOjD,MAAM,OAAO,+BAA+B;IAClC,MAAM,GAAG,IAAI,CAAA;IACJ,sBAAsB,CAAQ;IAC9B,OAAO,CAAqB;IAE7C,YAAY,sBAA8B,EAAE,OAA4B;QACtE,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;CACF"}
@@ -1,36 +0,0 @@
1
- import type { PrismaClient } from '@prisma/client';
2
- import type { FastifyBaseLogger } from 'fastify';
3
- import * as prometheus from 'prom-client';
4
- export type PrometheusMetricsDefinitions = {
5
- counters: Record<string, prometheus.Counter<'prisma' | 'connection-pool'>>;
6
- gauges: Record<string, prometheus.Gauge<'prisma' | 'connection-pool'>>;
7
- histograms: Record<string, prometheus.Histogram<'prisma' | 'connection-pool'>>;
8
- keys: string[];
9
- };
10
- export type MetricCollectorOptions = {
11
- metricsPrefix: string;
12
- };
13
- export declare class MetricsCollector {
14
- private readonly prisma;
15
- private readonly options;
16
- private readonly registry;
17
- private readonly logger;
18
- private metrics;
19
- constructor(prisma: PrismaClient, options: MetricCollectorOptions, registry: prometheus.Registry, logger: FastifyBaseLogger);
20
- /**
21
- * Updates metrics for prisma.
22
- * If metric was not registered before it will be registered here.
23
- */
24
- collect(prefix: string): Promise<void>;
25
- private registerNewMetrics;
26
- /**
27
- * Stops the metrics collection and cleans up resources
28
- */
29
- dispose(): Promise<void>;
30
- private registerMetrics;
31
- /**
32
- * If metrics are already registered, we just return them to avoid triggering a Prometheus error.
33
- */
34
- private getRegisteredMetrics;
35
- private getJsonMetrics;
36
- }
@@ -1,188 +0,0 @@
1
- import * as prometheus from 'prom-client';
2
- function registerMetrics(_prefix, jsonMetrics) {
3
- const metrics = {
4
- counters: {},
5
- gauges: {},
6
- histograms: {},
7
- keys: [],
8
- };
9
- for (const metric of jsonMetrics.counters) {
10
- metrics.counters[metric.key] = new prometheus.Counter({
11
- name: metric.key,
12
- help: metric.description,
13
- labelNames: ['prisma', 'connection_pool'],
14
- });
15
- metrics.keys.push(metric.key);
16
- }
17
- for (const metric of jsonMetrics.gauges) {
18
- metrics.gauges[metric.key] = new prometheus.Gauge({
19
- name: metric.key,
20
- help: metric.description,
21
- labelNames: ['prisma', 'connection_pool'],
22
- });
23
- metrics.keys.push(metric.key);
24
- }
25
- for (const metric of jsonMetrics.histograms) {
26
- metrics.histograms[metric.key] = new prometheus.Histogram({
27
- name: metric.key,
28
- help: metric.description,
29
- buckets: metric.value.buckets.filter((bucket) => bucket[1] === 0).map((bucket) => bucket[0]),
30
- labelNames: ['prisma', 'connection_pool'],
31
- });
32
- metrics.keys.push(metric.key);
33
- }
34
- return metrics;
35
- }
36
- function getMetricKeys(_prefix, jsonMetrics) {
37
- const metricKeys = [];
38
- metricKeys.push(...jsonMetrics.counters.map((metric) => metric.key));
39
- metricKeys.push(...jsonMetrics.gauges.map((metric) => metric.key));
40
- metricKeys.push(...jsonMetrics.histograms.map((metric) => metric.key));
41
- return metricKeys;
42
- }
43
- export class MetricsCollector {
44
- prisma;
45
- options;
46
- registry;
47
- logger;
48
- metrics;
49
- constructor(prisma, options, registry, logger) {
50
- this.prisma = prisma;
51
- this.options = options;
52
- this.registry = registry;
53
- this.logger = logger;
54
- this.metrics = {
55
- counters: {},
56
- gauges: {},
57
- histograms: {},
58
- keys: [],
59
- };
60
- this.registerMetrics(this.registry, this.options).then((result) => {
61
- this.metrics = result;
62
- this.logger.debug({}, `Prisma metrics registered ${result.keys}`);
63
- });
64
- }
65
- /**
66
- * Updates metrics for prisma.
67
- * If metric was not registered before it will be registered here.
68
- */
69
- async collect(prefix) {
70
- try {
71
- const nonRegisteredMetrics = {
72
- counters: [],
73
- gauges: [],
74
- histograms: [],
75
- };
76
- const jsonMetrics = await this.getJsonMetrics();
77
- for (const counterMetric of jsonMetrics.counters) {
78
- const existingMetric = this.metrics.counters[counterMetric.key];
79
- /* c8 ignore start */
80
- if (!existingMetric) {
81
- nonRegisteredMetrics.counters.push(counterMetric);
82
- continue;
83
- }
84
- /* c8 ignore stop */
85
- // we need to reset counter since prisma returns already the accumulated counter value
86
- existingMetric.reset();
87
- existingMetric.inc(counterMetric.value);
88
- }
89
- for (const gaugeMetric of jsonMetrics.gauges) {
90
- const existingMetric = this.metrics.gauges[gaugeMetric.key];
91
- /* c8 ignore start */
92
- if (!existingMetric) {
93
- nonRegisteredMetrics.gauges.push(gaugeMetric);
94
- continue;
95
- }
96
- /* c8 ignore stop */
97
- existingMetric.set(gaugeMetric.value);
98
- }
99
- for (const histogramMetric of jsonMetrics.histograms) {
100
- const existingMetric = this.metrics.histograms[histogramMetric.key];
101
- /* c8 ignore start */
102
- if (!existingMetric) {
103
- nonRegisteredMetrics.histograms.push(histogramMetric);
104
- continue;
105
- }
106
- /* c8 ignore stop */
107
- existingMetric.observe(histogramMetric.value.count);
108
- }
109
- this.registerNewMetrics(prefix, nonRegisteredMetrics);
110
- }
111
- catch (err) {
112
- /* c8 ignore start */
113
- this.logger.error(err);
114
- }
115
- /* c8 ignore stop */
116
- }
117
- registerNewMetrics(prefix, nonRegisteredMetrics) {
118
- if (!nonRegisteredMetrics.counters.length &&
119
- !nonRegisteredMetrics.gauges.length &&
120
- !nonRegisteredMetrics.histograms.length) {
121
- return;
122
- }
123
- /* c8 ignore start */
124
- const newMetrics = registerMetrics(prefix, nonRegisteredMetrics);
125
- for (const [key, value] of Object.entries(newMetrics.counters)) {
126
- this.metrics.counters[key] = value;
127
- }
128
- for (const [key, value] of Object.entries(newMetrics.gauges)) {
129
- this.metrics.gauges[key] = value;
130
- }
131
- for (const [key, value] of Object.entries(newMetrics.histograms)) {
132
- this.metrics.histograms[key] = value;
133
- }
134
- this.logger.debug({}, `Prisma metrics registered ${newMetrics.keys}`);
135
- /* c8 ignore stop */
136
- }
137
- /**
138
- * Stops the metrics collection and cleans up resources
139
- */
140
- async dispose() { }
141
- async registerMetrics(registry, { metricsPrefix }) {
142
- const jsonMetrics = await this.getJsonMetrics();
143
- const metricNames = getMetricKeys(metricsPrefix, jsonMetrics);
144
- const existingMetrics = this.getRegisteredMetrics(registry, metricNames);
145
- if (existingMetrics) {
146
- /* c8 ignore start */
147
- return existingMetrics;
148
- }
149
- /* c8 ignore stop */
150
- return registerMetrics(metricsPrefix, jsonMetrics);
151
- }
152
- /**
153
- * If metrics are already registered, we just return them to avoid triggering a Prometheus error.
154
- */
155
- getRegisteredMetrics(registry, metricNames) {
156
- if (!metricNames.length)
157
- return;
158
- /* c8 ignore start */
159
- const retrievedMetrics = registry.getMetricsAsArray();
160
- if (!retrievedMetrics.length)
161
- return;
162
- const returnValue = {
163
- counters: {},
164
- histograms: {},
165
- gauges: {},
166
- };
167
- for (const metric of retrievedMetrics) {
168
- if (!metricNames.includes(metric.name)) {
169
- continue;
170
- }
171
- if (metric.type.toString() === 'counter') {
172
- returnValue.counters[metric.name] = metric;
173
- }
174
- if (metric.type.toString() === 'gauge') {
175
- returnValue.gauges[metric.name] = metric;
176
- }
177
- if (metric.type.toString() === 'histogram') {
178
- returnValue.histograms[metric.name] = metric;
179
- }
180
- }
181
- return returnValue;
182
- /* c8 ignore stop */
183
- }
184
- getJsonMetrics() {
185
- return this.prisma.$metrics.json();
186
- }
187
- }
188
- //# sourceMappingURL=MetricsCollector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetricsCollector.js","sourceRoot":"","sources":["../../src/plugins/MetricsCollector.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { FastifyPluginCallback } from 'fastify';
2
- import 'fastify-metrics';
3
- import type { PrismaClient } from '@prisma/client';
4
- import type { MetricCollectorOptions } from './MetricsCollector.ts';
5
- declare module 'fastify' {
6
- interface FastifyInstance {
7
- prismaMetrics: {
8
- collect: () => Promise<void>;
9
- };
10
- }
11
- }
12
- export type PrismaMetricsPluginOptions = {
13
- prisma: PrismaClient;
14
- collectionOptions?: {
15
- type: 'interval';
16
- intervalInMs: number;
17
- } | {
18
- type: 'manual';
19
- };
20
- } & Partial<MetricCollectorOptions>;
21
- export declare const prismaMetricsPlugin: FastifyPluginCallback<PrismaMetricsPluginOptions>;
@@ -1,49 +0,0 @@
1
- import 'fastify-metrics';
2
- import fp from 'fastify-plugin';
3
- import { PromiseBasedCollectionScheduler } from "./CollectionScheduler.js";
4
- import { MetricsCollector } from "./MetricsCollector.js";
5
- function plugin(fastify, pluginOptions, next) {
6
- if (!fastify.metrics) {
7
- return next(new Error('No Prometheus Client found, Prisma metrics plugin requires `fastify-metrics` plugin to be registered'));
8
- }
9
- const options = {
10
- collectionOptions: {
11
- type: 'interval',
12
- intervalInMs: 5000,
13
- },
14
- ...pluginOptions,
15
- metricsPrefix: 'prisma',
16
- };
17
- try {
18
- const collector = new MetricsCollector(options.prisma, options, fastify.metrics.client.register, fastify.log);
19
- const collectFn = async () => await collector.collect(options.metricsPrefix);
20
- let scheduler;
21
- if (options.collectionOptions.type === 'interval') {
22
- scheduler = new PromiseBasedCollectionScheduler(options.collectionOptions.intervalInMs, collectFn);
23
- // Void is set so the scheduler can run indefinitely
24
- void scheduler.start();
25
- }
26
- fastify.addHook('onClose', async () => {
27
- if (scheduler) {
28
- scheduler.stop();
29
- }
30
- await collector.dispose();
31
- });
32
- fastify.decorate('prismaMetrics', {
33
- collect: collectFn,
34
- });
35
- next();
36
- /* c8 ignore start */
37
- }
38
- catch (err) {
39
- return next(err instanceof Error
40
- ? err
41
- : new Error('Unknown error in prisma-metrics-plugin', { cause: err }));
42
- }
43
- /* c8 ignore stop */
44
- }
45
- export const prismaMetricsPlugin = fp(plugin, {
46
- fastify: '5.x',
47
- name: 'prisma-metrics-plugin',
48
- });
49
- //# sourceMappingURL=prismaMetricsPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prismaMetricsPlugin.js","sourceRoot":"","sources":["../../src/plugins/prismaMetricsPlugin.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,CAAA;AAExB,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE/B,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAA;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAuBxD,SAAS,MAAM,CACb,OAAwB,EACxB,aAAyC,EACzC,IAA2B;IAE3B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CACT,IAAI,KAAK,CACP,sGAAsG,CACvG,CACF,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG;QACd,iBAAiB,EAAE;YACjB,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,IAAI;SACnB;QACD,GAAG,aAAa;QAChB,aAAa,EAAE,QAAQ;KACa,CAAA;IAEtC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,gBAAgB,CACpC,OAAO,CAAC,MAAM,EACd,OAAO,EACP,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAC/B,OAAO,CAAC,GAAG,CACZ,CAAA;QACD,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC5E,IAAI,SAA8B,CAAA;QAElC,IAAI,OAAO,CAAC,iBAAiB,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClD,SAAS,GAAG,IAAI,+BAA+B,CAC7C,OAAO,CAAC,iBAAiB,CAAC,YAAY,EACtC,SAAS,CACV,CAAA;YAED,oDAAoD;YACpD,KAAK,SAAS,CAAC,KAAK,EAAE,CAAA;QACxB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YACpC,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,IAAI,EAAE,CAAA;YAClB,CAAC;YACD,MAAM,SAAS,CAAC,OAAO,EAAE,CAAA;QAC3B,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;YAChC,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;QAEF,IAAI,EAAE,CAAA;QACN,qBAAqB;IACvB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,IAAI,CACT,GAAG,YAAY,KAAK;YAClB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,KAAK,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CACxE,CAAA;IACH,CAAC;IACD,oBAAoB;AACtB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAC9B,EAAE,CAA6B,MAAM,EAAE;IACrC,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import type { Prisma, PrismaClient } from '@prisma/client';
2
- import type { PrismaClientFactoryOptions } from './types.ts';
3
- type PrismaClientConstructor<P extends PrismaClient> = new (options: Prisma.PrismaClientOptions) => P;
4
- export declare const prismaClientFactory: <P extends PrismaClient>(PrismaClient: PrismaClientConstructor<P>, options?: PrismaClientFactoryOptions) => P;
5
- export {};
@@ -1,11 +0,0 @@
1
- const defaultOptions = {
2
- transactionOptions: { isolationLevel: 'ReadCommitted' },
3
- };
4
- export const prismaClientFactory = (PrismaClient, options = {}) => {
5
- options.transactionOptions = {
6
- ...defaultOptions.transactionOptions,
7
- ...options.transactionOptions,
8
- };
9
- return new PrismaClient(options);
10
- };
11
- //# sourceMappingURL=prismaClientFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prismaClientFactory.js","sourceRoot":"","sources":["../src/prismaClientFactory.ts"],"names":[],"mappings":"AAGA,MAAM,cAAc,GAA+B;IACjD,kBAAkB,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE;CACxD,CAAA;AAMD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,YAAwC,EACxC,UAAsC,EAAE,EACrC,EAAE;IACL,OAAO,CAAC,kBAAkB,GAAG;QAC3B,GAAG,cAAc,CAAC,kBAAkB;QACpC,GAAG,OAAO,CAAC,kBAAkB;KAC9B,CAAA;IAED,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;AAClC,CAAC,CAAA"}
@@ -1,17 +0,0 @@
1
- import type { Either } from '@lokalise/node-core';
2
- import type { Prisma, PrismaClient } from '@prisma/client';
3
- import type * as runtime from '@prisma/client/runtime/library';
4
- import type { PrismaTransactionBasicOptions, PrismaTransactionFn, PrismaTransactionOptions } from './types.ts';
5
- /**
6
- * Perform a Prisma DB transaction with automatic retries if needed.
7
- *
8
- * @template T | T extends Prisma.PrismaPromise<unknown>[]
9
- * @param {PrismaClient} prisma
10
- * @param {PrismaTransactionFn<T> | Prisma.PrismaPromise<unknown>[]} arg operation to perform into the transaction
11
- * @param {PrismaTransactionOptions | PrismaTransactionBasicOptions} options transaction configuration
12
- * @return {Promise<PrismaTransactionReturnType<T>>}
13
- */
14
- export declare const prismaTransaction: {
15
- <T, P extends PrismaClient>(prisma: P, fn: PrismaTransactionFn<T, P>, options?: PrismaTransactionOptions): Promise<Either<unknown, T>>;
16
- <T extends Prisma.PrismaPromise<unknown>[], P extends PrismaClient>(prisma: P, args: [...T], options?: PrismaTransactionBasicOptions): Promise<Either<unknown, runtime.Types.Utils.UnwrapTuple<T>>>;
17
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"prismaTransaction.js","sourceRoot":"","sources":["../src/prismaTransaction.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts DELETED
@@ -1,44 +0,0 @@
1
- import type { Either } from '@lokalise/node-core';
2
- import type { Prisma } from '@prisma/client';
3
- import type * as runtime from '@prisma/client/runtime/library';
4
- import type { CockroachDbIsolationLevel } from './isolation_level/isolationLevel.ts';
5
- type ObjectValues<T> = T[keyof T];
6
- export declare const DbDriverEnum: {
7
- readonly COCKROACHDB: "CockroachDb";
8
- };
9
- export type DbDriver = ObjectValues<typeof DbDriverEnum>;
10
- export type PrismaTransactionOptions = {
11
- dbDriver?: DbDriver;
12
- retriesAllowed?: number;
13
- baseRetryDelayMs?: number;
14
- maxRetryDelayMs?: number;
15
- maxTimeout?: number;
16
- maxWait?: number;
17
- timeout?: number;
18
- isolationLevel?: CockroachDbIsolationLevel;
19
- };
20
- export type PrismaTransactionBasicOptions = Omit<PrismaTransactionOptions, 'maxWait' | 'timeout' | 'maxTimeout'>;
21
- export type PrismaTransactionClient<P> = Omit<P, runtime.ITXClientDenyList>;
22
- export type PrismaTransactionFn<T, P> = (prisma: PrismaTransactionClient<P>) => Promise<T>;
23
- export type PrismaTransactionReturnType<T> = Either<unknown, T | runtime.Types.Utils.UnwrapTuple<Prisma.PrismaPromise<unknown>[]>>;
24
- /**
25
- * If we try to use `Omit<Prisma.PrismaClientOptions['transactionOptions'], 'isolationLevel'>` to override isolationLevel
26
- * we start to get lint errors about maxWait and timeout not being part of the transactionOptions type.
27
- *
28
- * for that reason, and as this is a temporal solution in the meantime Prisma includes ReadCommitted as a valid isolation
29
- * level for CockroachDB, we are using this type to override the transactionOptions which is basically a copy of
30
- * Prisma.PrismaClientOptions['transactionOptions']
31
- */
32
- type PrismaClientTransactionOptions = {
33
- isolationLevel?: CockroachDbIsolationLevel;
34
- maxWait?: number;
35
- timeout?: number;
36
- };
37
- /**
38
- * this is a temporal solution in the meantime Prisma includes ReadCommitted as a valid isolation level for CockroachDB
39
- */
40
- export type PrismaClientFactoryOptions = Omit<Prisma.PrismaClientOptions, 'transactionOptions'> & {
41
- dbDriver?: DbDriver;
42
- transactionOptions?: PrismaClientTransactionOptions;
43
- };
44
- export {};
package/dist/types.js DELETED
@@ -1,4 +0,0 @@
1
- export const DbDriverEnum = {
2
- COCKROACHDB: 'CockroachDb',
3
- };
4
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,WAAW,EAAE,aAAa;CAClB,CAAA"}
File without changes
File without changes
File without changes
File without changes