webpack-dependency-suite
Version:
A set of Webpack plugins, loaders and utilities designed for advanced dependency resolution
76 lines (64 loc) • 2.47 kB
TypeScript
import * as SourceMap from 'source-map'
import * as fs from 'fs'
import * as Webpack from '../custom_typings/webpack'
export interface CommentLoaderOptions extends AddLoadersOptions {
alwaysUseCommentBundles?: boolean
enableGlobbing?: boolean
}
export type ConventionFunction = (fullPath: string, query?: ConventionOptions, loaderInstance?: Webpack.Core.LoaderContext) => string | string[] | Promise<string | string[]>
export type Convention = 'extension-swap' | ConventionFunction
export interface ConventionOptions extends AddLoadersOptions {
convention: Convention | Array<Convention>
extension?: string | string[]
[customSetting: string]: any
}
export type SelectorAndAttribute = { selector: string, attribute: string }
export interface HtmlRequireOptions extends AddLoadersOptions {
selectorsAndAttributes?: Array<SelectorAndAttribute>
globReplaceRegex?: RegExp | undefined
enableGlobbing?: boolean
}
export interface ListBasedRequireOptions extends AddLoadersOptions {
packagePropertyPath: string
// recursiveProcessing?: boolean | undefined
// processDependencies?: boolean | undefined
enableGlobbing?: boolean
rootDir?: string
/**
* Useful setting to true when using linked modules
*/
fallbackToMainContext?: boolean
/**
* only add dependencies to the FIRST file of the given compilation, per each module
* TODO: add cache for when this is false (otherwise it can get really slow!)
*/
requireInFirstFileOnly?: boolean
}
export interface PathWithLoaders {
path: string
/**
* strings of loaders with their queries without the '!'
* (if want to cancel out all previous loaders, use '!!' at the beginning)
*/
loaders?: Array<string> | undefined
}
export type AddLoadersMethod = (files: Array<RequireData>, loaderInstance?: Webpack.Core.LoaderContext) => Array<PathWithLoaders> | Promise<Array<PathWithLoaders>>
export interface RequireData extends RequireDataBaseResolved {
loaders?: Array<string> | undefined
fallbackLoaders?: Array<string> | undefined
}
export interface RequireDataBaseResolved extends RequireDataBase {
resolve: EnhancedResolve.ResolveResult
}
export interface RequireDataBaseMaybeResolved extends RequireDataBase {
resolve: EnhancedResolve.ResolveResult | undefined
}
export interface RequireDataBase {
literal: string
lazy: boolean
chunk?: string
}
export interface AddLoadersOptions {
addLoadersCallback?: AddLoadersMethod
[customSetting: string]: any
}