UNPKG

2.52 kBTypeScriptView Raw
1import express from 'express'
2import webpack from 'webpack'
3import WebpackChainConfig from 'webpack-chain'
4
5export interface LogOptions {
6 logLevel: number
7 debug: boolean
8 silly: boolean
9 quiet: boolean
10 logUpdate: boolean
11}
12
13export interface Options extends LogOptions {
14 dev: boolean
15 baseDir: string
16 config: string | false
17 inspectWebpack: boolean
18}
19
20export interface WebpackConfigContext {
21 isServer: boolean
22 isClient: boolean
23 dev: boolean
24 type: string
25}
26
27export type ChainWebpackFn = (config: WebpackChainConfig, context: WebpackConfigContext) => void
28
29export type ConfigureWebpackFn = (config: webpack.Configuration, context: WebpackConfigContext) => void
30
31export type ConfigureServerFn = (server: express.Express) => void
32
33export type GeneratedRoutes = string[]
34
35export interface PluginDef {
36 name: string
37 apply: (ream: Ream) => void
38}
39
40export interface GenerateOptions {
41 routes: GeneratedRoutes
42}
43
44export 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
71export 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
96export default function ream(options?: Partial<Options>, config?: Partial<Config>): Ream