lingo.dev 0.114.1 → 0.114.2

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
@@ -11470,6 +11470,14 @@ async function execute(input2) {
11470
11470
  }
11471
11471
  const i18nLimiter = pLimit(effectiveConcurrency);
11472
11472
  const ioLimiter = pLimit(1);
11473
+ const perFileIoLimiters = /* @__PURE__ */ new Map();
11474
+ const getFileIoLimiter = (bucketPathPattern) => {
11475
+ const lockKey = bucketPathPattern;
11476
+ if (!perFileIoLimiters.has(lockKey)) {
11477
+ perFileIoLimiters.set(lockKey, pLimit(1));
11478
+ }
11479
+ return perFileIoLimiters.get(lockKey);
11480
+ };
11473
11481
  const workersCount = effectiveConcurrency;
11474
11482
  const workerTasks = [];
11475
11483
  for (let i = 0; i < workersCount; i++) {
@@ -11483,6 +11491,7 @@ async function execute(input2) {
11483
11491
  ioLimiter,
11484
11492
  i18nLimiter,
11485
11493
  initialChecksumsMap,
11494
+ getFileIoLimiter,
11486
11495
  onDone() {
11487
11496
  task.title = createExecutionProgressMessage(ctx);
11488
11497
  }
@@ -11566,12 +11575,17 @@ function createWorkerTask(args) {
11566
11575
  const initialChecksums = args.initialChecksumsMap.get(assignedTask.bucketPathPattern) || {};
11567
11576
  const taskResult = await args.i18nLimiter(async () => {
11568
11577
  try {
11569
- const sourceData = await bucketLoader.pull(
11570
- assignedTask.sourceLocale
11578
+ const fileIoLimiter = args.getFileIoLimiter(
11579
+ assignedTask.bucketPathPattern
11580
+ );
11581
+ const sourceData = await fileIoLimiter(
11582
+ async () => bucketLoader.pull(assignedTask.sourceLocale)
11583
+ );
11584
+ const hints = await fileIoLimiter(
11585
+ async () => bucketLoader.pullHints()
11571
11586
  );
11572
- const hints = await bucketLoader.pullHints();
11573
- const targetData = await bucketLoader.pull(
11574
- assignedTask.targetLocale
11587
+ const targetData = await fileIoLimiter(
11588
+ async () => bucketLoader.pull(assignedTask.targetLocale)
11575
11589
  );
11576
11590
  const delta = await deltaProcessor.calculateDelta({
11577
11591
  sourceData,
@@ -11586,7 +11600,7 @@ function createWorkerTask(args) {
11586
11600
  )
11587
11601
  ).fromPairs().value();
11588
11602
  if (!Object.keys(processableData).length) {
11589
- await args.ioLimiter(async () => {
11603
+ await fileIoLimiter(async () => {
11590
11604
  await bucketLoader.push(assignedTask.targetLocale, targetData);
11591
11605
  });
11592
11606
  return {
@@ -11607,7 +11621,7 @@ function createWorkerTask(args) {
11607
11621
  hints: relevantHints
11608
11622
  },
11609
11623
  async (progress, _sourceChunk, processedChunk) => {
11610
- await args.ioLimiter(async () => {
11624
+ await fileIoLimiter(async () => {
11611
11625
  await bucketLoader.pull(assignedTask.sourceLocale);
11612
11626
  const latestTargetData = await bucketLoader.pull(
11613
11627
  assignedTask.targetLocale
@@ -11642,7 +11656,7 @@ function createWorkerTask(args) {
11642
11656
  delta,
11643
11657
  finalTargetData
11644
11658
  );
11645
- await args.ioLimiter(async () => {
11659
+ await fileIoLimiter(async () => {
11646
11660
  await bucketLoader.pull(assignedTask.sourceLocale);
11647
11661
  await bucketLoader.push(
11648
11662
  assignedTask.targetLocale,
@@ -13496,7 +13510,7 @@ async function renderHero2() {
13496
13510
  // package.json
13497
13511
  var package_default = {
13498
13512
  name: "lingo.dev",
13499
- version: "0.114.1",
13513
+ version: "0.114.2",
13500
13514
  description: "Lingo.dev CLI",
13501
13515
  private: false,
13502
13516
  publishConfig: {