'use strict' import makePluginExport from './pluginExport' import makeConfig from './config' import makeStartServer from './server' import {makeLogger} from '@applitools/logger' import os from 'os' import path from 'path' // DON'T REMOVE // // if remove the `tspc` will compile the absolute path // // the absolute path is added because api-extractor goes over the `eyesPlugin` // declaration before it goes over the `EyesConfig` definition, and this is why // it's important to reverse the order export type EyesPluginConfig = { tapDirPath: string tapFileName: string eyesIsDisabled: boolean eyesBrowser: any eyesLayoutBreakpoints: any eyesFailCypressOnDiff: boolean eyesDisableBrowserFetching: boolean eyesTestConcurrency: number eyesWaitBeforeCapture: number eyesPort?: number eyesIsGlobalHooksSupported?: boolean eyesRemoveDuplicateTests?: boolean universalDebug?: boolean } const {config, eyesConfig} = makeConfig() const logDirname = process.env.APPLITOOLS_LOG_DIR ?? path.resolve(os.tmpdir(), `applitools-logs`) const logger = makeLogger({ handler: {type: 'rolling file', name: 'universal', dirname: logDirname}, level: config.showLogs ? 'info' : 'silent', format: {label: 'cypress-plugin'}, maskLog: false, }) const startServer = makeStartServer({logger, eyesConfig}) const pluginExport = makePluginExport({ startServer, eyesConfig: Object.assign({}, eyesConfig, {appliConfFile: config}), }) export default pluginExport