From 3951a15451d43272458c3780bf6401e538a138af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20Gr=C3=BCneberg?= Date: Thu, 1 Feb 2024 10:26:56 +0800 Subject: [PATCH] chore: bump to prettier 3 --- .github/workflows/ci.yml | 2 +- package-lock.json | 142 ++++++++++++++---------- package.json | 5 +- src/lib/Parser.ts | 7 +- src/lib/PostgresMetaColumnPrivileges.ts | 8 +- src/lib/PostgresMetaColumns.ts | 8 +- src/lib/PostgresMetaFunctions.ts | 8 +- src/lib/types.ts | 2 +- src/server/routes/query.ts | 2 +- src/server/server.ts | 2 +- src/server/templates/typescript.ts | 32 +++--- 11 files changed, 123 insertions(+), 95 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 391c7a1c..31abc82c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actionsx/prettier@v2 + - uses: actionsx/prettier@v3 with: args: --check "{src,test}/**/*.ts" diff --git a/package-lock.json b/package-lock.json index d7d33277..c37b4282 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,8 +23,8 @@ "pgsql-parser": "^13.3.0", "pino": "^8.6.1", "postgres-array": "^3.0.1", - "prettier": "^2.6.0", - "prettier-plugin-sql": "^0.13.0" + "prettier": "^3.2.4", + "prettier-plugin-sql": "0.17.0" }, "devDependencies": { "@types/crypto-js": "^4.1.1", @@ -32,7 +32,6 @@ "@types/node": "^18.17.17", "@types/pg": "^8.6.5", "@types/pg-format": "^1.0.1", - "@types/prettier": "^2.7.3", "cpy-cli": "^5.0.0", "jest": "^29.3.1", "nodemon": "^3.0.1", @@ -1966,12 +1965,6 @@ "node": ">=12" } }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, "node_modules/@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -2350,9 +2343,9 @@ ] }, "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", "engines": { "node": ">=0.6" } @@ -3742,6 +3735,17 @@ "node": ">=8.0.0" } }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -5262,6 +5266,14 @@ "node": ">= 10.0.0" } }, + "node_modules/jsox": { + "version": "1.2.119", + "resolved": "https://registry.npmjs.org/jsox/-/jsox-1.2.119.tgz", + "integrity": "sha512-f37obwxWKKuylcaOzNlUlzfDvURSCpqTXs8yEivhvsp86D/DTIySxP4v5Qdlg24qCuzDSZ0mJr3krc/f7TZ/5A==", + "bin": { + "jsox": "lib/cli.js" + } + }, "node_modules/junk": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", @@ -5992,9 +6004,9 @@ "dev": true }, "node_modules/node-sql-parser": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/node-sql-parser/-/node-sql-parser-4.5.1.tgz", - "integrity": "sha512-99/6q5CTRjYNcCPq2waae4yJZ//T0XBjEDCurGK93ViuSgN4txsp1LqGHxQlg0SpOR1xJUNLKSF9UbZibSnE5w==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/node-sql-parser/-/node-sql-parser-4.18.0.tgz", + "integrity": "sha512-2YEOR5qlI1zUFbGMLKNfsrR5JUvFg9LxIRVE+xJe962pfVLH0rnItqLzv96XVs1Y1UIR8FxsXAuvX/lYAWZ2BQ==", "dependencies": { "big-integer": "^1.6.48" }, @@ -7172,36 +7184,37 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", + "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/prettier-plugin-sql": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.13.0.tgz", - "integrity": "sha512-Ui9603tDD6PFyr7JvIEoE6cIFMQnJVDriG+oLyVThsGo/MIl5ek18JhH3xtox9ux8jvyww/FUFrJzxpZ7FIdvw==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.17.0.tgz", + "integrity": "sha512-amidsFV6LdQF0gJMspfxn6sZTOC5m5St7A5QOBNZ49NGElT1fwdQiG4Y4wgRha3Mh9q3JwljOHfCfQhaxDUeRA==", "dependencies": { - "node-sql-parser": "^4.4.0", - "sql-formatter": "^11.0.2", - "tslib": "^2.4.0" + "jsox": "^1.2.118", + "node-sql-parser": "^4.11.0", + "sql-formatter": "^14.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node": "^14.18.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/unts" }, "peerDependencies": { - "prettier": "^2.0.0" + "prettier": "^3.0.3" } }, "node_modules/pretty-format": { @@ -8147,11 +8160,12 @@ "dev": true }, "node_modules/sql-formatter": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-11.0.2.tgz", - "integrity": "sha512-6QumAdGHEnI5dXEq1d0aBRP876AyA9Wp/UE7wopKNA2Mp9sKGRKVqGgoWHk4dr0J0nceesC85Y0p36qmGoNqhw==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-14.0.0.tgz", + "integrity": "sha512-VcHYMRvZqg3RNjjxNB/puT9O1hR5QLXTvgTaBtxXcvmRQwSnH9M+oW2Ti+uFuVVU8HoNlOjU2uKHv8c0FQNsdQ==", "dependencies": { "argparse": "^2.0.1", + "get-stdin": "=8.0.0", "nearley": "^2.20.1" }, "bin": { @@ -8675,9 +8689,9 @@ } }, "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tunnel-agent": { "version": "0.6.0", @@ -10597,12 +10611,6 @@ "integrity": "sha512-i+oEEJEC+1I3XAhgqtVp45Faj8MBbV0Aoq4rHsHD7avgLjyDkaWKObd514g0Q/DOUkdxU0P4CQ0iq2KR4SoJcw==", "dev": true }, - "@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -10879,9 +10887,9 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==" }, "binary-extensions": { "version": "2.2.0", @@ -11924,6 +11932,11 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==" + }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -13053,6 +13066,11 @@ } } }, + "jsox": { + "version": "1.2.119", + "resolved": "https://registry.npmjs.org/jsox/-/jsox-1.2.119.tgz", + "integrity": "sha512-f37obwxWKKuylcaOzNlUlzfDvURSCpqTXs8yEivhvsp86D/DTIySxP4v5Qdlg24qCuzDSZ0mJr3krc/f7TZ/5A==" + }, "junk": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", @@ -13601,9 +13619,9 @@ "dev": true }, "node-sql-parser": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/node-sql-parser/-/node-sql-parser-4.5.1.tgz", - "integrity": "sha512-99/6q5CTRjYNcCPq2waae4yJZ//T0XBjEDCurGK93ViuSgN4txsp1LqGHxQlg0SpOR1xJUNLKSF9UbZibSnE5w==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/node-sql-parser/-/node-sql-parser-4.18.0.tgz", + "integrity": "sha512-2YEOR5qlI1zUFbGMLKNfsrR5JUvFg9LxIRVE+xJe962pfVLH0rnItqLzv96XVs1Y1UIR8FxsXAuvX/lYAWZ2BQ==", "requires": { "big-integer": "^1.6.48" } @@ -14460,18 +14478,19 @@ } }, "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", + "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==" }, "prettier-plugin-sql": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.13.0.tgz", - "integrity": "sha512-Ui9603tDD6PFyr7JvIEoE6cIFMQnJVDriG+oLyVThsGo/MIl5ek18JhH3xtox9ux8jvyww/FUFrJzxpZ7FIdvw==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.17.0.tgz", + "integrity": "sha512-amidsFV6LdQF0gJMspfxn6sZTOC5m5St7A5QOBNZ49NGElT1fwdQiG4Y4wgRha3Mh9q3JwljOHfCfQhaxDUeRA==", "requires": { - "node-sql-parser": "^4.4.0", - "sql-formatter": "^11.0.2", - "tslib": "^2.4.0" + "jsox": "^1.2.118", + "node-sql-parser": "^4.11.0", + "sql-formatter": "^14.0.0", + "tslib": "^2.6.2" } }, "pretty-format": { @@ -15133,11 +15152,12 @@ "dev": true }, "sql-formatter": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-11.0.2.tgz", - "integrity": "sha512-6QumAdGHEnI5dXEq1d0aBRP876AyA9Wp/UE7wopKNA2Mp9sKGRKVqGgoWHk4dr0J0nceesC85Y0p36qmGoNqhw==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-14.0.0.tgz", + "integrity": "sha512-VcHYMRvZqg3RNjjxNB/puT9O1hR5QLXTvgTaBtxXcvmRQwSnH9M+oW2Ti+uFuVVU8HoNlOjU2uKHv8c0FQNsdQ==", "requires": { "argparse": "^2.0.1", + "get-stdin": "=8.0.0", "nearley": "^2.20.1" } }, @@ -15517,9 +15537,9 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "tunnel-agent": { "version": "0.6.0", diff --git a/package.json b/package.json index 1fbafe3f..d07199e7 100644 --- a/package.json +++ b/package.json @@ -70,8 +70,8 @@ "pgsql-parser": "^13.3.0", "pino": "^8.6.1", "postgres-array": "^3.0.1", - "prettier": "^2.6.0", - "prettier-plugin-sql": "^0.13.0" + "prettier": "^3.2.4", + "prettier-plugin-sql": "0.17.0" }, "devDependencies": { "@types/crypto-js": "^4.1.1", @@ -79,7 +79,6 @@ "@types/node": "^18.17.17", "@types/pg": "^8.6.5", "@types/pg-format": "^1.0.1", - "@types/prettier": "^2.7.3", "cpy-cli": "^5.0.0", "jest": "^29.3.1", "nodemon": "^3.0.1", diff --git a/src/lib/Parser.ts b/src/lib/Parser.ts index 07a15714..efabc84f 100644 --- a/src/lib/Parser.ts +++ b/src/lib/Parser.ts @@ -50,9 +50,12 @@ interface DeparseReturnValues { /** * Formats a SQL string into a prettier-formatted SQL string. */ -export function Format(sql: string, options: FormatterOptions = {}): FormatReturnValues { +export async function Format( + sql: string, + options: FormatterOptions = {} +): Promise { try { - const formatted = prettier.format(sql, { + const formatted = await prettier.format(sql, { ...DEFAULT_FORMATTER_OPTIONS, ...options, }) diff --git a/src/lib/PostgresMetaColumnPrivileges.ts b/src/lib/PostgresMetaColumnPrivileges.ts index 8ff2c6f7..4df0d39a 100644 --- a/src/lib/PostgresMetaColumnPrivileges.ts +++ b/src/lib/PostgresMetaColumnPrivileges.ts @@ -70,8 +70,8 @@ where a.attrelid = ${literal(relationId)} into col; execute format( 'grant ${privilege_type} (%I) on %s to ${ - grantee.toLowerCase() === 'public' ? 'public' : ident(grantee) - } ${is_grantable ? 'with grant option' : ''}', + grantee.toLowerCase() === 'public' ? 'public' : ident(grantee) + } ${is_grantable ? 'with grant option' : ''}', col.attname, col.attrelid::regclass );` @@ -114,8 +114,8 @@ where a.attrelid = ${literal(relationId)} into col; execute format( 'revoke ${privilege_type} (%I) on %s from ${ - grantee.toLowerCase() === 'public' ? 'public' : ident(grantee) - }', + grantee.toLowerCase() === 'public' ? 'public' : ident(grantee) + }', col.attname, col.attrelid::regclass );` diff --git a/src/lib/PostgresMetaColumns.ts b/src/lib/PostgresMetaColumns.ts index 07224c9c..6626efa7 100644 --- a/src/lib/PostgresMetaColumns.ts +++ b/src/lib/PostgresMetaColumns.ts @@ -349,16 +349,16 @@ BEGIN IF v_conname IS NOT NULL THEN EXECUTE format('ALTER TABLE ${ident(old!.schema)}.${ident( - old!.table - )} DROP CONSTRAINT %s', v_conname); + old!.table + )} DROP CONSTRAINT %s', v_conname); END IF; ${ check !== null ? ` ALTER TABLE ${ident(old!.schema)}.${ident(old!.table)} ADD CONSTRAINT ${ident( - `${old!.table}_${old!.name}_check` - )} CHECK (${check}); + `${old!.table}_${old!.name}_check` + )} CHECK (${check}); SELECT conkey into v_conkey FROM pg_constraint WHERE conname = ${literal( `${old!.table}_${old!.name}_check` diff --git a/src/lib/PostgresMetaFunctions.ts b/src/lib/PostgresMetaFunctions.ts index 93412a5f..b50e6761 100644 --- a/src/lib/PostgresMetaFunctions.ts +++ b/src/lib/PostgresMetaFunctions.ts @@ -183,8 +183,8 @@ export default class PostgresMetaFunctions { AND f.identity_argument_types = ${literal(identityArgs)} ) != ${id} THEN RAISE EXCEPTION 'Cannot find function "${currentFunc!.schema}"."${ - currentFunc!.name - }"(${identityArgs})'; + currentFunc!.name + }"(${identityArgs})'; END IF; END IF; @@ -242,8 +242,8 @@ export default class PostgresMetaFunctions { ): string { return ` CREATE ${replace ? 'OR REPLACE' : ''} FUNCTION ${ident(schema!)}.${ident(name!)}(${ - args?.join(', ') || '' - }) + args?.join(', ') || '' + }) RETURNS ${return_type} AS ${literal(definition)} LANGUAGE ${language} diff --git a/src/lib/types.ts b/src/lib/types.ts index 1b09af5d..c3906b39 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -1,6 +1,6 @@ import { Static, Type } from '@sinclair/typebox' import { DatabaseError } from 'pg-protocol' -import { Options as PrettierOptions } from 'prettier' +import type { Options as PrettierOptions } from 'prettier' export interface FormatterOptions extends PrettierOptions {} diff --git a/src/server/routes/query.ts b/src/server/routes/query.ts index 03a39d4b..67e4ef3a 100644 --- a/src/server/routes/query.ts +++ b/src/server/routes/query.ts @@ -39,7 +39,7 @@ export default async (fastify: FastifyInstance) => { } }>('/format', async (request, reply) => { errorOnEmptyQuery(request) - const { data, error } = Parser.Format(request.body.query) + const { data, error } = await Parser.Format(request.body.query) if (error) { request.log.error({ error, request: extractRequestForLogging(request) }) diff --git a/src/server/server.ts b/src/server/server.ts index 760ddf1d..e9c6f5b6 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -105,7 +105,7 @@ if (EXPORT_DOCS) { } console.log( - applyTypescriptTemplate({ + await applyTypescriptTemplate({ schemas: schemas!.filter( ({ name }) => GENERATE_TYPES_INCLUDED_SCHEMAS.length === 0 || diff --git a/src/server/templates/typescript.ts b/src/server/templates/typescript.ts index 1f2809d8..ec503d4c 100644 --- a/src/server/templates/typescript.ts +++ b/src/server/templates/typescript.ts @@ -10,7 +10,7 @@ import type { PostgresView, } from '../../lib/index.js' -export const apply = ({ +export const apply = async ({ schemas, tables, views, @@ -32,14 +32,17 @@ export const apply = ({ types: PostgresType[] arrayTypes: PostgresType[] detectOneToOneRelationships: boolean -}): string => { +}): Promise => { const columnsByTableId = columns .sort(({ name: a }, { name: b }) => a.localeCompare(b)) - .reduce((acc, curr) => { - acc[curr.table_id] ??= [] - acc[curr.table_id].push(curr) - return acc - }, {} as Record) + .reduce( + (acc, curr) => { + acc[curr.table_id] ??= [] + acc[curr.table_id].push(curr) + return acc + }, + {} as Record + ) let output = ` export type Json = string | number | boolean | null | { [key: string]: Json | undefined } | Json[] @@ -262,11 +265,14 @@ export type Database = { return '[_ in never]: never' } - const schemaFunctionsGroupedByName = schemaFunctions.reduce((acc, curr) => { - acc[curr.name] ??= [] - acc[curr.name].push(curr) - return acc - }, {} as Record) + const schemaFunctionsGroupedByName = schemaFunctions.reduce( + (acc, curr) => { + acc[curr.name] ??= [] + acc[curr.name].push(curr) + return acc + }, + {} as Record + ) return Object.entries(schemaFunctionsGroupedByName).map( ([fnName, fns]) => @@ -494,7 +500,7 @@ export type Enums< : never ` - output = prettier.format(output, { + output = await prettier.format(output, { parser: 'typescript', semi: false, })