diff --git a/types/prettier/index.d.ts b/types/prettier/index.d.ts index 48c89a5c57..07cf09fbba 100644 --- a/types/prettier/index.d.ts +++ b/types/prettier/index.d.ts @@ -102,6 +102,10 @@ export interface ResolveConfigOptions { * If set to `false`, all caching will be bypassed. */ useCache?: boolean; + /** + * If set to `true`, result will be returned directly. + */ + sync?: boolean; } /** @@ -114,7 +118,9 @@ export interface ResolveConfigOptions { * * The promise will be rejected if there was an error parsing the configuration file. */ -export function resolveConfig(filePath?: string, options?: ResolveConfigOptions): Promise; +export function resolveConfig(filePath: string | undefined, options: ResolveConfigOptions & { sync: true }): null | Options; +export function resolveConfig(filePath?: string, options?: ResolveConfigOptions & { sync?: false }): Promise; +export function resolveConfig(filePath?: string, options?: ResolveConfigOptions): null | Options | Promise; /** * As you repeatedly call `resolveConfig`, the file system structure will be cached for performance. This function will clear the cache. diff --git a/types/prettier/prettier-tests.ts b/types/prettier/prettier-tests.ts index a51e8902c4..e88ebe4770 100644 --- a/types/prettier/prettier-tests.ts +++ b/types/prettier/prettier-tests.ts @@ -24,4 +24,30 @@ prettier.resolveConfig('path/to/somewhere').then(options => { } }); +prettier.resolveConfig('path/to/somewhere', undefined).then(options => { + if (options !== null) { + const formatted = prettier.format('hello world', options); + } +}); + +prettier.resolveConfig('path/to/somewhere', {}).then(options => { + if (options !== null) { + const formatted = prettier.format('hello world', options); + } +}); + +prettier.resolveConfig('path/to/somewhere', { sync: false }).then(options => { + if (options !== null) { + const formatted = prettier.format('hello world', options); + } +}); + +// $ExpectType Options | Promise | null +prettier.resolveConfig('path/to/somewhere', { sync: true as boolean }); + +const options = prettier.resolveConfig('path/to/somewhere', { sync: true }); +if (options !== null) { + const formatted = prettier.format('hello world', options); +} + prettier.clearConfigCache();