Skip to content

Commit 620647d

Browse files
committed
fix(cli): run prettier in context of the target file
1 parent 8368dd3 commit 620647d

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

.changeset/spicy-birds-wave.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"lingo.dev": patch
3+
---
4+
5+
run prettier in context of the target file

packages/cli/src/cli/loaders/index.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,15 @@ export default function createBucketLoader(
6363
case "html":
6464
return composeLoaders(
6565
createTextFileLoader(bucketPathPattern),
66-
createPrettierLoader({ parser: "html", alwaysFormat: true }),
66+
createPrettierLoader({ parser: "html", bucketPathPattern }),
6767
createHtmlLoader(),
6868
createSyncLoader(),
6969
createUnlocalizableLoader(options.isCacheRestore, options.returnUnlocalizedKeys),
7070
);
7171
case "json":
7272
return composeLoaders(
7373
createTextFileLoader(bucketPathPattern),
74-
createPrettierLoader({ parser: "json" }),
74+
createPrettierLoader({ parser: "json", bucketPathPattern }),
7575
createJsonLoader(),
7676
createFlatLoader(),
7777
createSyncLoader(),
@@ -80,7 +80,7 @@ export default function createBucketLoader(
8080
case "markdown":
8181
return composeLoaders(
8282
createTextFileLoader(bucketPathPattern),
83-
createPrettierLoader({ parser: "markdown" }),
83+
createPrettierLoader({ parser: "markdown", bucketPathPattern }),
8484
createMarkdownLoader(),
8585
createSyncLoader(),
8686
createUnlocalizableLoader(options.isCacheRestore, options.returnUnlocalizedKeys),
@@ -130,7 +130,7 @@ export default function createBucketLoader(
130130
case "yaml":
131131
return composeLoaders(
132132
createTextFileLoader(bucketPathPattern),
133-
createPrettierLoader({ parser: "yaml" }),
133+
createPrettierLoader({ parser: "yaml", bucketPathPattern }),
134134
createYamlLoader(),
135135
createFlatLoader(),
136136
createSyncLoader(),
@@ -139,7 +139,7 @@ export default function createBucketLoader(
139139
case "yaml-root-key":
140140
return composeLoaders(
141141
createTextFileLoader(bucketPathPattern),
142-
createPrettierLoader({ parser: "yaml" }),
142+
createPrettierLoader({ parser: "yaml", bucketPathPattern }),
143143
createYamlLoader(),
144144
createRootKeyLoader(true),
145145
createFlatLoader(),
@@ -149,7 +149,7 @@ export default function createBucketLoader(
149149
case "flutter":
150150
return composeLoaders(
151151
createTextFileLoader(bucketPathPattern),
152-
createPrettierLoader({ parser: "json" }),
152+
createPrettierLoader({ parser: "json", bucketPathPattern }),
153153
createJsonLoader(),
154154
createFlutterLoader(),
155155
createFlatLoader(),

packages/cli/src/cli/loaders/prettier.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
import path from "path";
12
import prettier, { Options } from "prettier";
23
import { ILoader } from "./_types";
34
import { createLoader } from "./_utils";
45

56
export type PrettierLoaderOptions = {
67
parser: Options["parser"];
8+
bucketPathPattern: string;
79
alwaysFormat?: boolean;
810
};
911

@@ -13,8 +15,11 @@ export default function createPrettierLoader(options: PrettierLoaderOptions): IL
1315
return data;
1416
},
1517
async push(locale, data) {
16-
const prettierConfig = await loadPrettierConfig();
17-
if (!prettierConfig && !options.alwaysFormat) {
18+
const draftPath = options.bucketPathPattern.replaceAll("[locale]", locale);
19+
const finalPath = path.resolve(draftPath);
20+
21+
const prettierConfig = await loadPrettierConfig(finalPath);
22+
if (!prettierConfig) {
1823
return data;
1924
}
2025

@@ -36,9 +41,9 @@ export default function createPrettierLoader(options: PrettierLoaderOptions): IL
3641
});
3742
}
3843

39-
async function loadPrettierConfig() {
44+
async function loadPrettierConfig(filePath: string) {
4045
try {
41-
const config = await prettier.resolveConfig(process.cwd());
46+
const config = await prettier.resolveConfig(filePath);
4247
return config;
4348
} catch (error) {
4449
return {};

0 commit comments

Comments
 (0)