MCPcopy Index your code
hub / github.com/lingodotdev/lingo.dev / createTextFileLoader

Function createTextFileLoader

packages/cli/src/cli/loaders/text-file.ts:6–39  ·  view source on GitHub ↗
(
  pathPattern: string,
)

Source from the content-addressed store, hash-verified

4import { createLoader } from "./_utils";
5
6export default function createTextFileLoader(
7 pathPattern: string,
8): ILoader<void, string> {
9 return createLoader({
10 async pull(locale) {
11 const result = await readFileForLocale(pathPattern, locale);
12 const trimmedResult = result.trim();
13 return trimmedResult;
14 },
15 async push(locale, data, _, originalLocale) {
16 const draftPath = pathPattern.replaceAll("[locale]", locale);
17 const finalPath = path.resolve(draftPath);
18
19 // Create parent directories if needed
20 const dirPath = path.dirname(finalPath);
21 await fs.mkdir(dirPath, { recursive: true });
22
23 const trimmedPayload = data.trim();
24
25 // Add trailing new line if needed
26 const trailingNewLine = await getTrailingNewLine(
27 pathPattern,
28 locale,
29 originalLocale,
30 );
31 let finalPayload = trimmedPayload + trailingNewLine;
32
33 await fs.writeFile(finalPath, finalPayload, {
34 encoding: "utf-8",
35 flag: "w",
36 });
37 },
38 });
39}
40
41async function readFileForLocale(pathPattern: string, locale: string) {
42 const draftPath = pathPattern.replaceAll("[locale]", locale);

Callers 2

createBucketLoaderFunction · 0.85
index.spec.tsFile · 0.85

Calls 1

createLoaderFunction · 0.90

Tested by

no test coverage detected