mirror of
https://github.com/hanzoai/next.js.git
synced 2026-09-24 17:00:51 +00:00
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
37 lines
841 B
TypeScript
37 lines
841 B
TypeScript
/**
|
|
* Simple object check.
|
|
* @param item
|
|
* @returns {boolean}
|
|
*/
|
|
export function isObject(item: unknown): boolean {
|
|
return Boolean(item && typeof item === "object" && !Array.isArray(item));
|
|
}
|
|
|
|
/**
|
|
* Deep merge two objects.
|
|
* @param target
|
|
* @param ...sources
|
|
*/
|
|
export default function deepMerge<T extends object, R extends object>(
|
|
target: T,
|
|
source: R,
|
|
): T {
|
|
const output = { ...target };
|
|
if (isObject(target) && isObject(source)) {
|
|
Object.keys(source).forEach((key) => {
|
|
if (isObject(source[key])) {
|
|
// @ts-ignore
|
|
if (!(key in target)) {
|
|
Object.assign(output, { [key]: source[key] });
|
|
} else {
|
|
output[key] = deepMerge(target[key], source[key]);
|
|
}
|
|
} else {
|
|
Object.assign(output, { [key]: source[key] });
|
|
}
|
|
});
|
|
}
|
|
|
|
return output;
|
|
}
|