lingo.dev 0.74.7 → 0.74.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/cli.mjs CHANGED
@@ -704,21 +704,18 @@ import path5 from "path";
704
704
  function createTextFileLoader(pathPattern) {
705
705
  return createLoader({
706
706
  async pull(locale) {
707
- const draftPath = pathPattern.replace("[locale]", locale);
708
- const finalPath = path5.resolve(draftPath);
709
- const exists = await fs5.access(finalPath).then(() => true).catch(() => false);
710
- if (!exists) {
711
- return "";
712
- }
713
- const result = await fs5.readFile(finalPath, "utf-8");
714
- return result;
707
+ const result = await readFileForLocale(pathPattern, locale);
708
+ const trimmedResult = result.trim();
709
+ return trimmedResult;
715
710
  },
716
- async push(locale, data) {
711
+ async push(locale, data, _19, originalLocale) {
717
712
  const draftPath = pathPattern.replace("[locale]", locale);
718
713
  const finalPath = path5.resolve(draftPath);
719
714
  const dirPath = path5.dirname(finalPath);
720
715
  await fs5.mkdir(dirPath, { recursive: true });
721
- const finalPayload = data.trim();
716
+ const trimmedPayload = data.trim();
717
+ const trailingNewLine = await getTrailingNewLine(pathPattern, locale, originalLocale);
718
+ let finalPayload = trimmedPayload + trailingNewLine;
722
719
  await fs5.writeFile(finalPath, finalPayload, {
723
720
  encoding: "utf-8",
724
721
  flag: "w"
@@ -726,6 +723,26 @@ function createTextFileLoader(pathPattern) {
726
723
  }
727
724
  });
728
725
  }
726
+ async function readFileForLocale(pathPattern, locale) {
727
+ const draftPath = pathPattern.replace("[locale]", locale);
728
+ const finalPath = path5.resolve(draftPath);
729
+ const exists = await fs5.access(finalPath).then(() => true).catch(() => false);
730
+ if (!exists) {
731
+ return "";
732
+ }
733
+ return fs5.readFile(finalPath, "utf-8");
734
+ }
735
+ async function getTrailingNewLine(pathPattern, locale, originalLocale) {
736
+ let templateData = await readFileForLocale(pathPattern, locale);
737
+ if (!templateData) {
738
+ templateData = await readFileForLocale(pathPattern, originalLocale);
739
+ }
740
+ if (templateData?.match(/[\r\n]$/)) {
741
+ const ending = templateData?.includes("\r\n") ? "\r\n" : templateData?.includes("\r") ? "\r" : "\n";
742
+ return ending;
743
+ }
744
+ return "";
745
+ }
729
746
 
730
747
  // src/cli/loaders/yaml.ts
731
748
  import YAML from "yaml";
@@ -2294,24 +2311,6 @@ function createPlutilJsonTextLoader() {
2294
2311
  });
2295
2312
  }
2296
2313
 
2297
- // src/cli/loaders/new-line.ts
2298
- function createNewLineLoader() {
2299
- return createLoader({
2300
- async pull(locale, input) {
2301
- return input;
2302
- },
2303
- async push(locale, data, originalInput) {
2304
- if (!data) return "";
2305
- const trimmed = data.replace(/[\r\n]+$/, "");
2306
- if (originalInput?.match(/[\r\n]$/)) {
2307
- const ending = originalInput?.includes("\r\n") ? "\r\n" : originalInput?.includes("\r") ? "\r" : "\n";
2308
- return trimmed + ending;
2309
- }
2310
- return trimmed;
2311
- }
2312
- });
2313
- }
2314
-
2315
2314
  // src/cli/loaders/index.ts
2316
2315
  function createBucketLoader(bucketType, bucketPathPattern) {
2317
2316
  switch (bucketType) {
@@ -2320,7 +2319,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2320
2319
  case "android":
2321
2320
  return composeLoaders(
2322
2321
  createTextFileLoader(bucketPathPattern),
2323
- createNewLineLoader(),
2324
2322
  createAndroidLoader(),
2325
2323
  createFlatLoader(),
2326
2324
  createSyncLoader(),
@@ -2329,7 +2327,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2329
2327
  case "csv":
2330
2328
  return composeLoaders(
2331
2329
  createTextFileLoader(bucketPathPattern),
2332
- createNewLineLoader(),
2333
2330
  createCsvLoader(),
2334
2331
  createFlatLoader(),
2335
2332
  createSyncLoader(),
@@ -2338,7 +2335,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2338
2335
  case "html":
2339
2336
  return composeLoaders(
2340
2337
  createTextFileLoader(bucketPathPattern),
2341
- createNewLineLoader(),
2342
2338
  createPrettierLoader({ parser: "html", alwaysFormat: true }),
2343
2339
  createHtmlLoader(),
2344
2340
  createSyncLoader(),
@@ -2347,7 +2343,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2347
2343
  case "json":
2348
2344
  return composeLoaders(
2349
2345
  createTextFileLoader(bucketPathPattern),
2350
- createNewLineLoader(),
2351
2346
  createPrettierLoader({ parser: "json" }),
2352
2347
  createJsonLoader(),
2353
2348
  createFlatLoader(),
@@ -2357,7 +2352,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2357
2352
  case "markdown":
2358
2353
  return composeLoaders(
2359
2354
  createTextFileLoader(bucketPathPattern),
2360
- createNewLineLoader(),
2361
2355
  createPrettierLoader({ parser: "markdown" }),
2362
2356
  createMarkdownLoader(),
2363
2357
  createSyncLoader(),
@@ -2366,7 +2360,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2366
2360
  case "po":
2367
2361
  return composeLoaders(
2368
2362
  createTextFileLoader(bucketPathPattern),
2369
- createNewLineLoader(),
2370
2363
  createPoLoader(),
2371
2364
  createFlatLoader(),
2372
2365
  createSyncLoader(),
@@ -2376,7 +2369,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2376
2369
  case "properties":
2377
2370
  return composeLoaders(
2378
2371
  createTextFileLoader(bucketPathPattern),
2379
- createNewLineLoader(),
2380
2372
  createPropertiesLoader(),
2381
2373
  createSyncLoader(),
2382
2374
  createUnlocalizableLoader()
@@ -2384,7 +2376,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2384
2376
  case "xcode-strings":
2385
2377
  return composeLoaders(
2386
2378
  createTextFileLoader(bucketPathPattern),
2387
- createNewLineLoader(),
2388
2379
  createXcodeStringsLoader(),
2389
2380
  createSyncLoader(),
2390
2381
  createUnlocalizableLoader()
@@ -2392,7 +2383,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2392
2383
  case "xcode-stringsdict":
2393
2384
  return composeLoaders(
2394
2385
  createTextFileLoader(bucketPathPattern),
2395
- createNewLineLoader(),
2396
2386
  createXcodeStringsdictLoader(),
2397
2387
  createFlatLoader(),
2398
2388
  createSyncLoader(),
@@ -2401,7 +2391,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2401
2391
  case "xcode-xcstrings":
2402
2392
  return composeLoaders(
2403
2393
  createTextFileLoader(bucketPathPattern),
2404
- createNewLineLoader(),
2405
2394
  createPlutilJsonTextLoader(),
2406
2395
  createJsonLoader(),
2407
2396
  createXcodeXcstringsLoader(),
@@ -2413,7 +2402,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2413
2402
  case "yaml":
2414
2403
  return composeLoaders(
2415
2404
  createTextFileLoader(bucketPathPattern),
2416
- createNewLineLoader(),
2417
2405
  createPrettierLoader({ parser: "yaml" }),
2418
2406
  createYamlLoader(),
2419
2407
  createFlatLoader(),
@@ -2423,7 +2411,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2423
2411
  case "yaml-root-key":
2424
2412
  return composeLoaders(
2425
2413
  createTextFileLoader(bucketPathPattern),
2426
- createNewLineLoader(),
2427
2414
  createPrettierLoader({ parser: "yaml" }),
2428
2415
  createYamlLoader(),
2429
2416
  createRootKeyLoader(true),
@@ -2434,7 +2421,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2434
2421
  case "flutter":
2435
2422
  return composeLoaders(
2436
2423
  createTextFileLoader(bucketPathPattern),
2437
- createNewLineLoader(),
2438
2424
  createPrettierLoader({ parser: "json" }),
2439
2425
  createJsonLoader(),
2440
2426
  createFlutterLoader(),
@@ -2445,7 +2431,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2445
2431
  case "xliff":
2446
2432
  return composeLoaders(
2447
2433
  createTextFileLoader(bucketPathPattern),
2448
- createNewLineLoader(),
2449
2434
  createXliffLoader(),
2450
2435
  createFlatLoader(),
2451
2436
  createSyncLoader(),
@@ -2454,7 +2439,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2454
2439
  case "xml":
2455
2440
  return composeLoaders(
2456
2441
  createTextFileLoader(bucketPathPattern),
2457
- createNewLineLoader(),
2458
2442
  createXmlLoader(),
2459
2443
  createFlatLoader(),
2460
2444
  createSyncLoader(),
@@ -2463,7 +2447,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2463
2447
  case "srt":
2464
2448
  return composeLoaders(
2465
2449
  createTextFileLoader(bucketPathPattern),
2466
- createNewLineLoader(),
2467
2450
  createSrtLoader(),
2468
2451
  createSyncLoader(),
2469
2452
  createUnlocalizableLoader()
@@ -2478,7 +2461,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
2478
2461
  case "vtt":
2479
2462
  return composeLoaders(
2480
2463
  createTextFileLoader(bucketPathPattern),
2481
- createNewLineLoader(),
2482
2464
  createVttLoader(),
2483
2465
  createSyncLoader(),
2484
2466
  createUnlocalizableLoader()
@@ -3175,7 +3157,7 @@ function displaySummary(results) {
3175
3157
  // package.json
3176
3158
  var package_default = {
3177
3159
  name: "lingo.dev",
3178
- version: "0.74.7",
3160
+ version: "0.74.8",
3179
3161
  description: "Lingo.dev CLI",
3180
3162
  private: false,
3181
3163
  publishConfig: {