@stryke/prisma-trpc-generator 0.1.0 → 0.2.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.
package/README.md CHANGED
@@ -1,11 +1,73 @@
1
1
  <!-- START header -->
2
+ <!-- prettier-ignore-start -->
3
+ <!-- markdownlint-disable -->
4
+
5
+
6
+ <div align="center"><img src="https://public.storm-cdn.com/storm-banner.gif" width="100%" alt="Storm Software" /></div>
7
+ <br />
8
+
9
+ <div align="center">
10
+ <b>
11
+ <a href="https://stormsoftware.com" target="_blank">Website</a> •
12
+ <a href="https://github.com/storm-software/stryke" target="_blank">GitHub</a> •
13
+ <a href="https://discord.gg/MQ6YVzakM5">Discord</a> • <a href="https://stormsoftware.com/projects/stryke/docs" target="_blank">Docs</a> • <a href="https://stormsoftware.com/contact" target="_blank">Contact</a> •
14
+ <a href="https://github.com/storm-software/stryke/issues/new?assignees=&labels=bug&template=bug-report.yml&title=Bug Report%3A+">Report a Bug</a>
15
+ </b>
16
+ </div>
17
+
18
+ <br />
19
+ This package is part of Storm Software's **🌩️ Stryke** monorepo. Stryke packages TypeScript utility packages with shared functionality common to many Storm Software applications.
20
+
21
+ <br />
22
+
23
+ <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
24
+
25
+ [![Version](https://img.shields.io/badge/version-0.0.1-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/stryke/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
26
+
27
+ > [!IMPORTANT] This repository, and the apps, libraries, and tools contained
28
+ > within, is still in it's initial development phase. As a result, bugs and
29
+ > issues are expected with it's usage. When the main development phase
30
+ > completes, a proper release will be performed, the packages will be availible
31
+ > through NPM (and other distributions), and this message will be removed.
32
+ > However, in the meantime, please feel free to report any issues you may come
33
+ > across.
34
+
35
+ <div align="center">
36
+ <b>Be sure to ⭐ this repository on <a href="https://github.com/storm-software/stryke" target="_blank">GitHub</a> so you can keep up to date on any daily progress!</b>
37
+ </div>
38
+
39
+ <br />
40
+
41
+
42
+ <!-- markdownlint-restore -->
43
+ <!-- prettier-ignore-end -->
44
+
2
45
  <!-- END header -->
3
46
 
4
47
  # prisma-trpc-generator
5
48
 
6
- A fork of the prisma-trpc-generator code to work in ESM. Huge thanks to [prisma-trpc-generator](https://github.com/omar-dulaimi/prisma-trpc-generator) for the great work.
49
+ A fork of the prisma-trpc-generator code to work in ESM. Huge thanks to
50
+ [prisma-trpc-generator](https://github.com/omar-dulaimi/prisma-trpc-generator)
51
+ for the great work.
7
52
 
8
53
  <!-- START doctoc -->
54
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
55
+ ## Table of Contents
56
+
57
+ - [Installing](#installing)
58
+ - [Reduced Package Size](#reduced-package-size)
59
+ - [Development](#development)
60
+ - [Building](#building)
61
+ - [Running unit tests](#running-unit-tests)
62
+ - [Linting](#linting)
63
+ - [Storm Workspaces](#storm-workspaces)
64
+ - [Roadmap](#roadmap)
65
+ - [Support](#support)
66
+ - [License](#license)
67
+ - [Changelog](#changelog)
68
+ - [Contributing](#contributing)
69
+ - [Contributors](#contributors)
70
+
9
71
  <!-- END doctoc -->
10
72
 
11
73
  ## Installing
@@ -61,4 +123,173 @@ Run `nx lint prisma-trpc-generator` to run [ESLint](https://eslint.org/) on the
61
123
  package.
62
124
 
63
125
  <!-- START footer -->
126
+ <!-- prettier-ignore-start -->
127
+ <!-- markdownlint-disable -->
128
+
129
+
130
+ ## Storm Workspaces
131
+
132
+ Storm workspaces are built using
133
+ <a href="https://nx.dev/" target="_blank">Nx</a>, a set of extensible dev tools
134
+ for monorepos, which helps you develop like Google, Facebook, and Microsoft.
135
+ Building on top of Nx, the Open System provides a set of tools and patterns that
136
+ help you scale your monorepo to many teams while keeping the codebase
137
+ maintainable.
138
+
139
+ <div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
140
+ <br />
141
+
142
+ ## Roadmap
143
+
144
+ See the [open issues](https://github.com/storm-software/stryke/issues) for a
145
+ list of proposed features (and known issues).
146
+
147
+ - [Top Feature Requests](https://github.com/storm-software/stryke/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc)
148
+ (Add your votes using the 👍 reaction)
149
+ - [Top Bugs](https://github.com/storm-software/stryke/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc)
150
+ (Add your votes using the 👍 reaction)
151
+ - [Newest Bugs](https://github.com/storm-software/stryke/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
152
+
153
+ <div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
154
+ <br />
155
+
156
+ ## Support
157
+
158
+ Reach out to the maintainer at one of the following places:
159
+
160
+ - [Contact](https://stormsoftware.com/contact)
161
+ - [GitHub discussions](https://github.com/storm-software/stryke/discussions)
162
+ - <support@stormsoftware.com>
163
+
164
+ <div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
165
+ <br />
166
+
167
+ ## License
168
+
169
+ This project is licensed under the **Apache License 2.0**. Feel free to edit and
170
+ distribute this template as you like.
171
+
172
+ See [LICENSE](LICENSE) for more information.
173
+
174
+ <div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
175
+ <br />
176
+
177
+ ## Changelog
178
+
179
+ This project adheres to
180
+ [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Every release, along
181
+ with the migration instructions, is documented in the [CHANGELOG](CHANGELOG.md)
182
+ file
183
+
184
+ <div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
185
+ <br />
186
+
187
+ ## Contributing
188
+
189
+ First off, thanks for taking the time to contribute! Contributions are what
190
+ makes the open-source community such an amazing place to learn, inspire, and
191
+ create. Any contributions you make will benefit everybody else and are **greatly
192
+ appreciated**.
193
+
194
+ Please try to create bug reports that are:
195
+
196
+ - _Reproducible._ Include steps to reproduce the problem.
197
+ - _Specific._ Include as much detail as possible: which version, what
198
+ environment, etc.
199
+ - _Unique._ Do not duplicate existing opened issues.
200
+ - _Scoped to a Single Bug._ One bug per report.
201
+
202
+ Please adhere to this project's [code of conduct](.github/CODE_OF_CONDUCT.md).
203
+
204
+ You can use
205
+ [markdownlint-cli](https://github.com/storm-software/stryke/markdownlint-cli) to
206
+ check for common markdown style inconsistency.
207
+
208
+ <div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
209
+ <br />
210
+
211
+ ## Contributors
212
+
213
+ Thanks goes to these wonderful people
214
+ ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
215
+
216
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
217
+
218
+ <table>
219
+ <tbody>
220
+ <tr>
221
+ <td align="center" valign="top" width="14.28%"><a href="http://www.sullypat.com/"><img src="https://avatars.githubusercontent.com/u/99053093?v=4?s=100" width="100px;" alt="Patrick Sullivan"/><br /><sub><b>Patrick Sullivan</b></sub></a><br /><a href="#design-sullivanpj" title="Design">🎨</a> <a href="https://github.com/storm-software/stryke/commits?author=sullivanpj" title="Code">💻</a> <a href="#tool-sullivanpj" title="Tools">🔧</a> <a href="https://github.com/storm-software/stryke/commits?author=sullivanpj" title="Documentation">📖</a> <a href="https://github.com/storm-software/stryke/commits?author=sullivanpj" title="Tests">⚠️</a></td>
222
+ <td align="center" valign="top" width="14.28%"><a href="https://tylerbenning.com/"><img src="https://avatars.githubusercontent.com/u/7265547?v=4?s=100" width="100px;" alt="Tyler Benning"/><br /><sub><b>Tyler Benning</b></sub></a><br /><a href="#design-tbenning" title="Design">🎨</a></td>
223
+ <td align="center" valign="top" width="14.28%"><a href="http://stormsoftware.com"><img src="https://avatars.githubusercontent.com/u/149802440?v=4?s=100" width="100px;" alt="Stormie"/><br /><sub><b>Stormie</b></sub></a><br /><a href="#maintenance-stormie-bot" title="Maintenance">🚧</a></td>
224
+ </tr>
225
+ </tbody>
226
+ <tfoot>
227
+ <tr>
228
+ <td align="center" size="13px" colspan="7">
229
+ <img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg" alt="All Contributors">
230
+ <a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
231
+ </img>
232
+ </td>
233
+ </tr>
234
+ </tfoot>
235
+ </table>
236
+
237
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
238
+
239
+ This project follows the
240
+ [all-contributors](https://github.com/all-contributors/all-contributors)
241
+ specification. Contributions of any kind welcome!
242
+
243
+ <div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
244
+ <br />
245
+
246
+ <hr />
247
+ <br />
248
+
249
+ <div align="center">
250
+ <img src="https://public.storm-cdn.com/logo-banner.png" width="100%" alt="Storm Software" />
251
+ </div>
252
+ <br />
253
+
254
+ <div align="center">
255
+ <a href="https://stormsoftware.com" target="_blank">Website</a> • <a href="https://stormsoftware.com/contact" target="_blank">Contact</a> • <a href="https://linkedin.com/in/patrick-sullivan-865526b0" target="_blank">LinkedIn</a> • <a href="https://medium.com/@pat.joseph.sullivan" target="_blank">Medium</a> • <a href="https://github.com/storm-software" target="_blank">GitHub</a> • <a href="https://keybase.io/sullivanp" target="_blank">OpenPGP Key</a>
256
+ </div>
257
+
258
+ <div align="center">
259
+ <b>Fingerprint:</b> 1BD2 7192 7770 2549 F4C9 F238 E6AD C420 DA5C 4C2D
260
+ </div>
261
+ <br />
262
+
263
+ Storm Software is an open source software development organization and creator
264
+ of Acidic, StormStack and StormCloud.
265
+
266
+ Our mission is to make software development more accessible. Our ideal future is
267
+ one where anyone can create software without years of prior development
268
+ experience serving as a barrier to entry. We hope to achieve this via LLMs,
269
+ Generative AI, and intuitive, high-level data modeling/programming languages.
270
+
271
+ Join us on [Discord](https://discord.gg/MQ6YVzakM5) to chat with the team,
272
+ receive release notifications, ask questions, and get involved.
273
+
274
+ If this sounds interesting, and you would like to help us in creating the next
275
+ generation of development tools, please reach out on our
276
+ [website](https://stormsoftware.com/contact) or join our
277
+ [Slack channel](https://join.slack.com/t/storm-software/shared_invite/zt-2gsmk04hs-i6yhK_r6urq0dkZYAwq2pA)!
278
+
279
+ <br />
280
+
281
+ <div align="center"><a href="https://stormsoftware.com" target="_blank"><img src="https://public.storm-cdn.com/icon-fill.png" alt="Storm Software" width="200px"/></a></div>
282
+ <br />
283
+ <div align="center"><a href="https://stormsoftware.com" target="_blank"><img src="https://public.storm-cdn.com/visit-us-text.svg" alt="Visit us at stormsoftware.com" height="90px"/></a></div>
284
+
285
+ <br />
286
+
287
+ <div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
288
+ <br />
289
+ <br />
290
+
291
+
292
+ <!-- markdownlint-restore -->
293
+ <!-- prettier-ignore-end -->
294
+
64
295
  <!-- END footer -->
package/dist/helpers.cjs CHANGED
@@ -200,9 +200,9 @@ exports.getProcedureTypeByOpName = getProcedureTypeByOpName;
200
200
  exports.getInputTypeByOpName = getInputTypeByOpName;
201
201
  exports.getRouterSchemaImportByOpName = getRouterSchemaImportByOpName;
202
202
  function resolveModelsComments(r, e) {
203
- const t = /(@@Gen\.)+([A-z])+(\()+(.+)+(\))/,
204
- a = /\.+([A-Z])+\(+/i,
205
- n = /\(+([A-Z])+:+(.+)+\)/i;
203
+ const t = /(?:@@Gen\.)+[A-z]+\(.+\)/,
204
+ a = /\.+[A-Z]+\(+/i,
205
+ n = /\(+[A-Z]+:.+\)/i;
206
206
  for (const s of r) if (s.documentation) {
207
207
  const o = s.documentation?.match(t)?.[0];
208
208
  if (o?.match(a)?.[0]?.slice(1, -1) !== "model") continue;
package/dist/helpers.mjs CHANGED
@@ -23,4 +23,4 @@ import{parseEnvValue as l}from"@prisma/internals";import p from"./utils/getRelat
23
23
  const ${e} = await ctx.prisma.${y(a)}.${n.replace("One","")}(${c});
24
24
  return ${e};
25
25
  }),`)}export function generateRouterSchemaImports(r,e,t){r.addStatements([...new Set(t.map(a=>getRouterSchemaImportByOpName(a,e)))].join(`
26
- `))}export const getRouterSchemaImportByOpName=(r,e)=>{const t=r.replace("OrThrow",""),a=getInputTypeByOpName(t,e);return a?`import { ${a} } from "../schemas/${t}${e}.schema"; `:""},getInputTypeByOpName=(r,e)=>{let t;switch(r){case"findUnique":t=`${e}FindUniqueSchema`;break;case"findFirst":t=`${e}FindFirstSchema`;break;case"findMany":t=`${e}FindManySchema`;break;case"findRaw":t=`${e}FindRawObjectSchema`;break;case"createOne":t=`${e}CreateOneSchema`;break;case"createMany":t=`${e}CreateManySchema`;break;case"deleteOne":t=`${e}DeleteOneSchema`;break;case"updateOne":t=`${e}UpdateOneSchema`;break;case"deleteMany":t=`${e}DeleteManySchema`;break;case"updateMany":t=`${e}UpdateManySchema`;break;case"upsertOne":t=`${e}UpsertSchema`;break;case"aggregate":t=`${e}AggregateSchema`;break;case"aggregateRaw":t=`${e}AggregateRawObjectSchema`;break;case"groupBy":t=`${e}GroupBySchema`;break;default:console.log("getInputTypeByOpName: ",{opName:r,modelName:e})}return t},getProcedureTypeByOpName=r=>{let e;switch(r){case"findUnique":case"findFirst":case"findMany":case"findRaw":case"aggregate":case"aggregateRaw":case"groupBy":e="query";break;case"createOne":case"createMany":case"deleteOne":case"updateOne":case"deleteMany":case"updateMany":case"upsertOne":e="mutation";break;default:console.log("getProcedureTypeByOpName: ",{opName:r})}return e};export function resolveModelsComments(r,e){const t=/(@@Gen\.)+([A-z])+(\()+(.+)+(\))/,a=/\.+([A-Z])+\(+/i,n=/\(+([A-Z])+:+(.+)+\)/i;for(const s of r)if(s.documentation){const o=s.documentation?.match(t)?.[0];if(o?.match(a)?.[0]?.slice(1,-1)!=="model")continue;const d=o?.match(n)?.[0]?.slice(1,-1),h={};if(d){const u=d.split(":").map(i=>i.trim()).map(i=>i.startsWith("[")?i:i.split(",")).flat().map(i=>i.trim());for(let i=0;i<u.length;i+=2){const g=u[i],w=u[i+1];h[g]=JSON.parse(w)}}h.hide&&e.push(s.name)}}
26
+ `))}export const getRouterSchemaImportByOpName=(r,e)=>{const t=r.replace("OrThrow",""),a=getInputTypeByOpName(t,e);return a?`import { ${a} } from "../schemas/${t}${e}.schema"; `:""},getInputTypeByOpName=(r,e)=>{let t;switch(r){case"findUnique":t=`${e}FindUniqueSchema`;break;case"findFirst":t=`${e}FindFirstSchema`;break;case"findMany":t=`${e}FindManySchema`;break;case"findRaw":t=`${e}FindRawObjectSchema`;break;case"createOne":t=`${e}CreateOneSchema`;break;case"createMany":t=`${e}CreateManySchema`;break;case"deleteOne":t=`${e}DeleteOneSchema`;break;case"updateOne":t=`${e}UpdateOneSchema`;break;case"deleteMany":t=`${e}DeleteManySchema`;break;case"updateMany":t=`${e}UpdateManySchema`;break;case"upsertOne":t=`${e}UpsertSchema`;break;case"aggregate":t=`${e}AggregateSchema`;break;case"aggregateRaw":t=`${e}AggregateRawObjectSchema`;break;case"groupBy":t=`${e}GroupBySchema`;break;default:console.log("getInputTypeByOpName: ",{opName:r,modelName:e})}return t},getProcedureTypeByOpName=r=>{let e;switch(r){case"findUnique":case"findFirst":case"findMany":case"findRaw":case"aggregate":case"aggregateRaw":case"groupBy":e="query";break;case"createOne":case"createMany":case"deleteOne":case"updateOne":case"deleteMany":case"updateMany":case"upsertOne":e="mutation";break;default:console.log("getProcedureTypeByOpName: ",{opName:r})}return e};export function resolveModelsComments(r,e){const t=/(?:@@Gen\.)+[A-z]+\(.+\)/,a=/\.+[A-Z]+\(+/i,n=/\(+[A-Z]+:.+\)/i;for(const s of r)if(s.documentation){const o=s.documentation?.match(t)?.[0];if(o?.match(a)?.[0]?.slice(1,-1)!=="model")continue;const d=o?.match(n)?.[0]?.slice(1,-1),h={};if(d){const u=d.split(":").map(i=>i.trim()).map(i=>i.startsWith("[")?i:i.split(",")).flat().map(i=>i.trim());for(let i=0;i<u.length;i+=2){const g=u[i],w=u[i+1];h[g]=JSON.parse(w)}}h.hide&&e.push(s.name)}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stryke/prisma-trpc-generator",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "description": "A fork of the prisma-trpc-generator code to work in ESM.",
6
6
  "repository": {
@@ -9,6 +9,11 @@
9
9
  "directory": "packages/prisma-trpc-generator"
10
10
  },
11
11
  "private": false,
12
+ "bin": {
13
+ "stryke-prisma-trpc-generator": "dist/generator.mjs",
14
+ "stryke-prisma-trpc-generator-cjs": "dist/generator.cjs",
15
+ "stryke-prisma-trpc-generator-mjs": "dist/generator.mjs"
16
+ },
12
17
  "dependencies": {
13
18
  "@prisma/generator-helper": "^6.5.0",
14
19
  "@prisma/internals": "^6.5.0",