1 | import express from 'express'
|
2 | import webpack from 'webpack'
|
3 | import WebpackChainConfig from 'webpack-chain'
|
4 |
|
5 | export interface LogOptions {
|
6 | logLevel: number
|
7 | debug: boolean
|
8 | silly: boolean
|
9 | quiet: boolean
|
10 | logUpdate: boolean
|
11 | }
|
12 |
|
13 | export interface Options extends LogOptions {
|
14 | dev: boolean
|
15 | baseDir: string
|
16 | config: string | false
|
17 | inspectWebpack: boolean
|
18 | }
|
19 |
|
20 | export interface WebpackConfigContext {
|
21 | isServer: boolean
|
22 | isClient: boolean
|
23 | dev: boolean
|
24 | type: string
|
25 | }
|
26 |
|
27 | export type ChainWebpackFn = (config: WebpackChainConfig, context: WebpackConfigContext) => void
|
28 |
|
29 | export type ConfigureWebpackFn = (config: webpack.Configuration, context: WebpackConfigContext) => void
|
30 |
|
31 | export type ConfigureServerFn = (server: express.Express) => void
|
32 |
|
33 | export type GeneratedRoutes = string[]
|
34 |
|
35 | export interface PluginDef {
|
36 | name: string
|
37 | apply: (ream: Ream) => void
|
38 | }
|
39 |
|
40 | export interface GenerateOptions {
|
41 | routes: GeneratedRoutes
|
42 | }
|
43 |
|
44 | export interface Config {
|
45 | entry: string
|
46 | outDir: string
|
47 | fsRoutes: boolean | {
|
48 | baseDir: string
|
49 | basePath: string
|
50 | match: RegExp
|
51 | }
|
52 | transpileDependencies: string[]
|
53 | runtimeCompiler: boolean
|
54 | productionSourceMap: boolean
|
55 | chainWebpack: ChainWebpackFn
|
56 | configureWebpack: ConfigureWebpackFn
|
57 | server: {
|
58 | port: number
|
59 | host: string
|
60 | }
|
61 | plugins: PluginDef[]
|
62 | generate: GenerateOptions
|
63 | css: {
|
64 | extract: boolean
|
65 | }
|
66 | pwa: boolean
|
67 | minimize: boolean
|
68 | defaultBabelPreset: 'minimal' | false
|
69 | }
|
70 |
|
71 | export class Ream {
|
72 | constructor(options?: Partial<Options>, config?: Partial<Config>)
|
73 | chainWebpack(ChainWebpackFn): void
|
74 | addGenerateRoutes(GeneratedRoutes): void
|
75 | hasPlugin(string): PluginDef
|
76 | loadPlugins(): void
|
77 | createConfigs(): void
|
78 | createCompilers(): void
|
79 | build(): Promise<void>
|
80 | generate(opts?: GenerateOptions): Promise<void>
|
81 | generateOnly(opts?: GenerateOptions): Promise<void>
|
82 | configureServer(fn: ConfigureServerFn): void
|
83 | prepareFiles(): Promise<void>
|
84 | writeEnhanceAppFile(): Promise<void>
|
85 | writeEntryFile(): Promise<void>
|
86 | getServer(): Promise<express.Express>
|
87 | getRequestHandler(): Promise<express.Application>
|
88 | start(): Promise<void>
|
89 | prepareWebpack(): Promise<void>
|
90 | prepareProduction(): Promise<void>
|
91 | createRenderer({ serverBundle, clientManifest, serverType }: { serverBundle: string | object, clientManifest: object, serverType: 'generate' | 'production' }): void
|
92 | resolveOutDir(...args): string
|
93 | resolveBaseDir(...args): string
|
94 | }
|
95 |
|
96 | export default function ream(options?: Partial<Options>, config?: Partial<Config>): Ream
|