workaround prisma import issue with enums

This commit is contained in:
Michael Dausmann
2023-05-04 00:17:49 +10:00
parent 3a854d49c4
commit 265eb08de6
10 changed files with 24 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
import { ACCOUNT_ACCESS } from '@prisma/client'; import { ACCOUNT_ACCESS } from '~~/prisma/account-access-enum';
import prisma_client from '~~/prisma/prisma.client'; import prisma_client from '~~/prisma/prisma.client';
import { accountWithMembers, AccountWithMembers, membershipWithAccount, MembershipWithAccount, membershipWithUser, MembershipWithUser } from './service.types'; import { accountWithMembers, AccountWithMembers, membershipWithAccount, MembershipWithAccount, membershipWithUser, MembershipWithUser } from './service.types';
import generator from 'generate-password-ts'; import generator from 'generate-password-ts';

View File

@@ -1,4 +1,4 @@
import { ACCOUNT_ACCESS } from '@prisma/client'; import { ACCOUNT_ACCESS } from '~~/prisma/account-access-enum';
import prisma_client from '~~/prisma/prisma.client'; import prisma_client from '~~/prisma/prisma.client';
import { fullDBUser, FullDBUser } from './service.types'; import { fullDBUser, FullDBUser } from './service.types';
import { UtilService } from './util.service'; import { UtilService } from './util.service';

View File

@@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import { ACCOUNT_ACCESS } from '@prisma/client'; import { ACCOUNT_ACCESS } from '~~/prisma/account-access-enum';
const accountStore = useAccountStore(); const accountStore = useAccountStore();
const { activeMembership, activeAccountMembers } = storeToRefs(accountStore) const { activeMembership, activeAccountMembers } = storeToRefs(accountStore)

View File

@@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import { ACCOUNT_ACCESS } from '@prisma/client'; import { ACCOUNT_ACCESS } from '~~/prisma/account-access-enum';
definePageMeta({ definePageMeta({
middleware: ['auth'], middleware: ['auth'],

View File

@@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import { ACCOUNT_ACCESS } from '@prisma/client'; import { ACCOUNT_ACCESS } from '~~/prisma/account-access-enum';
const accountStore = useAccountStore() const accountStore = useAccountStore()
const { activeMembership } = storeToRefs(accountStore); const { activeMembership } = storeToRefs(accountStore);

View File

@@ -0,0 +1,15 @@
// Workaround for prisma issue (https://github.com/prisma/prisma/issues/12504#issuecomment-1147356141)
// Import original enum as type
import type { ACCOUNT_ACCESS as ACCOUNT_ACCESS_ORIGINAL } from '@prisma/client'
// Guarantee that the implementation corresponds to the original type
export const ACCOUNT_ACCESS: { [k in ACCOUNT_ACCESS_ORIGINAL ]: k } = {
READ_ONLY: 'READ_ONLY',
READ_WRITE: 'READ_WRITE',
ADMIN: 'ADMIN',
OWNER: 'OWNER'
} as const
// Re-exporting the original type with the original name
export type ACCOUNT_ACCESS = ACCOUNT_ACCESS_ORIGINAL

View File

@@ -1,4 +1,4 @@
import { ACCOUNT_ACCESS } from '@prisma/client'; import { ACCOUNT_ACCESS } from '~~/prisma/account-access-enum';
import Stripe from 'stripe'; import Stripe from 'stripe';
import AccountService from '~~/lib/services/account.service'; import AccountService from '~~/lib/services/account.service';
import { AccountWithMembers } from '~~/lib/services/service.types'; import { AccountWithMembers } from '~~/lib/services/service.types';

View File

@@ -1,6 +1,6 @@
import { TRPCError } from '@trpc/server'; import { TRPCError } from '@trpc/server';
import { router, adminProcedure, publicProcedure, protectedProcedure, ownerProcedure } from '../trpc' import { router, adminProcedure, publicProcedure, protectedProcedure, ownerProcedure } from '../trpc'
import { ACCOUNT_ACCESS } from '@prisma/client'; import { ACCOUNT_ACCESS } from '~~/prisma/account-access-enum';
import { z } from 'zod'; import { z } from 'zod';
import AccountService from '~~/lib/services/account.service'; import AccountService from '~~/lib/services/account.service';
import { MembershipWithAccount } from '~~/lib/services/service.types'; import { MembershipWithAccount } from '~~/lib/services/service.types';

View File

@@ -9,7 +9,7 @@
*/ */
import { initTRPC, TRPCError } from '@trpc/server' import { initTRPC, TRPCError } from '@trpc/server'
import { Context } from './context'; import { Context } from './context';
import { ACCOUNT_ACCESS } from '@prisma/client'; import { ACCOUNT_ACCESS } from '~~/prisma/account-access-enum';
import superjson from 'superjson'; import superjson from 'superjson';
const t = initTRPC.context<Context>().create({ const t = initTRPC.context<Context>().create({

View File

@@ -1,4 +1,4 @@
import { ACCOUNT_ACCESS } from '@prisma/client'; import { ACCOUNT_ACCESS } from '~~/prisma/account-access-enum';
import { defineStore } from "pinia" import { defineStore } from "pinia"
import { FullDBUser, MembershipWithUser } from "~~/lib/services/service.types"; import { FullDBUser, MembershipWithUser } from "~~/lib/services/service.types";