@uniformdev/cli 20.66.4 → 20.66.5-alpha.3

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.
@@ -384,16 +384,84 @@ function readFileToObject(filename) {
384
384
  return load(file, { filename, json: true });
385
385
  }
386
386
  async function* paginateAsync(fetchPage, options) {
387
- const perPage = options.pageSize || 100;
387
+ const pageSize = options.pageSize ?? 100;
388
+ if (pageSize < 1) {
389
+ throw new Error(`pageSize must be at least 1, got ${pageSize}`);
390
+ }
388
391
  let offset = 0;
389
392
  let pageData = [];
390
393
  do {
391
- pageData = await fetchPage(offset, perPage);
394
+ if (options.verbose) {
395
+ console.log(`Fetching ${options.entityName ?? "items"} batch: offset=${offset}, pageSize=${pageSize}`);
396
+ }
397
+ pageData = await fetchPage(offset, pageSize);
392
398
  for (const item of pageData) {
393
399
  yield item;
394
400
  }
395
- offset += perPage;
396
- } while (pageData.length === perPage);
401
+ offset += pageSize;
402
+ } while (pageData.length === pageSize);
403
+ }
404
+ var entityBatchSizeDefaults = {
405
+ composition: 100,
406
+ compositionPattern: 100,
407
+ componentPattern: 100,
408
+ entry: 100,
409
+ entryPattern: 100,
410
+ component: 200,
411
+ label: 100,
412
+ asset: 50,
413
+ contentType: 100,
414
+ workflow: 100
415
+ };
416
+ var paginatedEntityTypes = /* @__PURE__ */ new Set([
417
+ "composition",
418
+ "compositionPattern",
419
+ "componentPattern",
420
+ "entry",
421
+ "entryPattern",
422
+ "component",
423
+ "asset",
424
+ "label",
425
+ "contentType",
426
+ "workflow"
427
+ ]);
428
+ function isPaginatedSyncEntity(entityType) {
429
+ return paginatedEntityTypes.has(entityType);
430
+ }
431
+ function getEntityBatchSize(entityType, config) {
432
+ const fromConfig = config.entitiesConfig?.[entityType]?.batchSize;
433
+ if (fromConfig !== void 0) {
434
+ return fromConfig;
435
+ }
436
+ return entityBatchSizeDefaults[entityType];
437
+ }
438
+ function resolveEntityBatchSize({
439
+ entityType,
440
+ cliBatchSize,
441
+ config
442
+ }) {
443
+ if (cliBatchSize !== void 0) {
444
+ return cliBatchSize;
445
+ }
446
+ if (config) {
447
+ return getEntityBatchSize(entityType, config);
448
+ }
449
+ return void 0;
450
+ }
451
+ function withBatchSizeOptions(yargs, entityType) {
452
+ return yargs.option("batchSize", {
453
+ alias: ["b"],
454
+ describe: "Number of items to fetch per API request when reading from Uniform",
455
+ type: "number"
456
+ }).middleware((argv) => {
457
+ const rawSerialization = argv.serialization;
458
+ const config = rawSerialization ? applyDefaultSyncConfiguration({ serialization: rawSerialization }).serialization : void 0;
459
+ argv.resolvedBatchSize = resolveEntityBatchSize({
460
+ entityType,
461
+ cliBatchSize: argv.batchSize,
462
+ config
463
+ });
464
+ });
397
465
  }
398
466
  var defaultSyncConfiguration = {
399
467
  entitiesConfig: {},
@@ -477,6 +545,9 @@ export {
477
545
  emitWithFormat,
478
546
  readFileToObject,
479
547
  paginateAsync,
548
+ isPaginatedSyncEntity,
549
+ getEntityBatchSize,
550
+ withBatchSizeOptions,
480
551
  applyDefaultSyncConfiguration,
481
552
  getEntityOption,
482
553
  getDirectoryOrFilename
@@ -1,4 +1,4 @@
1
- import { C as CLIConfiguration, E as EntityTypes } from './index-BurxbjCD.mjs';
1
+ import { C as CLIConfiguration, E as EntityTypes } from './index-DeoTNXj-.mjs';
2
2
 
3
3
  type UniformConfigAllOptions = {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import "./chunk-35FOLS5B.mjs";
1
+ import "./chunk-JWPMHLJX.mjs";
2
2
 
3
3
  // src/sync/allSerializableEntitiesConfig.ts
4
4
  var allSerializableEntitiesConfig = {
@@ -15,10 +15,12 @@ type EntityConfiguration = {
15
15
  type EntityWithStateConfiguration = EntityConfiguration & Partial<StateArgs>;
16
16
  type PublishableEntitiesConfiguration = EntityWithStateConfiguration & {
17
17
  publish?: boolean;
18
+ batchSize?: number;
18
19
  };
19
20
  type SerializationEntitiesConfiguration = Record<EntityTypes, {
20
21
  pull?: EntityConfiguration;
21
22
  push?: EntityConfiguration;
23
+ batchSize?: number;
22
24
  } & EntityConfiguration> & {
23
25
  composition?: PublishableEntitiesConfiguration;
24
26
  componentPattern?: PublishableEntitiesConfiguration;
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- export { C as CLIConfiguration } from './index-BurxbjCD.mjs';
2
+ export { C as CLIConfiguration } from './index-DeoTNXj-.mjs';