import pc from 'picocolors';
import {DEPENDENCIES} from '../../../../src/dependencies';
import {
  Framework,
  FrameworkTypes,
  FrameworkVariants,
} from '../../../../src/interfaces';

const CONFIG: Framework = {
  type: FrameworkTypes.SERVER,
  name: 'express',
  display: 'Miro Node Client Library with Express',
  color: pc.blue,
  scopes: ['boards:read', 'boards:write'],
  sdkUri: '',
  redirectUri: 'http://localhost:3000/auth/miro/callback',
  customPackageJSONFields: {
    scripts: {
      start: 'vite',
      build: 'vite build',
      serve: 'vite preview',
    },
    devDependencies: {
      vite: '3.0.3',
    },
    type: 'module',
  },
  variants: [
    {
      name: FrameworkVariants.js,
      display: 'JavaScript',
      color: pc.yellow,
      deps: {
        dependencies: {
          ...DEPENDENCIES.express,
          ...DEPENDENCIES.miroNode,
          ...DEPENDENCIES.expressCookie,
          ...DEPENDENCIES.dotenv,
        },
        devDependencies: {
          ...DEPENDENCIES.vitePluginNode,
        },
      },
    },
    {
      name: FrameworkVariants.ts,
      display: 'TypeScript',
      color: pc.blue,
      deps: {
        dependencies: {
          ...DEPENDENCIES.express,
          ...DEPENDENCIES.expressCookie,
          ...DEPENDENCIES.miroNode,
          ...DEPENDENCIES.dotenv,
          ...DEPENDENCIES.typescript,
        },
        devDependencies: {
          ...DEPENDENCIES.miroWebSdkTypes,
          ...DEPENDENCIES.expressTypes,
          ...DEPENDENCIES.expressCookieTypes,
          ...DEPENDENCIES.nodeTypes,
          ...DEPENDENCIES.vitePluginNode,
        },
      },
    },
  ],
};
export default CONFIG;
