39 lines
751 B
TypeScript
39 lines
751 B
TypeScript
import type { Options } from 'prettier';
|
|
|
|
let prettier: typeof import('prettier');
|
|
try {
|
|
prettier = require('prettier');
|
|
} catch {}
|
|
|
|
export interface ExistingPrettierConfig {
|
|
sourceFilepath: string;
|
|
config: Options;
|
|
}
|
|
|
|
export async function resolveUserExistingPrettierConfig(): Promise<ExistingPrettierConfig | null> {
|
|
if (!prettier) {
|
|
return null;
|
|
}
|
|
try {
|
|
const filepath = await prettier.resolveConfigFile();
|
|
if (!filepath) {
|
|
return null;
|
|
}
|
|
|
|
const config = await prettier.resolveConfig(process.cwd(), {
|
|
useCache: false,
|
|
config: filepath,
|
|
});
|
|
if (!config) {
|
|
return null;
|
|
}
|
|
|
|
return {
|
|
sourceFilepath: filepath,
|
|
config: config,
|
|
};
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|