@unique_nickname

Почему не работает автодополнение Prisma в монорепозитории NestJS?

schema:
generator client {
  provider = "prisma-client-js"
  output   = "../../node_modules/@prisma/marketdata"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Instrument {
  id        String   @id @default(uuid())
  name      String
  ticker    String
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  candles Candle[]
}


client:
import { Injectable, OnModuleInit } from '@nestjs/common';
import { PrismaClient } from '@prisma/marketdata';

@Injectable()
export class MarketdataPrismaClient extends PrismaClient implements OnModuleInit {
  async onModuleInit(): Promise<void> {
    await this.$connect();
  }
}


service:
import { Injectable } from '@nestjs/common';
import { MarketdataPrismaClient } from '@app/prisma';
import { GrpcCandle, Timestamp } from '@common/common.types';

@Injectable()
export class CandleService {
  constructor(private prisma: MarketdataPrismaClient) {}

  async findAll(ticker: string, from?: Timestamp, to?: Timestamp): Promise<GrpcCandle[]> {
    return [];
  }
}


Не работает автодополнение nest.js, что-то не так с типами.
т.е.this.prisma не видит что внутри есть instrument, хотя если сделать console.log(this.prisma) то все корректно отображается, т.е. в рантайме все гуд. @prisma/marketdata тоже сгенерированная существует, там все тоже вроде бы гуд

Почему не работает автодополнение?
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
@unique_nickname Автор вопроса
UPD: Пока писал вопрос пришла идея, что если проблема с типами - нужно проверить что с TypeScript'ом. Сравнил с проектом где всё гуд - там была версия 4, в текущем 5.

В итоге опустил версию TS c 5 на 4 и все заработало. Надеюсь сохраню кому-то время. Но если кто-то знает в чем конкретно проблема - пишите, выберу ответом и подниму TS обратно на 5))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы