This commit is contained in:
Bivekich
2025-07-30 07:43:53 +03:00
parent 08f76a7633
commit 10d4d41e95
5 changed files with 39 additions and 3 deletions

View File

@ -25,7 +25,7 @@ const nextConfig = {
domains: ['localhost'],
},
// Настройки webpack для CSS
// Настройки webpack для CSS и server-only packages
webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {
// Убеждаемся, что CSS правильно обрабатывается
if (!dev && !isServer) {
@ -37,6 +37,27 @@ const nextConfig = {
};
}
// Исключаем server-only пакеты из client bundle
if (!isServer) {
config.resolve.fallback = {
...config.resolve.fallback,
pg: false,
'pg-native': false,
fs: false,
path: false,
crypto: false,
};
}
// Make pg external for all environments
config.externals = config.externals || [];
if (isServer) {
config.externals.push({
pg: 'commonjs pg',
'pg-native': 'commonjs pg-native'
});
}
return config;
},
};

View File

@ -114,7 +114,7 @@ export const KrajaSavedTables = ({ onViewTable }: KrajaSavedTablesProps) => {
<div className="text-center py-8 text-gray-500">
<Database className="h-12 w-12 mx-auto mb-4 text-gray-300" />
<p className="text-lg mb-2">Нет сохраненных таблиц</p>
<p className="text-sm">Используйте кнопки "Сохранить" в категориях для создания таблиц</p>
<p className="text-sm">Используйте кнопки &quot;Сохранить&quot; в категориях для создания таблиц</p>
</div>
) : (
<div className="space-y-3">

View File

@ -10,7 +10,7 @@ import { autoEuroService } from '../autoeuro-service'
import { yooKassaService } from '../yookassa-service'
import { partsAPIService } from '../partsapi-service'
import { partsIndexService } from '../partsindex-service'
import { partsDb } from '../parts-db'
// Removed static import - will use dynamic import for server-only package
import { yandexDeliveryService, YandexPickupPoint, getAddressSuggestions } from '../yandex-delivery-service'
import { InvoiceService } from '../invoice-service'
import * as csvWriter from 'csv-writer'
@ -9881,6 +9881,8 @@ export const resolvers = {
console.log(`📋 Sample product data:`, products.slice(0, 3))
// Insert products into parts database
const { getPartsDb } = await import('../parts-db-wrapper')
const partsDb = await getPartsDb()
const insertedCount = await partsDb.insertProducts(
categoryId,
categoryName,
@ -9918,6 +9920,8 @@ export const resolvers = {
throw new Error('Недостаточно прав для выполнения операции')
}
const { getPartsDb } = await import('../parts-db-wrapper')
const partsDb = await getPartsDb()
const tables = await partsDb.getCategoryTables()
return tables
@ -9933,6 +9937,8 @@ export const resolvers = {
throw new Error('Недостаточно прав для выполнения операции')
}
const { getPartsDb } = await import('../parts-db-wrapper')
const partsDb = await getPartsDb()
await partsDb.deleteCategoryTable(categoryId, categoryType.toLowerCase() as 'partsindex' | 'partsapi')
return true
@ -9960,6 +9966,8 @@ export const resolvers = {
throw new Error('Недостаточно прав для выполнения операции')
}
const { getPartsDb } = await import('../parts-db-wrapper')
const partsDb = await getPartsDb()
const result = await partsDb.getProducts(categoryId, categoryType.toLowerCase() as 'partsindex' | 'partsapi', {
search,
limit,

View File

@ -0,0 +1,5 @@
// Wrapper to dynamically load parts-db only on server side
export async function getPartsDb() {
const { partsDb } = await import('./parts-db')
return partsDb
}

View File

@ -1,3 +1,5 @@
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-nocheck
import { Pool } from 'pg'
class PartsDatabase {