You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

131 lines
3.0 KiB

/// <reference types="webpack-dev-server" />
import { Configuration, Entry, Plugin, Rule, RuleSetCondition, RuleSetLoader, RuleSetRule, RuleSetUse, RuleSetUseItem } from 'webpack';
import { DevConfiguration } from '../types';
declare type AnyConfiguration = Configuration | DevConfiguration;
interface RuleItem {
rule: RuleSetRule;
index: number;
}
declare type ResolvedRuleSet = string | RuleSetLoader;
interface PluginItem {
plugin: Plugin;
index: number;
}
interface LoaderItem {
rule: RuleSetRule;
ruleIndex: number;
loader: RuleSetUseItem;
loaderIndex: number;
}
/**
*
* @param loaderName
* @param rules
* @category utils
*/
export declare function findLoader(loaderName: string, rules: RuleSetRule[]): RuleSetRule | null;
/**
*
* @param rules
* @category utils
*/
export declare function getRulesAsItems(rules: RuleSetRule[]): RuleItem[];
/**
*
* @param config
* @category utils
*/
export declare function getRules(config: AnyConfiguration): RuleItem[];
/**
* Get the babel-loader rule created by `@expo/webpack-config/loaders`
*
* @param config
* @category utils
*/
export declare function getExpoBabelLoader(config: AnyConfiguration): Rule | null;
/**
*
* @param rules
* @category utils
*/
export declare function getRulesFromRules(rules: RuleSetRule[]): RuleSetRule[];
/**
*
* @param rules
* @category utils
*/
export declare function getLoadersFromRules(rules: RuleItem[]): LoaderItem[];
/**
*
* @param config
* @category utils
*/
export declare function getLoaders(config: AnyConfiguration): LoaderItem[];
/**
*
* @param config
* @param files
* @category utils
*/
export declare function getRulesByMatchingFiles(config: AnyConfiguration, files: string[]): {
[key: string]: RuleItem[];
};
/**
*
* @param config
* @param files
* @category utils
*/
export declare function rulesMatchAnyFiles(config: AnyConfiguration, files: string[]): boolean;
/**
*
* @param rule
* @category utils
*/
export declare function resolveRuleSetUse(rule?: RuleSetUse | RuleSetUse[]): ResolvedRuleSet[];
/**
*
* @param condition
* @param file
* @category utils
*/
export declare function conditionMatchesFile(condition: RuleSetCondition | undefined, file: string): boolean;
/**
*
* @param param0
* @category utils
*/
export declare function getPlugins({ plugins }: AnyConfiguration): PluginItem[];
/**
*
* @param config
* @param name
* @category utils
*/
export declare function getPluginsByName(config: AnyConfiguration, name: string): PluginItem[];
/**
*
* @param loader
* @category utils
*/
export declare function isRuleSetItem(loader: RuleSetUse): loader is RuleSetUseItem;
/**
*
* @param loader
* @category utils
*/
export declare function isRuleSetLoader(loader: RuleSetUse): loader is RuleSetLoader;
/**
*
* @param arg
* @category utils
*/
export declare function isEntry(arg: any): arg is Entry;
/**
*
* @param arg
* @category utils
*/
export declare function resolveEntryAsync(arg: any): Promise<Entry>;
export {};