- Implemented astro-i18next for multi-language support, including English, Dutch, and Italian. - Configured default locale and language fallback settings. - Defined routes for localized content in the configuration. - Updated package.json and package-lock.json to include new dependencies for i18next and related plugins.
121 lines
4.7 KiB
TypeScript
121 lines
4.7 KiB
TypeScript
export { ProloadError } from './error.cjs';
|
|
|
|
export interface Config<T> {
|
|
/** An absolute path to a resolved configuration file */
|
|
filePath: string;
|
|
/** The raw value of a resolved configuration file, before being merged with any `extends` configurations */
|
|
raw: any;
|
|
/** The final, resolved value of a resolved configuration file */
|
|
value: T;
|
|
}
|
|
|
|
export interface ResolveOptions {
|
|
/**
|
|
* An exact filePath to a configuration file which should be loaded. If passed, this will keep proload from searching
|
|
* for matching files.
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#filepath)
|
|
*/
|
|
filePath?: string;
|
|
/**
|
|
* The location from which to begin searching up the directory tree
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#cwd)
|
|
*/
|
|
cwd?: string;
|
|
/**
|
|
* If a configuration _must_ be resolved. If `true`, Proload will throw an error when a configuration is not found
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#mustExist)
|
|
*/
|
|
mustExist?: boolean;
|
|
/**
|
|
* A function to completely customize module resolution
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#accept)
|
|
*/
|
|
accept?(fileName: string, context: { directory: string }): boolean|void;
|
|
}
|
|
|
|
export interface LoadOptions<T> {
|
|
/**
|
|
* An exact filePath to a configuration file which should be loaded. If passed, this will keep proload from searching
|
|
* for matching files.
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#filepath)
|
|
*/
|
|
filePath?: string;
|
|
/**
|
|
* The location from which to begin searching up the directory tree
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#cwd)
|
|
*/
|
|
cwd?: string;
|
|
/**
|
|
* If a configuration _must_ be resolved. If `true`, Proload will throw an error when a configuration is not found
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#mustExist)
|
|
*/
|
|
mustExist?: boolean;
|
|
/**
|
|
* If a resolved configuration file exports a factory function, this value will be passed as arguments to the function
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#context)
|
|
*/
|
|
context?: any;
|
|
/**
|
|
* A function to customize the `merge` behavior when a config with `extends` is encountered
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#merge)
|
|
*/
|
|
merge?(x: Partial<T>, y: Partial<T>): Partial<T>;
|
|
/**
|
|
* A function to completely customize module resolution
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#accept)
|
|
*/
|
|
accept?(fileName: string, context: { directory: string }): boolean|void;
|
|
}
|
|
|
|
export interface Plugin {
|
|
/** a unique identifier for your plugin */
|
|
name: string;
|
|
/** extensions which should be resolved, including the leading period */
|
|
extensions?: string[];
|
|
/** fileName patterns which should be resolved, excluding the trailing extension */
|
|
fileNames?: string[];
|
|
/** Executed before require/import of config file */
|
|
register?(filePath: string): Promise<void>;
|
|
/** Modify the config file before passing it along */
|
|
transform?(module: any): Promise<any>;
|
|
}
|
|
|
|
/**
|
|
* An `async` function which searches for a configuration file
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#resolve)
|
|
*/
|
|
export async function resolve(namespace: string, opts?: ResolveOptions): Promise<string|undefined>;
|
|
|
|
interface Load<T extends Record<any, any> = Record<any, any>> {
|
|
/**
|
|
* @param namespace The namespace which will be searched for the configuration file.
|
|
*
|
|
* For example, passing `"donut"` would resolve a files like `donut.config.js`, `donut.config.cjs`, and `donut.config.mjs` as well as a `package.json` with a `donut` property.
|
|
*
|
|
* @param opts Options to customize loader behavior
|
|
*/
|
|
(namespace: string, opts?: LoadOptions<T>): Promise<Config<T>|undefined>;
|
|
use(plugins: Plugin[]): void;
|
|
}
|
|
|
|
/**
|
|
* An `async` function which searches for and loads a configuration file
|
|
*
|
|
* [Read the `@proload/core` docs](https://github.com/natemoo-re/proload/tree/main/packages/core#load)
|
|
*/
|
|
declare const load: Load;
|
|
|
|
export = load;
|
|
export default load;
|