Files
payload/test/buildConfig.ts
Alessio Gravili 733fc0b2d0 feat: auto-login in config capability (#3009)
This is useful when developing/testing, where logging after every change can be cumbersome.
2023-07-17 16:35:58 -04:00

41 lines
1.2 KiB
TypeScript

import { Config, SanitizedConfig } from '../src/config/types';
import { buildConfig as buildPayloadConfig } from '../src/config/build';
export function buildConfig(config?: Partial<Config>): Promise<SanitizedConfig> {
const [name] = process.argv.slice(2);
const baseConfig: Config = {
telemetry: false,
rateLimit: {
window: 15 * 60 * 100, // 15min default,
max: 9999999999,
},
...config,
};
baseConfig.admin = {
autoLogin: process.env.PAYLOAD_PUBLIC_DISABLE_AUTO_LOGIN === 'true' ? false : {
email: 'dev@payloadcms.com',
password: 'test',
},
...(baseConfig.admin || {}),
webpack: (webpackConfig) => {
const existingConfig = typeof config?.admin?.webpack === 'function'
? config.admin.webpack(webpackConfig)
: webpackConfig;
return {
...existingConfig,
name,
cache: process.env.NODE_ENV === 'test' ? {
type: 'memory',
} : existingConfig.cache,
};
},
};
if (process.env.PAYLOAD_DISABLE_ADMIN === 'true') {
if (typeof baseConfig.admin !== 'object') baseConfig.admin = {};
baseConfig.admin.disable = true;
}
return buildPayloadConfig(baseConfig);
}