| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- import {
- dummyPaymentHandler,
- DefaultJobQueuePlugin,
- DefaultSearchPlugin,
- VendureConfig,
- } from '@vendure/core';
- import { defaultEmailHandlers, EmailPlugin } from '@vendure/email-plugin';
- import { AssetServerPlugin } from '@vendure/asset-server-plugin';
- import { AdminUiPlugin } from '@vendure/admin-ui-plugin';
- import 'dotenv/config';
- import path from 'path';
- const IS_DEV = process.env.APP_ENV === 'dev';
- export const config: VendureConfig = {
- apiOptions: {
- port: 3000,
- adminApiPath: 'admin-api',
- shopApiPath: 'shop-api',
- // The following options are useful in development mode,
- // but are best turned off for production for security
- // reasons.
- ...(IS_DEV ? {
- adminApiPlayground: {
- settings: { 'request.credentials': 'include' },
- },
- adminApiDebug: true,
- shopApiPlayground: {
- settings: { 'request.credentials': 'include' },
- },
- shopApiDebug: true,
- } : {}),
- },
- authOptions: {
- tokenMethod: ['bearer', 'cookie'],
- superadminCredentials: {
- identifier: process.env.SUPERADMIN_USERNAME,
- password: process.env.SUPERADMIN_PASSWORD,
- },
- cookieOptions: {
- secret: process.env.COOKIE_SECRET,
- },
- },
- dbConnectionOptions: {
- type: '{{ dbType }}',
- // See the README.md "Migrations" section for an explanation of
- // the `synchronize` and `migrations` options.
- synchronize: false,
- migrations: [path.join(__dirname, './migrations/*.+(js|ts)')],
- logging: false,
- database: {{#if isSQLjs}}new Uint8Array([]){{else if isSQLite}}path.join(__dirname, '../vendure.sqlite'){{else}}process.env.DB_NAME{{/if}},
- {{#if dbSchema}}
- schema: process.env.DB_SCHEMA,
- {{/if}}
- {{#if dbSSL}}
- ssl: true,
- {{/if}}
- {{#if isSQLjs}}
- location: path.join(__dirname, 'vendure.sqlite'),
- autoSave: true,
- {{/if}}
- {{#if requiresConnection}}
- host: process.env.DB_HOST,
- port: +process.env.DB_PORT,
- username: process.env.DB_USERNAME,
- password: process.env.DB_PASSWORD,
- {{/if}}
- },
- paymentOptions: {
- paymentMethodHandlers: [dummyPaymentHandler],
- },
- // When adding or altering custom field definitions, the database will
- // need to be updated. See the "Migrations" section in README.md.
- customFields: {},
- plugins: [
- AssetServerPlugin.init({
- route: 'assets',
- assetUploadDir: path.join(__dirname, '../static/assets'),
- // For local dev, the correct value for assetUrlPrefix should
- // be guessed correctly, but for production it will usually need
- // to be set manually to match your production url.
- assetUrlPrefix: IS_DEV ? undefined : 'https://www.my-shop.com/assets/',
- }),
- DefaultJobQueuePlugin.init({ useDatabaseForBuffer: true }),
- DefaultSearchPlugin.init({ bufferUpdates: false, indexStockStatus: true }),
- EmailPlugin.init({
- devMode: true,
- outputPath: path.join(__dirname, '../static/email/test-emails'),
- route: 'mailbox',
- handlers: defaultEmailHandlers,
- templatePath: path.join(__dirname, '../static/email/templates'),
- globalTemplateVars: {
- // The following variables will change depending on your storefront implementation.
- // Here we are assuming a storefront running at http://localhost:8080.
- fromAddress: '"example" <noreply@example.com>',
- verifyEmailAddressUrl: 'http://localhost:8080/verify',
- passwordResetUrl: 'http://localhost:8080/password-reset',
- changeEmailAddressUrl: 'http://localhost:8080/verify-email-address-change'
- },
- }),
- AdminUiPlugin.init({
- route: 'admin',
- port: 3002,
- adminUiConfig: {
- apiPort: 3000,
- },
- }),
- ],
- };
|