viteSpec top-level property

FigSpec viteSpec
final

Implementation

final FigSpec viteSpec = FigSpec(
  name: 'vite',
  description: 'Native ESM-powered web dev build tool',
  icon: 'https://vitejs.dev/logo.svg',
  args: [
    FigArg(
      name: 'root',
      isOptional: true,
      template: 'folders',
    ),
  ],
  options: [
    FigOption(
      name: ['-h', '--help'],
      description: 'Show help message',
      isPersistent: true,
    ),
    FigOption(
      name: ['--host'],
      description: 'Specify the hostname',
      args: [
        FigArg(
          name: 'host',
          isOptional: true,
        ),
      ],
    ),
    FigOption(
      name: ['--port'],
      description: 'Specify the port',
      args: [
        FigArg(
          name: 'port',
        ),
      ],
    ),
    FigOption(
      name: ['--https'],
      description: 'Use TLS + HTTP/2',
    ),
    FigOption(
      name: ['--open'],
      description: 'Open browser on startup',
      args: [
        FigArg(
          name: 'browser',
          isOptional: true,
          template: 'filepaths',
        ),
      ],
    ),
    FigOption(
      name: ['--cors'],
      description: 'Enable CORS',
    ),
    FigOption(
      name: ['--strictPort'],
      description: 'Exit if the port is already in use',
    ),
    FigOption(
      name: ['--force'],
      description: 'For the optimizer to re-bundle',
    ),
    FigOption(
      name: ['-c', '--config'],
      description: 'Use the specified config file',
      isPersistent: true,
      args: [
        FigArg(
          name: 'file',
          template: 'filepaths',
        ),
      ],
    ),
    FigOption(
      name: ['--base'],
      description: 'Public base path',
      isPersistent: true,
      args: [
        FigArg(
          name: 'path',
          defaultValue: '/',
        ),
      ],
    ),
    FigOption(
      name: ['-l', '--logLevel'],
      description: 'Set the log level',
      isPersistent: true,
      args: [
        FigArg(
          name: 'level',
          suggestions: [
            FigSuggestion(name: 'info', icon: '💬'),
            FigSuggestion(name: 'warn', icon: '⚠️'),
            FigSuggestion(name: 'error', icon: '💥'),
            FigSuggestion(name: 'silent', icon: '🤫'),
          ],
        ),
      ],
    ),
    FigOption(
      name: ['--clearScreen'],
      description: 'Enable screen clearing when logging',
      isPersistent: true,
    ),
    FigOption(
      name: ['-d', '--debug'],
      description: 'Show debug logs',
      isPersistent: true,
      args: [
        FigArg(
          name: 'feat',
          isOptional: true,
        ),
      ],
    ),
    FigOption(
      name: ['-f', '--filter'],
      description: 'Filter debug logs',
      isPersistent: true,
      args: [
        FigArg(
          name: 'filter',
        ),
      ],
    ),
    FigOption(
      name: ['-m', '--mode'],
      description: 'Set env mode',
      isPersistent: true,
      args: [
        FigArg(
          name: 'mode',
          generators: [
            FigGenerator(
              script: ['ls', '-l1A'],
              postProcess: (String out, [List<String>? tokens]) {
                return out
                    .split('\n')
                    .where((line) => line.startsWith('.env.'))
                    .map((name) => FigSuggestion(name: name))
                    .toList();
              },
            ),
          ],
        ),
      ],
    ),
    FigOption(
      name: ['-v', '--version'],
      description: 'Display version number',
    ),
  ],
  subcommands: [
    FigSubcommand(
      name: 'build',
      icon: '🛠',
      description: 'Build for production',
      args: [
        FigArg(
          name: 'root',
          isOptional: true,
          template: 'folders',
        ),
      ],
      options: [
        FigOption(
          name: ['--target'],
          description: 'Transpile target (must be a valid esbuild target)',
          args: [
            FigArg(
              name: 'target',
            ),
          ],
        ),
        FigOption(
          name: ['--outDir'],
          description: 'Output directory',
          args: [
            FigArg(
              name: 'dir',
              template: 'folders',
            ),
          ],
        ),
        FigOption(
          name: ['--assetsDir'],
          description: 'Directory under outDir to place assets in',
          args: [
            FigArg(
              name: 'dir',
              template: 'folders',
            ),
          ],
        ),
        FigOption(
          name: ['--assetsInlineLimit'],
          description: 'Static asset base64 inline threshold in bytes',
          args: [
            FigArg(
              name: 'number',
            ),
          ],
        ),
        FigOption(
          name: ['--ssr'],
          description: 'Build specified entry for server-side rendering',
          args: [
            FigArg(
              name: 'entry',
              template: 'filepaths',
              isOptional: true,
            ),
          ],
        ),
        FigOption(
          name: ['--sourcemap'],
          description: 'Output sourcemaps for build',
        ),
        FigOption(
          name: ['--minify'],
          description: 'Enable minification',
          args: [
            FigArg(
              name: 'minifier',
              isOptional: true,
              suggestions: [
                FigSuggestion(name: 'terser'),
                FigSuggestion(name: 'esbuild'),
              ],
            ),
          ],
        ),
        FigOption(
          name: ['--manifest'],
          description: 'Emit build manifest json',
          args: [
            FigArg(
              name: 'name',
              isOptional: true,
            ),
          ],
        ),
        FigOption(
          name: ['--ssrManifest'],
          description: 'Emit ssr manifest json',
          args: [
            FigArg(
              name: 'name',
              isOptional: true,
            ),
          ],
        ),
        FigOption(
          name: ['--emptyOutDir'],
          description: "Force empty outDir when it's outside of root",
        ),
        FigOption(
          name: ['-w', '--watch'],
          description: 'Rebuilds when modules have changed on disk',
        ),
      ],
    ),
    FigSubcommand(
      name: 'optimize',
      icon: '📦',
      description: 'Pre-bundle dependencies',
      args: [
        FigArg(
          name: 'root',
          isOptional: true,
          template: 'folders',
        ),
      ],
      options: [
        FigOption(
          name: ['--force'],
          description: 'For the optimizer to re-bundle',
        ),
      ],
    ),
    FigSubcommand(
      name: 'preview',
      icon: '✨',
      description: 'Locally preview the production build',
      args: [
        FigArg(
          name: 'root',
          isOptional: true,
          template: 'folders',
        ),
      ],
      options: [
        FigOption(
          name: ['--host'],
          description: 'Specify the hostname',
          args: [
            FigArg(
              name: 'host',
              isOptional: true,
            ),
          ],
        ),
        FigOption(
          name: ['--port'],
          description: 'Specify the port',
          args: [
            FigArg(
              name: 'port',
            ),
          ],
        ),
        FigOption(
          name: ['--https'],
          description: 'Use TLS + HTTP/2',
        ),
        FigOption(
          name: ['--open'],
          description: 'Open browser on startup',
          args: [
            FigArg(
              name: 'browser',
              isOptional: true,
              template: 'filepaths',
            ),
          ],
        ),
        FigOption(
          name: ['--strictPort'],
          description: 'Exit if the port is already in use',
        ),
      ],
    ),
  ],
);