@stryke/prisma-trpc-generator 0.3.0 → 0.3.2

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.
@@ -676,8 +676,159 @@ init_cjs_shims();
676
676
 
677
677
  // src/prisma-generator.ts
678
678
  init_cjs_shims();
679
- var import_node_fs6 = require("node:fs");
680
- var import_node_path7 = __toESM(require("node:path"), 1);
679
+
680
+ // ../fs/src/helpers.ts
681
+ init_cjs_shims();
682
+
683
+ // ../path/src/exists.ts
684
+ init_cjs_shims();
685
+ var import_promises = require("node:fs/promises");
686
+ var exists = /* @__PURE__ */ __name(async (filePath) => {
687
+ return (0, import_promises.access)(filePath, import_promises.constants.F_OK).then(() => true).catch(() => false);
688
+ }, "exists");
689
+
690
+ // ../fs/src/helpers.ts
691
+ var import_promises2 = require("node:fs/promises");
692
+ async function createDirectory(path6) {
693
+ if (await exists(path6)) {
694
+ return;
695
+ }
696
+ return (0, import_promises2.mkdir)(path6, {
697
+ recursive: true
698
+ });
699
+ }
700
+ __name(createDirectory, "createDirectory");
701
+
702
+ // ../path/src/join-paths.ts
703
+ init_cjs_shims();
704
+ var _DRIVE_LETTER_START_RE = /^[A-Z]:\//i;
705
+ function normalizeWindowsPath(input = "") {
706
+ if (!input) {
707
+ return input;
708
+ }
709
+ return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase());
710
+ }
711
+ __name(normalizeWindowsPath, "normalizeWindowsPath");
712
+ var _UNC_REGEX = /^[/\\]{2}/;
713
+ var _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i;
714
+ var _DRIVE_LETTER_RE = /^[A-Z]:$/i;
715
+ var isAbsolute = /* @__PURE__ */ __name(function(p) {
716
+ return _IS_ABSOLUTE_RE.test(p);
717
+ }, "isAbsolute");
718
+ var correctPaths = /* @__PURE__ */ __name(function(path6) {
719
+ if (!path6 || path6.length === 0) {
720
+ return ".";
721
+ }
722
+ path6 = normalizeWindowsPath(path6);
723
+ const isUNCPath = path6.match(_UNC_REGEX);
724
+ const isPathAbsolute = isAbsolute(path6);
725
+ const trailingSeparator = path6[path6.length - 1] === "/";
726
+ path6 = normalizeString(path6, !isPathAbsolute);
727
+ if (path6.length === 0) {
728
+ if (isPathAbsolute) {
729
+ return "/";
730
+ }
731
+ return trailingSeparator ? "./" : ".";
732
+ }
733
+ if (trailingSeparator) {
734
+ path6 += "/";
735
+ }
736
+ if (_DRIVE_LETTER_RE.test(path6)) {
737
+ path6 += "/";
738
+ }
739
+ if (isUNCPath) {
740
+ if (!isPathAbsolute) {
741
+ return `//./${path6}`;
742
+ }
743
+ return `//${path6}`;
744
+ }
745
+ return isPathAbsolute && !isAbsolute(path6) ? `/${path6}` : path6;
746
+ }, "correctPaths");
747
+ var joinPaths = /* @__PURE__ */ __name(function(...segments) {
748
+ let path6 = "";
749
+ for (const seg of segments) {
750
+ if (!seg) {
751
+ continue;
752
+ }
753
+ if (path6.length > 0) {
754
+ const pathTrailing = path6[path6.length - 1] === "/";
755
+ const segLeading = seg[0] === "/";
756
+ const both = pathTrailing && segLeading;
757
+ if (both) {
758
+ path6 += seg.slice(1);
759
+ } else {
760
+ path6 += pathTrailing || segLeading ? seg : `/${seg}`;
761
+ }
762
+ } else {
763
+ path6 += seg;
764
+ }
765
+ }
766
+ return correctPaths(path6);
767
+ }, "joinPaths");
768
+ function normalizeString(path6, allowAboveRoot) {
769
+ let res = "";
770
+ let lastSegmentLength = 0;
771
+ let lastSlash = -1;
772
+ let dots = 0;
773
+ let char = null;
774
+ for (let index = 0; index <= path6.length; ++index) {
775
+ if (index < path6.length) {
776
+ char = path6[index];
777
+ } else if (char === "/") {
778
+ break;
779
+ } else {
780
+ char = "/";
781
+ }
782
+ if (char === "/") {
783
+ if (lastSlash === index - 1 || dots === 1) {
784
+ } else if (dots === 2) {
785
+ if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== "." || res[res.length - 2] !== ".") {
786
+ if (res.length > 2) {
787
+ const lastSlashIndex = res.lastIndexOf("/");
788
+ if (lastSlashIndex === -1) {
789
+ res = "";
790
+ lastSegmentLength = 0;
791
+ } else {
792
+ res = res.slice(0, lastSlashIndex);
793
+ lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
794
+ }
795
+ lastSlash = index;
796
+ dots = 0;
797
+ continue;
798
+ } else if (res.length > 0) {
799
+ res = "";
800
+ lastSegmentLength = 0;
801
+ lastSlash = index;
802
+ dots = 0;
803
+ continue;
804
+ }
805
+ }
806
+ if (allowAboveRoot) {
807
+ res += res.length > 0 ? "/.." : "..";
808
+ lastSegmentLength = 2;
809
+ }
810
+ } else {
811
+ if (res.length > 0) {
812
+ res += `/${path6.slice(lastSlash + 1, index)}`;
813
+ } else {
814
+ res = path6.slice(lastSlash + 1, index);
815
+ }
816
+ lastSegmentLength = index - lastSlash - 1;
817
+ }
818
+ lastSlash = index;
819
+ dots = 0;
820
+ } else if (char === "." && dots !== -1) {
821
+ ++dots;
822
+ } else {
823
+ dots = -1;
824
+ }
825
+ }
826
+ return res;
827
+ }
828
+ __name(normalizeString, "normalizeString");
829
+
830
+ // src/prisma-generator.ts
831
+ var import_node_path6 = __toESM(require("node:path"), 1);
681
832
  var import_pluralize = __toESM(require_pluralize(), 1);
682
833
 
683
834
  // src/config.ts
@@ -1045,8 +1196,8 @@ function getErrorMap() {
1045
1196
  }
1046
1197
  __name(getErrorMap, "getErrorMap");
1047
1198
  var makeIssue = /* @__PURE__ */ __name((params) => {
1048
- const { data, path: path7, errorMaps, issueData } = params;
1049
- const fullPath = [...path7, ...issueData.path || []];
1199
+ const { data, path: path6, errorMaps, issueData } = params;
1200
+ const fullPath = [...path6, ...issueData.path || []];
1050
1201
  const fullIssue = {
1051
1202
  ...issueData,
1052
1203
  path: fullPath
@@ -1180,11 +1331,11 @@ var ParseInputLazyPath = class {
1180
1331
  static {
1181
1332
  __name(this, "ParseInputLazyPath");
1182
1333
  }
1183
- constructor(parent, value, path7, key) {
1334
+ constructor(parent, value, path6, key) {
1184
1335
  this._cachedPath = [];
1185
1336
  this.parent = parent;
1186
1337
  this.data = value;
1187
- this._path = path7;
1338
+ this._path = path6;
1188
1339
  this._key = key;
1189
1340
  }
1190
1341
  get path() {
@@ -4956,134 +5107,6 @@ init_cjs_shims();
4956
5107
  // ../env/src/get-env-paths.ts
4957
5108
  init_cjs_shims();
4958
5109
 
4959
- // ../path/src/join-paths.ts
4960
- init_cjs_shims();
4961
- var _DRIVE_LETTER_START_RE = /^[A-Z]:\//i;
4962
- function normalizeWindowsPath(input = "") {
4963
- if (!input) {
4964
- return input;
4965
- }
4966
- return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase());
4967
- }
4968
- __name(normalizeWindowsPath, "normalizeWindowsPath");
4969
- var _UNC_REGEX = /^[/\\]{2}/;
4970
- var _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i;
4971
- var _DRIVE_LETTER_RE = /^[A-Z]:$/i;
4972
- var isAbsolute = /* @__PURE__ */ __name(function(p) {
4973
- return _IS_ABSOLUTE_RE.test(p);
4974
- }, "isAbsolute");
4975
- var correctPaths = /* @__PURE__ */ __name(function(path7) {
4976
- if (!path7 || path7.length === 0) {
4977
- return ".";
4978
- }
4979
- path7 = normalizeWindowsPath(path7);
4980
- const isUNCPath = path7.match(_UNC_REGEX);
4981
- const isPathAbsolute = isAbsolute(path7);
4982
- const trailingSeparator = path7[path7.length - 1] === "/";
4983
- path7 = normalizeString(path7, !isPathAbsolute);
4984
- if (path7.length === 0) {
4985
- if (isPathAbsolute) {
4986
- return "/";
4987
- }
4988
- return trailingSeparator ? "./" : ".";
4989
- }
4990
- if (trailingSeparator) {
4991
- path7 += "/";
4992
- }
4993
- if (_DRIVE_LETTER_RE.test(path7)) {
4994
- path7 += "/";
4995
- }
4996
- if (isUNCPath) {
4997
- if (!isPathAbsolute) {
4998
- return `//./${path7}`;
4999
- }
5000
- return `//${path7}`;
5001
- }
5002
- return isPathAbsolute && !isAbsolute(path7) ? `/${path7}` : path7;
5003
- }, "correctPaths");
5004
- var joinPaths = /* @__PURE__ */ __name(function(...segments) {
5005
- let path7 = "";
5006
- for (const seg of segments) {
5007
- if (!seg) {
5008
- continue;
5009
- }
5010
- if (path7.length > 0) {
5011
- const pathTrailing = path7[path7.length - 1] === "/";
5012
- const segLeading = seg[0] === "/";
5013
- const both = pathTrailing && segLeading;
5014
- if (both) {
5015
- path7 += seg.slice(1);
5016
- } else {
5017
- path7 += pathTrailing || segLeading ? seg : `/${seg}`;
5018
- }
5019
- } else {
5020
- path7 += seg;
5021
- }
5022
- }
5023
- return correctPaths(path7);
5024
- }, "joinPaths");
5025
- function normalizeString(path7, allowAboveRoot) {
5026
- let res = "";
5027
- let lastSegmentLength = 0;
5028
- let lastSlash = -1;
5029
- let dots = 0;
5030
- let char = null;
5031
- for (let index = 0; index <= path7.length; ++index) {
5032
- if (index < path7.length) {
5033
- char = path7[index];
5034
- } else if (char === "/") {
5035
- break;
5036
- } else {
5037
- char = "/";
5038
- }
5039
- if (char === "/") {
5040
- if (lastSlash === index - 1 || dots === 1) {
5041
- } else if (dots === 2) {
5042
- if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== "." || res[res.length - 2] !== ".") {
5043
- if (res.length > 2) {
5044
- const lastSlashIndex = res.lastIndexOf("/");
5045
- if (lastSlashIndex === -1) {
5046
- res = "";
5047
- lastSegmentLength = 0;
5048
- } else {
5049
- res = res.slice(0, lastSlashIndex);
5050
- lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
5051
- }
5052
- lastSlash = index;
5053
- dots = 0;
5054
- continue;
5055
- } else if (res.length > 0) {
5056
- res = "";
5057
- lastSegmentLength = 0;
5058
- lastSlash = index;
5059
- dots = 0;
5060
- continue;
5061
- }
5062
- }
5063
- if (allowAboveRoot) {
5064
- res += res.length > 0 ? "/.." : "..";
5065
- lastSegmentLength = 2;
5066
- }
5067
- } else {
5068
- if (res.length > 0) {
5069
- res += `/${path7.slice(lastSlash + 1, index)}`;
5070
- } else {
5071
- res = path7.slice(lastSlash + 1, index);
5072
- }
5073
- lastSegmentLength = index - lastSlash - 1;
5074
- }
5075
- lastSlash = index;
5076
- dots = 0;
5077
- } else if (char === "." && dots !== -1) {
5078
- ++dots;
5079
- } else {
5080
- dots = -1;
5081
- }
5082
- }
5083
- return res;
5084
- }
5085
- __name(normalizeString, "normalizeString");
5086
-
5087
5110
  // ../string-format/src/title-case.ts
5088
5111
  init_cjs_shims();
5089
5112
 
@@ -5297,34 +5320,34 @@ __name2(normalizeWindowsPath2, "normalizeWindowsPath");
5297
5320
  var _UNC_REGEX2 = /^[/\\]{2}/;
5298
5321
  var _IS_ABSOLUTE_RE2 = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;
5299
5322
  var _DRIVE_LETTER_RE2 = /^[A-Za-z]:$/;
5300
- var correctPaths2 = /* @__PURE__ */ __name2(function(path7) {
5301
- if (!path7 || path7.length === 0) {
5323
+ var correctPaths2 = /* @__PURE__ */ __name2(function(path6) {
5324
+ if (!path6 || path6.length === 0) {
5302
5325
  return ".";
5303
5326
  }
5304
- path7 = normalizeWindowsPath2(path7);
5305
- const isUNCPath = path7.match(_UNC_REGEX2);
5306
- const isPathAbsolute = isAbsolute2(path7);
5307
- const trailingSeparator = path7[path7.length - 1] === "/";
5308
- path7 = normalizeString2(path7, !isPathAbsolute);
5309
- if (path7.length === 0) {
5327
+ path6 = normalizeWindowsPath2(path6);
5328
+ const isUNCPath = path6.match(_UNC_REGEX2);
5329
+ const isPathAbsolute = isAbsolute2(path6);
5330
+ const trailingSeparator = path6[path6.length - 1] === "/";
5331
+ path6 = normalizeString2(path6, !isPathAbsolute);
5332
+ if (path6.length === 0) {
5310
5333
  if (isPathAbsolute) {
5311
5334
  return "/";
5312
5335
  }
5313
5336
  return trailingSeparator ? "./" : ".";
5314
5337
  }
5315
5338
  if (trailingSeparator) {
5316
- path7 += "/";
5339
+ path6 += "/";
5317
5340
  }
5318
- if (_DRIVE_LETTER_RE2.test(path7)) {
5319
- path7 += "/";
5341
+ if (_DRIVE_LETTER_RE2.test(path6)) {
5342
+ path6 += "/";
5320
5343
  }
5321
5344
  if (isUNCPath) {
5322
5345
  if (!isPathAbsolute) {
5323
- return `//./${path7}`;
5346
+ return `//./${path6}`;
5324
5347
  }
5325
- return `//${path7}`;
5348
+ return `//${path6}`;
5326
5349
  }
5327
- return isPathAbsolute && !isAbsolute2(path7) ? `/${path7}` : path7;
5350
+ return isPathAbsolute && !isAbsolute2(path6) ? `/${path6}` : path6;
5328
5351
  }, "correctPaths");
5329
5352
  function cwd() {
5330
5353
  if (typeof process !== "undefined" && typeof process.cwd === "function") {
@@ -5334,15 +5357,15 @@ function cwd() {
5334
5357
  }
5335
5358
  __name(cwd, "cwd");
5336
5359
  __name2(cwd, "cwd");
5337
- function normalizeString2(path7, allowAboveRoot) {
5360
+ function normalizeString2(path6, allowAboveRoot) {
5338
5361
  let res = "";
5339
5362
  let lastSegmentLength = 0;
5340
5363
  let lastSlash = -1;
5341
5364
  let dots = 0;
5342
5365
  let char = null;
5343
- for (let index = 0; index <= path7.length; ++index) {
5344
- if (index < path7.length) {
5345
- char = path7[index];
5366
+ for (let index = 0; index <= path6.length; ++index) {
5367
+ if (index < path6.length) {
5368
+ char = path6[index];
5346
5369
  } else if (char === "/") {
5347
5370
  break;
5348
5371
  } else {
@@ -5378,9 +5401,9 @@ function normalizeString2(path7, allowAboveRoot) {
5378
5401
  }
5379
5402
  } else {
5380
5403
  if (res.length > 0) {
5381
- res += `/${path7.slice(lastSlash + 1, index)}`;
5404
+ res += `/${path6.slice(lastSlash + 1, index)}`;
5382
5405
  } else {
5383
- res = path7.slice(lastSlash + 1, index);
5406
+ res = path6.slice(lastSlash + 1, index);
5384
5407
  }
5385
5408
  lastSegmentLength = index - lastSlash - 1;
5386
5409
  }
@@ -5479,20 +5502,20 @@ init_cjs_shims();
5479
5502
  // ../path/src/is-file.ts
5480
5503
  init_cjs_shims();
5481
5504
  var import_node_fs2 = require("node:fs");
5482
- function isFile(path7, additionalPath) {
5483
- return Boolean((0, import_node_fs2.statSync)(additionalPath ? joinPaths(additionalPath, path7) : path7, {
5505
+ function isFile(path6, additionalPath) {
5506
+ return Boolean((0, import_node_fs2.statSync)(additionalPath ? joinPaths(additionalPath, path6) : path6, {
5484
5507
  throwIfNoEntry: false
5485
5508
  })?.isFile());
5486
5509
  }
5487
5510
  __name(isFile, "isFile");
5488
- function isDirectory(path7, additionalPath) {
5489
- return Boolean((0, import_node_fs2.statSync)(additionalPath ? joinPaths(additionalPath, path7) : path7, {
5511
+ function isDirectory(path6, additionalPath) {
5512
+ return Boolean((0, import_node_fs2.statSync)(additionalPath ? joinPaths(additionalPath, path6) : path6, {
5490
5513
  throwIfNoEntry: false
5491
5514
  })?.isDirectory());
5492
5515
  }
5493
5516
  __name(isDirectory, "isDirectory");
5494
- function isAbsolutePath(path7) {
5495
- return !/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i.test(path7);
5517
+ function isAbsolutePath(path6) {
5518
+ return !/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i.test(path6);
5496
5519
  }
5497
5520
  __name(isAbsolutePath, "isAbsolutePath");
5498
5521
 
@@ -5505,15 +5528,15 @@ function normalizeWindowsPath3(input = "") {
5505
5528
  return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE3, (r) => r.toUpperCase());
5506
5529
  }
5507
5530
  __name(normalizeWindowsPath3, "normalizeWindowsPath");
5508
- function normalizeString3(path7, allowAboveRoot) {
5531
+ function normalizeString3(path6, allowAboveRoot) {
5509
5532
  let res = "";
5510
5533
  let lastSegmentLength = 0;
5511
5534
  let lastSlash = -1;
5512
5535
  let dots = 0;
5513
5536
  let char = null;
5514
- for (let index = 0; index <= path7.length; ++index) {
5515
- if (index < path7.length) {
5516
- char = path7[index];
5537
+ for (let index = 0; index <= path6.length; ++index) {
5538
+ if (index < path6.length) {
5539
+ char = path6[index];
5517
5540
  } else if (char === "/") {
5518
5541
  break;
5519
5542
  } else {
@@ -5549,9 +5572,9 @@ function normalizeString3(path7, allowAboveRoot) {
5549
5572
  }
5550
5573
  } else {
5551
5574
  if (res.length > 0) {
5552
- res += `/${path7.slice(lastSlash + 1, index)}`;
5575
+ res += `/${path6.slice(lastSlash + 1, index)}`;
5553
5576
  } else {
5554
- res = path7.slice(lastSlash + 1, index);
5577
+ res = path6.slice(lastSlash + 1, index);
5555
5578
  }
5556
5579
  lastSegmentLength = index - lastSlash - 1;
5557
5580
  }
@@ -5568,17 +5591,17 @@ function normalizeString3(path7, allowAboveRoot) {
5568
5591
  __name(normalizeString3, "normalizeString");
5569
5592
 
5570
5593
  // ../path/src/file-path-fns.ts
5571
- function resolvePath(path7, cwd2 = getWorkspaceRoot()) {
5572
- const paths = normalizeWindowsPath3(path7).split("/");
5594
+ function resolvePath(path6, cwd2 = getWorkspaceRoot()) {
5595
+ const paths = normalizeWindowsPath3(path6).split("/");
5573
5596
  let resolvedPath = "";
5574
5597
  let resolvedAbsolute = false;
5575
5598
  for (let index = paths.length - 1; index >= -1 && !resolvedAbsolute; index--) {
5576
- const path8 = index >= 0 ? paths[index] : cwd2;
5577
- if (!path8 || path8.length === 0) {
5599
+ const path7 = index >= 0 ? paths[index] : cwd2;
5600
+ if (!path7 || path7.length === 0) {
5578
5601
  continue;
5579
5602
  }
5580
- resolvedPath = joinPaths(path8, resolvedPath);
5581
- resolvedAbsolute = isAbsolutePath(path8);
5603
+ resolvedPath = joinPaths(path7, resolvedPath);
5604
+ resolvedAbsolute = isAbsolutePath(path7);
5582
5605
  }
5583
5606
  resolvedPath = normalizeString3(resolvedPath, !resolvedAbsolute);
5584
5607
  if (resolvedAbsolute && !isAbsolutePath(resolvedPath)) {
@@ -5588,13 +5611,13 @@ function resolvePath(path7, cwd2 = getWorkspaceRoot()) {
5588
5611
  }
5589
5612
  __name(resolvePath, "resolvePath");
5590
5613
  function resolvePaths(...paths) {
5591
- return resolvePath(joinPaths(...paths.map((path7) => normalizeWindowsPath3(path7))));
5614
+ return resolvePath(joinPaths(...paths.map((path6) => normalizeWindowsPath3(path6))));
5592
5615
  }
5593
5616
  __name(resolvePaths, "resolvePaths");
5594
5617
 
5595
5618
  // ../path/src/get-parent-path.ts
5596
- var resolveParentPath = /* @__PURE__ */ __name((path7) => {
5597
- return resolvePaths(path7, "..");
5619
+ var resolveParentPath = /* @__PURE__ */ __name((path6) => {
5620
+ return resolvePaths(path6, "..");
5598
5621
  }, "resolveParentPath");
5599
5622
  var getParentPath = /* @__PURE__ */ __name((name, cwd2, options) => {
5600
5623
  const ignoreCase = options?.ignoreCase ?? true;
@@ -6075,10 +6098,21 @@ var constructShield = /* @__PURE__ */ __name(async ({ queries, mutations, subscr
6075
6098
  return shieldText;
6076
6099
  }, "constructShield");
6077
6100
 
6078
- // src/prisma-shield-generator.ts
6101
+ // src/project.ts
6079
6102
  init_cjs_shims();
6080
- var import_node_fs5 = require("node:fs");
6081
- var import_node_path6 = __toESM(require("node:path"), 1);
6103
+ var import_ts_morph = require("ts-morph");
6104
+ var compilerOptions = {
6105
+ target: import_ts_morph.ScriptTarget.ESNext,
6106
+ module: import_ts_morph.ModuleKind.ESNext,
6107
+ emitDecoratorMetadata: true,
6108
+ experimentalDecorators: true,
6109
+ esModuleInterop: true
6110
+ };
6111
+ var project = new import_ts_morph.Project({
6112
+ compilerOptions: {
6113
+ ...compilerOptions
6114
+ }
6115
+ });
6082
6116
 
6083
6117
  // src/utils/remove-dir.ts
6084
6118
  init_cjs_shims();
@@ -6136,80 +6170,9 @@ var writeFileSafely = /* @__PURE__ */ __name(async (writeLocation, content) => {
6136
6170
  import_node_fs4.default.writeFileSync(writeLocation, await formatFile(content));
6137
6171
  }, "writeFileSafely");
6138
6172
 
6139
- // src/prisma-shield-generator.ts
6140
- async function generateShield(options) {
6141
- const internals = await getPrismaInternals();
6142
- const outputDir = internals.parseEnvValue(options.generator.output);
6143
- const results = configSchema.safeParse(options.generator.config);
6144
- if (!results.success) throw new Error("Invalid options passed");
6145
- const config = results.data;
6146
- await import_node_fs5.promises.mkdir(outputDir, {
6147
- recursive: true
6148
- });
6149
- await removeDir(outputDir, true);
6150
- const prismaClientProvider = options.otherGenerators.find((it) => internals.parseEnvValue(it.provider) === "prisma-client-js");
6151
- const prismaClientDmmf = await internals.getDMMF({
6152
- datamodel: options.datamodel,
6153
- previewFeatures: prismaClientProvider?.previewFeatures
6154
- });
6155
- const queries = [];
6156
- const mutations = [];
6157
- const subscriptions = [];
6158
- prismaClientDmmf.mappings.modelOperations.forEach((modelOperation) => {
6159
- const { model: _model, plural: _plural, ...operations } = modelOperation;
6160
- for (const [opType, opNameWithModel] of Object.entries(operations)) {
6161
- if ([
6162
- "findUnique",
6163
- "findFirst",
6164
- "findMany",
6165
- "aggregate",
6166
- "groupBy"
6167
- ].includes(opType)) {
6168
- queries.push(opNameWithModel);
6169
- }
6170
- if ([
6171
- "createOne",
6172
- "deleteOne",
6173
- "updateOne",
6174
- "deleteMany",
6175
- "updateMany",
6176
- "upsertOne"
6177
- ].includes(opType)) {
6178
- mutations.push(opNameWithModel);
6179
- }
6180
- }
6181
- });
6182
- queries.sort();
6183
- mutations.sort();
6184
- subscriptions.sort();
6185
- const shieldText = constructShield({
6186
- queries,
6187
- mutations,
6188
- subscriptions
6189
- }, config, options);
6190
- await writeFileSafely(import_node_path6.default.join(outputDir, "shield.ts"), shieldText);
6191
- }
6192
- __name(generateShield, "generateShield");
6193
-
6194
- // src/project.ts
6195
- init_cjs_shims();
6196
- var import_ts_morph = require("ts-morph");
6197
- var compilerOptions = {
6198
- target: import_ts_morph.ScriptTarget.ESNext,
6199
- module: import_ts_morph.ModuleKind.ESNext,
6200
- emitDecoratorMetadata: true,
6201
- experimentalDecorators: true,
6202
- esModuleInterop: true
6203
- };
6204
- var project = new import_ts_morph.Project({
6205
- compilerOptions: {
6206
- ...compilerOptions
6207
- }
6208
- });
6209
-
6210
6173
  // src/prisma-generator.ts
6211
6174
  async function generate(options) {
6212
- console.log("[STORM]: Running the Storm Software - Prisma tRPC generator with options: \n", JSON.stringify(options, null, 2));
6175
+ console.log("[STORM]: Running the Storm Software - Prisma tRPC generator");
6213
6176
  const internals = await getPrismaInternals();
6214
6177
  console.log(`[STORM]: Validating configuration options`);
6215
6178
  const outputDir = internals.parseEnvValue(options.generator.output);
@@ -6220,13 +6183,12 @@ async function generate(options) {
6220
6183
  const config = results.data;
6221
6184
  const consoleLog = /* @__PURE__ */ __name((message) => {
6222
6185
  if (config.debug) {
6223
- console.log(`[STORM]: ${message}`);
6186
+ console.log(`[STORM]: ${message}
6187
+ `);
6224
6188
  }
6225
6189
  }, "consoleLog");
6226
6190
  consoleLog(`Preparing output directory: ${outputDir}`);
6227
- await import_node_fs6.promises.mkdir(outputDir, {
6228
- recursive: true
6229
- });
6191
+ await createDirectory(outputDir);
6230
6192
  await removeDir(outputDir, true);
6231
6193
  if (config.withZod !== false) {
6232
6194
  consoleLog("Generating Zod schemas");
@@ -6235,17 +6197,68 @@ async function generate(options) {
6235
6197
  } else {
6236
6198
  consoleLog("Skipping Zod schemas generation");
6237
6199
  }
6200
+ consoleLog("Finding Prisma Client generator");
6201
+ const prismaClientProvider = options.otherGenerators.find((it) => internals.parseEnvValue(it.provider) === "prisma-client-js");
6202
+ if (!prismaClientProvider) {
6203
+ throw new Error("No Prisma Client generator found. Please add `prisma-client-js` to your generator list.");
6204
+ }
6205
+ consoleLog("Generating Prisma Client DMMF");
6206
+ const prismaClientDmmf = await internals.getDMMF({
6207
+ datamodel: options.datamodel,
6208
+ previewFeatures: prismaClientProvider?.previewFeatures
6209
+ });
6210
+ const modelOperations = prismaClientDmmf.mappings.modelOperations;
6211
+ const models = prismaClientDmmf.datamodel.models;
6212
+ const hiddenModels = [];
6238
6213
  if (config.withShield !== false) {
6239
6214
  consoleLog("Generating tRPC Shield");
6240
- const shieldOutputPath = import_node_path7.default.join(outputDir, "./shield");
6241
- await generateShield({
6215
+ const shieldOutputDir = joinPaths(outputDir, "shield");
6216
+ consoleLog("Preparing tRPC Shield output directory");
6217
+ await createDirectory(shieldOutputDir);
6218
+ await removeDir(shieldOutputDir, true);
6219
+ const queries = [];
6220
+ const mutations = [];
6221
+ const subscriptions = [];
6222
+ prismaClientDmmf.mappings.modelOperations.forEach((modelOperation) => {
6223
+ const { model: _model, plural: _plural, ...operations } = modelOperation;
6224
+ for (const [opType, opNameWithModel] of Object.entries(operations)) {
6225
+ if ([
6226
+ "findUnique",
6227
+ "findFirst",
6228
+ "findMany",
6229
+ "aggregate",
6230
+ "groupBy"
6231
+ ].includes(opType)) {
6232
+ queries.push(opNameWithModel);
6233
+ }
6234
+ if ([
6235
+ "createOne",
6236
+ "deleteOne",
6237
+ "updateOne",
6238
+ "deleteMany",
6239
+ "updateMany",
6240
+ "upsertOne"
6241
+ ].includes(opType)) {
6242
+ mutations.push(opNameWithModel);
6243
+ }
6244
+ }
6245
+ });
6246
+ queries.sort();
6247
+ mutations.sort();
6248
+ subscriptions.sort();
6249
+ consoleLog("Constructing tRPC Shield source file");
6250
+ const shieldText = constructShield({
6251
+ queries,
6252
+ mutations,
6253
+ subscriptions
6254
+ }, config, {
6242
6255
  ...options,
6243
6256
  generator: {
6244
6257
  ...options.generator,
6245
6258
  output: {
6246
6259
  fromEnvVar: null,
6247
6260
  ...options.generator.output,
6248
- value: shieldOutputPath
6261
+ value: shieldOutputDir
6249
6262
  },
6250
6263
  config: {
6251
6264
  ...options.generator.config,
@@ -6253,44 +6266,49 @@ async function generate(options) {
6253
6266
  }
6254
6267
  }
6255
6268
  });
6269
+ consoleLog("Saving tRPC Shield source file to disk");
6270
+ await writeFileSafely(joinPaths(shieldOutputDir, "shield.ts"), shieldText);
6256
6271
  } else {
6257
6272
  consoleLog("Skipping tRPC Shield generation");
6258
6273
  }
6259
- const prismaClientProvider = options.otherGenerators.find((it) => internals.parseEnvValue(it.provider) === "prisma-client-js");
6260
- const prismaClientDmmf = await internals.getDMMF({
6261
- datamodel: options.datamodel,
6262
- previewFeatures: prismaClientProvider?.previewFeatures
6263
- });
6264
- const modelOperations = prismaClientDmmf.mappings.modelOperations;
6265
- const models = prismaClientDmmf.datamodel.models;
6266
- const hiddenModels = [];
6274
+ consoleLog(`Generating tRPC source code for ${models.length} models`);
6267
6275
  resolveModelsComments(models, hiddenModels);
6268
- const createRouter = project.createSourceFile(import_node_path7.default.resolve(outputDir, "routers", "helpers", "createRouter.ts"), void 0, {
6276
+ const createRouter = project.createSourceFile(import_node_path6.default.resolve(outputDir, "routers", "helpers", "createRouter.ts"), void 0, {
6269
6277
  overwrite: true
6270
6278
  });
6279
+ consoleLog("Generating tRPC imports");
6271
6280
  generateRPCImport(createRouter);
6272
6281
  if (config.withShield) {
6273
6282
  await generateShieldImport(createRouter, options, config.withShield);
6274
6283
  }
6284
+ consoleLog("Generating tRPC base router");
6275
6285
  await generateBaseRouter(createRouter, config, options);
6276
6286
  createRouter.formatText({
6277
6287
  indentSize: 2
6278
6288
  });
6279
- const appRouter = project.createSourceFile(import_node_path7.default.resolve(outputDir, "routers", `index.ts`), void 0, {
6289
+ const appRouter = project.createSourceFile(import_node_path6.default.resolve(outputDir, "routers", `index.ts`), void 0, {
6280
6290
  overwrite: true
6281
6291
  });
6292
+ consoleLog("Generating tRPC router imports");
6282
6293
  generateCreateRouterImport({
6283
6294
  sourceFile: appRouter
6284
6295
  });
6285
6296
  const routerStatements = [];
6286
6297
  for (const modelOperation of modelOperations) {
6287
6298
  const { model, ...operations } = modelOperation;
6288
- if (hiddenModels.includes(model)) continue;
6299
+ if (hiddenModels.includes(model)) {
6300
+ consoleLog(`Skipping model ${model} as it is hidden`);
6301
+ continue;
6302
+ }
6289
6303
  const modelActions = Object.keys(operations).filter((opType) => config.generateModelActions.includes(opType.replace("One", "")));
6290
- if (!modelActions.length) continue;
6304
+ if (!modelActions.length) {
6305
+ consoleLog(`Skipping model ${model} as it has no actions to generate`);
6306
+ continue;
6307
+ }
6291
6308
  const plural = (0, import_pluralize.default)(model.toLowerCase());
6309
+ consoleLog(`Generating tRPC router for model ${model}`);
6292
6310
  generateRouterImport(appRouter, plural, model);
6293
- const modelRouter = project.createSourceFile(import_node_path7.default.resolve(outputDir, "routers", `${model}.router.ts`), void 0, {
6311
+ const modelRouter = project.createSourceFile(import_node_path6.default.resolve(outputDir, "routers", `${model}.router.ts`), void 0, {
6294
6312
  overwrite: true
6295
6313
  });
6296
6314
  generateCreateRouterImport({
@@ -6298,6 +6316,7 @@ async function generate(options) {
6298
6316
  config
6299
6317
  });
6300
6318
  if (config.withZod) {
6319
+ consoleLog("Generating Zod schemas imports");
6301
6320
  generateRouterSchemaImports(modelRouter, model, modelActions);
6302
6321
  }
6303
6322
  modelRouter.addStatements(
@@ -6323,7 +6342,9 @@ async function generate(options) {
6323
6342
  `
6324
6343
  ${model.toLowerCase()}: ${plural}Router`
6325
6344
  );
6345
+ consoleLog(`Generated tRPC router for model ${model} with ${modelActions.length} actions`);
6326
6346
  }
6347
+ consoleLog("Generating tRPC app router");
6327
6348
  appRouter.addStatements(
6328
6349
  /* ts */
6329
6350
  `
@@ -6333,7 +6354,9 @@ async function generate(options) {
6333
6354
  appRouter.formatText({
6334
6355
  indentSize: 2
6335
6356
  });
6357
+ consoleLog("Saving tRPC router source files to disk");
6336
6358
  await project.save();
6359
+ consoleLog("Storm Software - Prisma tRPC generator completed successfully");
6337
6360
  }
6338
6361
  __name(generate, "generate");
6339
6362