prisma-kysely 1.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.
- package/.eslintrc.json +11 -0
- package/.github/actions/pretty-pr/action.yml +9 -0
- package/.github/actions/pretty-pr/index.js +71 -0
- package/.github/actions/pretty-pr/package-lock.json +214 -0
- package/.github/actions/pretty-pr/package.json +18 -0
- package/.github/workflows/linters.yml +86 -0
- package/.github/workflows/pr_polish.yml +20 -0
- package/.github/workflows/publish.yml +20 -0
- package/.prettierignore +1 -0
- package/README.md +60 -0
- package/build.js +11 -0
- package/dist/generator.js +52 -0
- package/package.json +43 -0
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"parser": "@typescript-eslint/parser",
|
|
3
|
+
"parserOptions": {
|
|
4
|
+
"project": "./tsconfig.json"
|
|
5
|
+
},
|
|
6
|
+
"plugins": ["@typescript-eslint"],
|
|
7
|
+
"extends": ["plugin:@typescript-eslint/recommended"],
|
|
8
|
+
"rules": {
|
|
9
|
+
"@typescript-eslint/consistent-type-imports": "warn"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
const core = require('@actions/core');
|
|
2
|
+
const github = require('@actions/github');
|
|
3
|
+
const splitEmoji = require('emoji-aware').split;
|
|
4
|
+
const onlyEmoji = require('emoji-aware').onlyEmoji;
|
|
5
|
+
|
|
6
|
+
async function run() {
|
|
7
|
+
try {
|
|
8
|
+
const token = core.getInput('repo-token');
|
|
9
|
+
const { owner, repo } = github.context.repo;
|
|
10
|
+
|
|
11
|
+
const prNumber = getPrNumber();
|
|
12
|
+
|
|
13
|
+
if (!prNumber) {
|
|
14
|
+
core.setFailed('Could not get pull request number from context');
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const octokit = github.getOctokit(token);
|
|
19
|
+
|
|
20
|
+
const response = await octokit.rest.pulls.get({
|
|
21
|
+
owner,
|
|
22
|
+
repo,
|
|
23
|
+
pull_number: prNumber,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const prTitle = response.data.title;
|
|
27
|
+
|
|
28
|
+
if (hasEmoji(prTitle)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const newTitle = addEmoji(prTitle);
|
|
33
|
+
|
|
34
|
+
await octokit.rest.pulls.update({
|
|
35
|
+
owner,
|
|
36
|
+
repo,
|
|
37
|
+
pull_number: prNumber,
|
|
38
|
+
title: newTitle,
|
|
39
|
+
});
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.error(error);
|
|
42
|
+
core.setFailed(error.messsage);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function getPrNumber() {
|
|
47
|
+
const pullRequest = github.context.payload.pull_request;
|
|
48
|
+
|
|
49
|
+
if (!pullRequest) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return pullRequest.number;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function hasEmoji(text) {
|
|
57
|
+
const currentEmoji = onlyEmoji(text);
|
|
58
|
+
return currentEmoji.length !== 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function addEmoji(text) {
|
|
62
|
+
const result = emojiArray[Math.floor(Math.random() * emojiArray.length)];
|
|
63
|
+
if (!result) return text.trim();
|
|
64
|
+
return `${result} ${text.trim()}`;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const emojiPool =
|
|
68
|
+
'๐ชต๐ชต๐ชต๐ฌ๐๐
๐๐โก๏ธ๐ง ๐ง ๐ง โจโจโจโจโจ๐ฆ๐ฆ๐ฆ๐คทโโ๏ธ๐คทโโ๏ธ๐คทโโ๏ธ๐คทโโ๏ธ๐๐๐๐ช๐ช๐ช๐ช๐ฉโ๐ณ๐๐ฆท๐ฆท๐ฆท๐ง๐ง๐ง๐ง๐ฝ๐ฝ๐ฝ๐ฝ๐ฝ๐๐๐๐๐ฝ๐ผ๐ค๐ค๐ซ๐๐๐คช๐คจ๐คฌ๐คฌ๐คฌ๐ค๐๐ฅต๐ฅถ๐ถโ๐ซ๏ธ๐๐คฎ๐ค ๐ค ๐ค ๐ค๐ตโ๐ซ๐ฅด๐๐๐ฉ๐ฉ๐ฉ๐ป๐คก๐คก๐คก๐คก๐คก๐บโ ๏ธ๐๐๐๐ค๐๐๐ค๐ฆพ๐๐๐๐ฆต๐๐๐๐ฆป๐ฆป๐ซ๐ฃ๐ต๏ธโโ๏ธ๐ทโโ๏ธ๐จโ๐ง๐งโโ๏ธ๐งโโ๏ธ๐ผ๐ผ๐ผ๐ผ๐บ๐บ๐บ๐บ๐บ๐งโ๐ฆฝ๐งโ๐ฆผ๐งต๐ชข๐ชข๐ชข๐ชก๐ชก๐งข๐งข๐งข๐ฅพ๐๐ก๐ ๐ฉด๐งฃ๐ฅฝ๐ฅฝ๐ฅฝ๐๐๐๐ธ๐ธ๐ถ๐ฑ๐ญ๐น๐ฐ๐ฆ๐ป๐ผ๐ปโโ๏ธ๐จ๐ฏ๐ฆ๐ฎ๐ท๐ฝ๐ต๐๐๐๐๐๐๐๐๐ง๐ฆ๐ค๐ฃ๐ฅ๐ฆ๐ฆ๐ฆ๐ฆ
๐ฆ
๐ฆ
๐ฆ
๐ฆ๐ฆ๐บ๐๐ด๐ฆ๐๐ชฑ๐ชฑ๐ชฑ๐๐ฆ๐๐๐๐ชฐ๐ชฐ๐ชฒ๐ชณ๐ฆ๐ฆ๐ธ๐ฆ๐ข๐๐ฆ๐ฆ๐ฆ๐ฆ๐ฆ๐๐ฆ๐ฆ๐ฆ๐ฆ๐ฆ๐ฆ๐ฆ๐ ๐๐ฌ๐ณ๐๐ฆ๐ฆญ๐๐
๐๐ฆ๐ฆ๐ฆง๐ฆง๐ฆง๐ฆง๐ฆฃ๐๐ฆ๐ฆ๐ช๐ซ๐ฆ๐ฆ๐ฆฌ๐๐๐๐๐๐๐๐ฆ๐๐ฆ๐๐ฉ๐ฆฎ๐โ๐ฆบ๐๐โโฌ๐ชถ๐๐ฆ๐ฆค๐ฆ๐ฆ๐ฆ๐ฆ๐ฆ๐ฆ๐ฆข๐ฆฉ๐๐๐ฆ๐ฆจ๐ฆก๐ฆซ๐ฆฆ๐ฆฆ๐ฆฆ๐ฆฅ๐๐๐ฟ๐ฆ๐ฆ๐ฆ๐ฒ๐๐ต๐ต๐ต๐๐ณ๐๐๐๐ท๐๐พ๐ชจ๐๐น๐ฅ๐บ๐ธ๐ผ๐ป๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐ช๐ช๐ช๐ชโ๏ธโก๏ธโจ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ช๐๐๐๐๐โ๏ธโ๏ธ๐ฌโ๏ธโ๏ธ๐๐๐๐๐๐๐๐๐๐๐๐ซ๐ซ๐ซ๐ซ๐๐๐๐ฅญ๐๐ฅฅ๐ฅ๐
๐๐ฅ๐ฅฆ๐ฅฌ๐ฅ๐ถ๐ซ๐ฝ๐ฅ๐ซ๐ซ๐ง๐ง
๐ฅ๐ ๐ฅ๐ฅฏ๐ฅฏ๐ฅฏ๐๐ฅ๐ฅจ๐ง๐ฅ๐ณ๐ณ๐ณ๐ณ๐ง๐ฅ๐ง๐ฅ๐ฅฉ๐ฅฉ๐๐๐ฆด๐ญ๐๐๐๐ซ๐ฅช๐ฅ๐ง๐ฎ๐ฏ๐ซ๐ฅ๐ฅ๐ฅซ๐๐๐ฒ๐๐ฃ๐ฑ๐ฅ๐ฆช๐ค๐ค๐ค๐๐๐ฅ๐ฅ ๐ฅฎ๐ข๐จ๐ฆ๐ฅง๐ง๐ฐ๐๐ฎ๐ญ๐ฌ๐ซ๐ฟ๐ฉ๐ช๐ฐ๐ฅ๐ฏ๐ฅ๐ซ๐ต๐ง๐บ๐บ๐บ๐บ๐บ๐ป๐ฅ๐ท๐ฅ๐ธ๐น๐ง๐พ๐พ๐พ๐พ๐ง๐ฅ๐ง๐ฅก๐ฅขโฝ๏ธ๐๐ฅ๐พ๐๐๐ฅ๐ฑ๐ช๐๐๐๐๐ธ๐ธ๐ธ๐๐๐ฅ๐๐ชโณ๏ธ๐ฃ๐คฟ๐คฟ๐คฟ๐ฅ๐ฅ๐ฝ๐น๐ผ๐ท๐ช๐โท๐ฟ๐ฅโธโน๏ธโโ๏ธ๐คผ๐๏ธโโ๏ธ๐คธโโ๏ธ๐คบ๐คบ๐คบ๐คพ๐๐โโ๏ธ๐ฃ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ๐
๐๐ฉฐ๐บ๐บ๐บ๐ท๐ฅ๐ช๐ช๐ช๐ธ๐ช๐ป๐ฒ๐ฏโ๐ณ๐ฐ๐๐๐๐๐๐๐๐๐ป๐๐๐๐ต๐ฒ๐จ๐จ๐จ๐จ๐จ๐จ๐จ๐บ๐ ๐๐๐๐๐๐๐
๐๐๐๐๐โ๏ธ๐ซ๐ฌ๐ฉ๐บ๐ฐ๐๐๐๐๐๐โต๏ธ๐ค๐ฅ๐ณ๐ขโ๏ธ๐ชโฝ๏ธ๐ฆ๐บ๐๐ผ๐ฝ๐ฟ๐ฐ๐ฏ๐๐ก๐ข๐ โฒ๏ธโฑ๐๐๐โฐ๐ป๐โบ๏ธ๐๐ ๐ก๐๐ญ๐ฃ๐ค๐ช๐ซ๐ฉ๐๐โช๏ธ๐๐๐๐โฉ๐ค๐พ๐๐
๐ ๐๐๐๐๐๐๐๐โ๏ธ๐ฒ๐ปโจ๏ธ๐ฅ๐ฑ๐ฒ๐๐ฝ๐พ๐ผ๐ฅโ๏ธ๐๐๐ ๐บ๐ปโฐโณ๐๐๐๐๐๐ก๐ก๐ก๐ก๐ฆ๐ฏ๐ช๐งฏ๐งฏ๐งฏ๐งฏ๐ข๐ธ๐ธ๐ธ๐ต๐ด๐ถ๐ท๐ช๐ฐ๐ณ๐๐๐๐โ๏ธ๐ช๐งฐ๐ช๐จ๐งโ๐ ๐ช๐ฉโ๏ธ๐ชค๐ชค๐ชค๐ชค๐ชค๐งฑโ๐งฒ๐ฃ๐งจ๐ช๐ช๐กโ๏ธ๐ก๐ฌ๐ฌ๐ฌ๐ฌ๐ฌโฐ๏ธโฑ๏ธ๐บ๐ฎ๐ฟ๐งฟ๐โ๏ธ๐ญ๐ฌ๐ณ๐ณ๐ณ๐ฉบ๐๐๐ฉธ๐งฌ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐งซ๐งซ๐งซ๐งช๐งช๐ก๐งน๐ช ๐งบ๐ฝ๐ฝ๐ฝ๐ฝ๐ฝ๐ฐ๐ฟ๐๐ชฅ๐๐งฝ๐ชฃ๐งด๐งด๐งด๐๐๐๐งธ๐งธ๐ช๐๐ผ๐ช๐๐ช๐๐๐๐๐๐๐ช
๐ช
๐ช
๐๐๐ช๐ช๐ช๐๐ฎ๐๐งง๐ง๐๐ฆ๐ญ๐ฌ๐ช๐ซ๐ฎ๐ฏ๐๐๐๐๐๐๐๐๐
๐๐๐๐ณ๐๐๐ฐ๐๐๐๐๐๐๐๐๐งท๐๐๐๐๐๐๐โ๏ธ๐๐โ๏ธ๐๐โ๏ธ๐โค๏ธ๐งก๐๐๐๐ค๐คโค๏ธโ๐ฅโค๏ธโ๐ฅโค๏ธโ๐ฅโค๏ธโ๐ฅโค๏ธโ๐ฅโค๏ธโ๐ฉนโฃ๏ธ๐๐๐๐๐๐๐๐๐๐๐๐๐๐ญ๐ท๐ฏ๐ณ๐ฑ๐ฏ๐ฎโป๏ธโ๏ธ๐พ๐พ๐พโฟ๏ธ๐๐๐โ๐จ๐โฅ๏ธ๐ข๐ดโโ ๏ธ๐ณ๏ธโ๐๐ณ๏ธโ๐๐ณ๏ธโ๐๐ฆ๐ฝ๐ฆ๐ฝ๐ฆ๐ฝ๐ฆ๐ฝ๐ฆ๐ฝ๐ณ๐ต๐ฎ๐ธ๐บ๐ฆ๐ธ๐ช๐ด';
|
|
69
|
+
const emojiArray = splitEmoji(emojiPool);
|
|
70
|
+
|
|
71
|
+
run();
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pretty-pr-action",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"lockfileVersion": 1,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"@actions/core": {
|
|
8
|
+
"version": "1.8.0",
|
|
9
|
+
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.8.0.tgz",
|
|
10
|
+
"integrity": "sha512-XirM+Zo/PFlA+1h+i4bkfvagujta+LIM2AOSzPbt8JqXbbuxb1HTB+FqIyaKmue9yiCx/JIJY6pXsOl3+T8JGw==",
|
|
11
|
+
"requires": {
|
|
12
|
+
"@actions/http-client": "^1.0.11"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"@actions/github": {
|
|
16
|
+
"version": "5.0.1",
|
|
17
|
+
"resolved": "https://registry.npmjs.org/@actions/github/-/github-5.0.1.tgz",
|
|
18
|
+
"integrity": "sha512-JZGyPM9ektb8NVTTI/2gfJ9DL7Rk98tQ7OVyTlgTuaQroariRBsOnzjy0I2EarX4xUZpK88YyO503fhmjFdyAg==",
|
|
19
|
+
"requires": {
|
|
20
|
+
"@actions/http-client": "^1.0.11",
|
|
21
|
+
"@octokit/core": "^3.6.0",
|
|
22
|
+
"@octokit/plugin-paginate-rest": "^2.17.0",
|
|
23
|
+
"@octokit/plugin-rest-endpoint-methods": "^5.13.0"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"@actions/http-client": {
|
|
27
|
+
"version": "1.0.11",
|
|
28
|
+
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
|
|
29
|
+
"integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
|
|
30
|
+
"requires": {
|
|
31
|
+
"tunnel": "0.0.6"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"@octokit/auth-token": {
|
|
35
|
+
"version": "2.5.0",
|
|
36
|
+
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz",
|
|
37
|
+
"integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==",
|
|
38
|
+
"requires": {
|
|
39
|
+
"@octokit/types": "^6.0.3"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"@octokit/core": {
|
|
43
|
+
"version": "3.6.0",
|
|
44
|
+
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz",
|
|
45
|
+
"integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==",
|
|
46
|
+
"requires": {
|
|
47
|
+
"@octokit/auth-token": "^2.4.4",
|
|
48
|
+
"@octokit/graphql": "^4.5.8",
|
|
49
|
+
"@octokit/request": "^5.6.3",
|
|
50
|
+
"@octokit/request-error": "^2.0.5",
|
|
51
|
+
"@octokit/types": "^6.0.3",
|
|
52
|
+
"before-after-hook": "^2.2.0",
|
|
53
|
+
"universal-user-agent": "^6.0.0"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"@octokit/endpoint": {
|
|
57
|
+
"version": "6.0.12",
|
|
58
|
+
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz",
|
|
59
|
+
"integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==",
|
|
60
|
+
"requires": {
|
|
61
|
+
"@octokit/types": "^6.0.3",
|
|
62
|
+
"is-plain-object": "^5.0.0",
|
|
63
|
+
"universal-user-agent": "^6.0.0"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"@octokit/graphql": {
|
|
67
|
+
"version": "4.8.0",
|
|
68
|
+
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz",
|
|
69
|
+
"integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==",
|
|
70
|
+
"requires": {
|
|
71
|
+
"@octokit/request": "^5.6.0",
|
|
72
|
+
"@octokit/types": "^6.0.3",
|
|
73
|
+
"universal-user-agent": "^6.0.0"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"@octokit/openapi-types": {
|
|
77
|
+
"version": "11.2.0",
|
|
78
|
+
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz",
|
|
79
|
+
"integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA=="
|
|
80
|
+
},
|
|
81
|
+
"@octokit/plugin-paginate-rest": {
|
|
82
|
+
"version": "2.17.0",
|
|
83
|
+
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz",
|
|
84
|
+
"integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==",
|
|
85
|
+
"requires": {
|
|
86
|
+
"@octokit/types": "^6.34.0"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"@octokit/plugin-rest-endpoint-methods": {
|
|
90
|
+
"version": "5.13.0",
|
|
91
|
+
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz",
|
|
92
|
+
"integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==",
|
|
93
|
+
"requires": {
|
|
94
|
+
"@octokit/types": "^6.34.0",
|
|
95
|
+
"deprecation": "^2.3.1"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"@octokit/request": {
|
|
99
|
+
"version": "5.6.3",
|
|
100
|
+
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz",
|
|
101
|
+
"integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==",
|
|
102
|
+
"requires": {
|
|
103
|
+
"@octokit/endpoint": "^6.0.1",
|
|
104
|
+
"@octokit/request-error": "^2.1.0",
|
|
105
|
+
"@octokit/types": "^6.16.1",
|
|
106
|
+
"is-plain-object": "^5.0.0",
|
|
107
|
+
"node-fetch": "^2.6.7",
|
|
108
|
+
"universal-user-agent": "^6.0.0"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"@octokit/request-error": {
|
|
112
|
+
"version": "2.1.0",
|
|
113
|
+
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz",
|
|
114
|
+
"integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==",
|
|
115
|
+
"requires": {
|
|
116
|
+
"@octokit/types": "^6.0.3",
|
|
117
|
+
"deprecation": "^2.0.0",
|
|
118
|
+
"once": "^1.4.0"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"@octokit/types": {
|
|
122
|
+
"version": "6.34.0",
|
|
123
|
+
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz",
|
|
124
|
+
"integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==",
|
|
125
|
+
"requires": {
|
|
126
|
+
"@octokit/openapi-types": "^11.2.0"
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"before-after-hook": {
|
|
130
|
+
"version": "2.2.2",
|
|
131
|
+
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz",
|
|
132
|
+
"integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ=="
|
|
133
|
+
},
|
|
134
|
+
"deprecation": {
|
|
135
|
+
"version": "2.3.1",
|
|
136
|
+
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
|
|
137
|
+
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
|
|
138
|
+
},
|
|
139
|
+
"emoji-aware": {
|
|
140
|
+
"version": "3.1.0",
|
|
141
|
+
"resolved": "https://registry.npmjs.org/emoji-aware/-/emoji-aware-3.1.0.tgz",
|
|
142
|
+
"integrity": "sha512-YMXaS6nqEhS3SyVkGIeLvj5qmn9xEIl4fgYcN49MUdR9GfCzkmPBslxkO6AB5lKagnmWp2B0QtPWik41kPWGag==",
|
|
143
|
+
"requires": {
|
|
144
|
+
"lodash.flattendeep": "^4.4.0",
|
|
145
|
+
"parsimmon": "^1.18.1"
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"is-plain-object": {
|
|
149
|
+
"version": "5.0.0",
|
|
150
|
+
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
|
|
151
|
+
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
|
|
152
|
+
},
|
|
153
|
+
"lodash.flattendeep": {
|
|
154
|
+
"version": "4.4.0",
|
|
155
|
+
"resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
|
|
156
|
+
"integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI="
|
|
157
|
+
},
|
|
158
|
+
"node-fetch": {
|
|
159
|
+
"version": "2.6.7",
|
|
160
|
+
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
|
161
|
+
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
|
162
|
+
"requires": {
|
|
163
|
+
"whatwg-url": "^5.0.0"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"once": {
|
|
167
|
+
"version": "1.4.0",
|
|
168
|
+
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
|
169
|
+
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
|
170
|
+
"requires": {
|
|
171
|
+
"wrappy": "1"
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"parsimmon": {
|
|
175
|
+
"version": "1.18.1",
|
|
176
|
+
"resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.18.1.tgz",
|
|
177
|
+
"integrity": "sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw=="
|
|
178
|
+
},
|
|
179
|
+
"tr46": {
|
|
180
|
+
"version": "0.0.3",
|
|
181
|
+
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
|
182
|
+
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
|
183
|
+
},
|
|
184
|
+
"tunnel": {
|
|
185
|
+
"version": "0.0.6",
|
|
186
|
+
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
|
|
187
|
+
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
|
|
188
|
+
},
|
|
189
|
+
"universal-user-agent": {
|
|
190
|
+
"version": "6.0.0",
|
|
191
|
+
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
|
|
192
|
+
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
|
|
193
|
+
},
|
|
194
|
+
"webidl-conversions": {
|
|
195
|
+
"version": "3.0.1",
|
|
196
|
+
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
|
197
|
+
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
|
198
|
+
},
|
|
199
|
+
"whatwg-url": {
|
|
200
|
+
"version": "5.0.0",
|
|
201
|
+
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
|
202
|
+
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
|
203
|
+
"requires": {
|
|
204
|
+
"tr46": "~0.0.3",
|
|
205
|
+
"webidl-conversions": "^3.0.0"
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"wrappy": {
|
|
209
|
+
"version": "1.0.2",
|
|
210
|
+
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
|
211
|
+
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pretty-pr-action",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
8
|
+
"compile": "npx @vercel/ncc build index.js"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [],
|
|
11
|
+
"author": "",
|
|
12
|
+
"license": "ISC",
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@actions/core": "^1.8.0",
|
|
15
|
+
"@actions/github": "^5.0.1",
|
|
16
|
+
"emoji-aware": "^3.1.0"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
name: ๐ตโ๐ซ Sanity checks
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
types: [opened, synchronize]
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
name: ๐งช Tests
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
steps:
|
|
16
|
+
- name: ๐ Setup repo
|
|
17
|
+
uses: actions/checkout@v2
|
|
18
|
+
|
|
19
|
+
- name: ๐ Setup Node
|
|
20
|
+
uses: actions/setup-node@v2
|
|
21
|
+
with:
|
|
22
|
+
node-version: 16.x
|
|
23
|
+
cache: yarn
|
|
24
|
+
|
|
25
|
+
- name: ๐ฆ Install dependencies
|
|
26
|
+
run: yarn install
|
|
27
|
+
|
|
28
|
+
- name: ๐งช Run tests
|
|
29
|
+
run: yarn run test
|
|
30
|
+
|
|
31
|
+
typecheck:
|
|
32
|
+
name: ๐ค Type checker
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
permissions:
|
|
35
|
+
contents: read
|
|
36
|
+
steps:
|
|
37
|
+
- name: ๐ Setup repo
|
|
38
|
+
uses: actions/checkout@v2
|
|
39
|
+
|
|
40
|
+
- name: ๐ Setup Node
|
|
41
|
+
uses: actions/setup-node@v2
|
|
42
|
+
with:
|
|
43
|
+
node-version: 16.x
|
|
44
|
+
cache: yarn
|
|
45
|
+
|
|
46
|
+
- name: ๐ฆ Install dependencies
|
|
47
|
+
run: yarn install
|
|
48
|
+
|
|
49
|
+
- name: ๐ค Run type checker
|
|
50
|
+
run: yarn run typecheck
|
|
51
|
+
|
|
52
|
+
lint:
|
|
53
|
+
name: ๐ฎโโ๏ธ Linters and formatters
|
|
54
|
+
runs-on: ubuntu-latest
|
|
55
|
+
permissions:
|
|
56
|
+
checks: write # Allow creating checks
|
|
57
|
+
contents: read
|
|
58
|
+
steps:
|
|
59
|
+
- name: ๐ Setup repo
|
|
60
|
+
uses: actions/checkout@v2
|
|
61
|
+
|
|
62
|
+
- name: ๐ Setup Node
|
|
63
|
+
uses: actions/setup-node@v2
|
|
64
|
+
with:
|
|
65
|
+
node-version: 16.x
|
|
66
|
+
cache: yarn
|
|
67
|
+
|
|
68
|
+
- name: ๐ฆ Install dependencies
|
|
69
|
+
run: yarn install
|
|
70
|
+
|
|
71
|
+
- name: ๐ฎโโ๏ธ Run linters
|
|
72
|
+
run: yarn run lint
|
|
73
|
+
|
|
74
|
+
- name: ๐
Run fixers, and check diff
|
|
75
|
+
id: diffCheck
|
|
76
|
+
run: yarn run fix && git diff --exit-code -- ':!yarn.lock'
|
|
77
|
+
|
|
78
|
+
- name: ๐ฌ Post a check explaining the issue
|
|
79
|
+
if: ${{ failure() && steps.diffCheck.conclusion == 'failure' }}
|
|
80
|
+
uses: LouisBrunner/checks-action@v1.1.1
|
|
81
|
+
with:
|
|
82
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
83
|
+
name: ๐งน Check all files are formatted correctly
|
|
84
|
+
conclusion: failure
|
|
85
|
+
output: |
|
|
86
|
+
{"summary": "Hrm, seems like you don't have prettier set up properly. Make sure your editor is configured to format code automatically, and that it respects the project's prettier config. [Click here](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) to view the Prettier extension for VS Code.\n\n> _**๐ก Tip:**_ \n> \n> In the meantime you can run `npm run fix` and commit the changes."}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: ๐ PR Polish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened, edited]
|
|
6
|
+
branches:
|
|
7
|
+
- '**'
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
pretty-prs:
|
|
11
|
+
name: ๐
Yassify PR
|
|
12
|
+
runs-on: ubuntu-20.04
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v2
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0
|
|
17
|
+
- name: Yassify PR name
|
|
18
|
+
uses: ./.github/actions/pretty-pr
|
|
19
|
+
with:
|
|
20
|
+
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: ๐ฆ Publish Package to NPM
|
|
2
|
+
on:
|
|
3
|
+
release:
|
|
4
|
+
types: [published]
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
name: ๐ฆ Build and publish
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v3
|
|
11
|
+
# Setup .npmrc file to publish to npm
|
|
12
|
+
- uses: actions/setup-node@v3
|
|
13
|
+
with:
|
|
14
|
+
node-version: "16.x"
|
|
15
|
+
registry-url: "https://registry.npmjs.org"
|
|
16
|
+
- run: yarn
|
|
17
|
+
- run: yarn build
|
|
18
|
+
- run: yarn publish
|
|
19
|
+
env:
|
|
20
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/.prettierignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
prisma/generated/*
|
package/README.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# prisma-kysely
|
|
2
|
+
|
|
3
|
+
> ๐ง **Library and README in progress...**
|
|
4
|
+
|
|
5
|
+
Do you like Prisma's migration flow, schema language and DX but not the limitations of the Prisma Client? Do you want to harness the raw power of SQL without losing the safety of the TypeScript type system?
|
|
6
|
+
|
|
7
|
+
**Enter `prisma-kysely`**!
|
|
8
|
+
|
|
9
|
+
### Setup
|
|
10
|
+
|
|
11
|
+
1. Install `prisma-kysely` using your package manager of choice:
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
yarn add prisma-kysely
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
2. Replace the default client generator in your `schema.prisma` file with the following:
|
|
18
|
+
|
|
19
|
+
```prisma
|
|
20
|
+
generator kysely {
|
|
21
|
+
provider = "prisma-kysely"
|
|
22
|
+
|
|
23
|
+
// Optionally provide a destination directory for the generated file
|
|
24
|
+
// and a filename of your choice
|
|
25
|
+
output = "../src/db"
|
|
26
|
+
fileName = "types.ts"
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
3. Run `prisma migrate dev` or `prisma generate` and use your freshly generated types when instantiating Kysely!
|
|
31
|
+
|
|
32
|
+
### Motivation
|
|
33
|
+
|
|
34
|
+
`prisma-kysely` is meant as a more convenient alternative to `kysely-codegen` for those that use Prisma only for migrations. The package makes sure that Kysely's types are always up to date with the latest database schema. `prisma-kysely` also has better support for enums than `kysely-codegen` does. The author has used Prisma Migrate and Kysely together with Postgres and Cloudflare's D1 daily for a few months now and is really happy with the combo, but this has been the missing piece needed to make workflow super smooth.
|
|
35
|
+
|
|
36
|
+
### Config
|
|
37
|
+
|
|
38
|
+
| Key | Description |
|
|
39
|
+
| :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
40
|
+
| `output` | The directory where generated code will be saved |
|
|
41
|
+
| `fileName` | The filename for the generated file |
|
|
42
|
+
| `[typename]TypeOverride` | Allows you to override the resulting TypeScript type for any Prisma type. Useful when targeting a different environment than Node (e.g. WinterCG compatible runtimes that use UInt8Arrays instead of Buffers for binary types etc.) Check out the [config validator](https://github.com/valtyr/prisma-kysely/blob/main/src/utils/validateConfig.ts) for a complete list of options. |
|
|
43
|
+
|
|
44
|
+
### Contributions
|
|
45
|
+
|
|
46
|
+
OMG you actually want to contribute? I'm so thankful! ๐โโ๏ธ
|
|
47
|
+
|
|
48
|
+
Here's everything you need to do (let me know if something's missing...)
|
|
49
|
+
|
|
50
|
+
1. Fork and pull the repository
|
|
51
|
+
2. Run `yarn install` and `yarn dev` to start `tsc` in watch mode.
|
|
52
|
+
3. Make changes to the source code
|
|
53
|
+
4. Test your changes by editing `prisma/schema.prisma`, running `yarn prisma generate` and checking the output in `prisma/types.ts`.
|
|
54
|
+
5. Create a pull request! If your changes make sense, I'll try my best to review and merge them quickly.
|
|
55
|
+
|
|
56
|
+
I'm not 100% sure the [type maps](https://github.com/valtyr/prisma-kysely/blob/main/src/helpers/generateFieldType.ts) are correct for every dialect, so any and all contributions on that front would be greatly appreciated. The same goes for any bug you come across or improvement you can think of.
|
|
57
|
+
|
|
58
|
+
```diff
|
|
59
|
+
+ ๐ฅน Make Codd proud!
|
|
60
|
+
```
|
package/build.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const esbuild = require('esbuild');
|
|
2
|
+
|
|
3
|
+
console.time('โญ Built Kysely Prisma generator');
|
|
4
|
+
esbuild.build({
|
|
5
|
+
entryPoints: ['src/bin.ts'],
|
|
6
|
+
bundle: true,
|
|
7
|
+
outfile: 'dist/bin.js',
|
|
8
|
+
platform: 'node',
|
|
9
|
+
packages: 'external',
|
|
10
|
+
});
|
|
11
|
+
console.timeLog('โญ Built Kysely Prisma generator');
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
const generateDatabaseType_1 = require("./helpers/generateDatabaseType");
|
|
8
|
+
const generateFile_1 = require("./helpers/generateFile");
|
|
9
|
+
const generateImplicitManyToManyModels_1 = require("./helpers/generateImplicitManyToManyModels");
|
|
10
|
+
const generateModel_1 = require("./helpers/generateModel");
|
|
11
|
+
const generateStringLiteralUnion_1 = require("./helpers/generateStringLiteralUnion");
|
|
12
|
+
const generateTypedAliasDeclaration_1 = require("./helpers/generateTypedAliasDeclaration");
|
|
13
|
+
const sorted_1 = require("./utils/sorted");
|
|
14
|
+
const validateConfig_1 = require("./utils/validateConfig");
|
|
15
|
+
const writeFileSafely_1 = require("./utils/writeFileSafely");
|
|
16
|
+
const generator_helper_1 = require("@prisma/generator-helper");
|
|
17
|
+
const path_1 = __importDefault(require("path"));
|
|
18
|
+
const { version } = require("../package.json");
|
|
19
|
+
(0, generator_helper_1.generatorHandler)({
|
|
20
|
+
onManifest() {
|
|
21
|
+
return {
|
|
22
|
+
version,
|
|
23
|
+
defaultOutput: "./generated",
|
|
24
|
+
prettyName: constants_1.GENERATOR_NAME,
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
onGenerate: async (options) => {
|
|
28
|
+
var _a;
|
|
29
|
+
const config = (0, validateConfig_1.validateConfig)({
|
|
30
|
+
...options.generator.config,
|
|
31
|
+
databaseProvider: options.datasources[0].provider,
|
|
32
|
+
});
|
|
33
|
+
const enums = options.dmmf.datamodel.enums.flatMap(({ name, values }) => {
|
|
34
|
+
const type = (0, generateStringLiteralUnion_1.generateStringLiteralUnion)(values.map((v) => v.name));
|
|
35
|
+
if (!type)
|
|
36
|
+
return [];
|
|
37
|
+
const declaration = (0, generateTypedAliasDeclaration_1.generateTypedAliasDeclaration)(name, type);
|
|
38
|
+
return declaration;
|
|
39
|
+
});
|
|
40
|
+
const implicitManyToManyModels = (0, generateImplicitManyToManyModels_1.generateImplicitManyToManyModels)(options.dmmf.datamodel.models);
|
|
41
|
+
const models = (0, sorted_1.sorted)([...options.dmmf.datamodel.models, ...implicitManyToManyModels], (a, b) => a.name.localeCompare(b.name)).map((m) => (0, generateModel_1.generateModel)(m, config));
|
|
42
|
+
const databaseType = (0, generateDatabaseType_1.generateDatabaseType)(models.map((m) => m.name));
|
|
43
|
+
const file = (0, generateFile_1.generateFile)([
|
|
44
|
+
...enums,
|
|
45
|
+
...models.map((m) => m.definition),
|
|
46
|
+
databaseType,
|
|
47
|
+
]);
|
|
48
|
+
const writeLocation = path_1.default.join(((_a = options.generator.output) === null || _a === void 0 ? void 0 : _a.value) || "", config.fileName);
|
|
49
|
+
await (0, writeFileSafely_1.writeFileSafely)(writeLocation, file);
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=generator.js.map
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "prisma-kysely",
|
|
3
|
+
"description": "Generate Kysely database types from a Prisma schema",
|
|
4
|
+
"repository": {
|
|
5
|
+
"url": "https://github.com/valtyr/prisma-kysely"
|
|
6
|
+
},
|
|
7
|
+
"version": "1.0.0",
|
|
8
|
+
"main": "dist/generator.js",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"bin": {
|
|
11
|
+
"prisma-generator-kysely-types": "dist/bin.js"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"start": "node dist/bin.js",
|
|
15
|
+
"dev": "tsc --watch",
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"typecheck": "tsc --noemit",
|
|
18
|
+
"prepack": "yarn build",
|
|
19
|
+
"fix": "prettier --write \"**/*.{ts,tsx,md}\"",
|
|
20
|
+
"lint": "eslint ./src",
|
|
21
|
+
"test": "jest --passWithNoTests"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@prisma/generator-helper": "3.12.0",
|
|
25
|
+
"@prisma/sdk": "3.12.0",
|
|
26
|
+
"zod": "^3.21.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
|
30
|
+
"@types/jest": "27.0.3",
|
|
31
|
+
"@types/node": "17.0.21",
|
|
32
|
+
"@types/prettier": "2.4.2",
|
|
33
|
+
"@typescript-eslint/eslint-plugin": "^5.54.0",
|
|
34
|
+
"@typescript-eslint/parser": "^5.54.0",
|
|
35
|
+
"eslint": "^8.35.0",
|
|
36
|
+
"jest": "27.4.7",
|
|
37
|
+
"kysely": "^0.23.4",
|
|
38
|
+
"prettier": "latest",
|
|
39
|
+
"prisma": "3.12.0",
|
|
40
|
+
"ts-jest": "27.1.4",
|
|
41
|
+
"typescript": "4.6.2"
|
|
42
|
+
}
|
|
43
|
+
}
|