import type { LoaderContext } from 'webpack'; import type { ExtractorConfigInput } from '../extractor/types.js'; export type PluginConfig = { requestConfig?: string; experimental?: { /** A path to the messages file that you'd like to create a declaration for. In case you want to consider multiple files, you can pass an array of paths. */ createMessagesDeclaration?: string | Array; /** * Relative path(s) to your source code files. */ srcPath?: string | Array; /** Configuration about your catalogs of messages */ messages?: ExtractorConfigInput['messages'] & { /** * When enabled, ICU messages are precompiled at build time, resulting in smaller bundles and faster message formatting. */ precompile?: boolean; }; /** * Enables the usage of [`useExtracted`](/docs/usage/extraction). */ extract?: ExtractorConfigInput['extract']; }; }; export type TurbopackLoaderContext = Pick, 'rootContext' | 'sourceMap' | 'getOptions' | 'getResolve' | 'emitWarning' | 'emitError' | 'getLogger' | 'context' | 'loaderIndex' | 'loaders' | 'resourcePath' | 'resourceQuery' | 'resourceFragment' | 'async' | 'callback' | 'cacheable' | 'addDependency' | 'dependency' | 'addContextDependency' | 'addMissingDependency' | 'getDependencies' | 'getContextDependencies' | 'getMissingDependencies' | 'clearDependencies' | 'resource' | 'request' | 'remainingRequest' | 'currentRequest' | 'previousRequest' | 'query' | 'data'>;