@graphql-mesh/config 5.0.0-alpha-4ca3ca0fa.0 → 5.0.0

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.
Files changed (3) hide show
  1. package/index.js +51 -26
  2. package/index.mjs +51 -26
  3. package/package.json +9 -9
package/index.js CHANGED
@@ -344,8 +344,7 @@ async function processConfig(config, options) {
344
344
  codes.push(`const sources = [];`);
345
345
  codes.push(`const transforms = [];`);
346
346
  codes.push(`const additionalEnvelopPlugins = [];`);
347
- const mergerName = config.merger || (config.sources.length > 1 ? 'stitching' : 'bare');
348
- const [sources, transforms, additionalEnvelopPlugins, additionalTypeDefs, additionalResolvers, merger, documents] = await Promise.all([
347
+ const [sources, transforms, additionalEnvelopPlugins, additionalTypeDefs, additionalResolvers, documents] = await Promise.all([
349
348
  Promise.all(config.sources.map(async (source, sourceIndex) => {
350
349
  const handlerName = Object.keys(source.handler)[0].toString();
351
350
  const handlerConfig = source.handler[handlerName];
@@ -526,30 +525,6 @@ async function processConfig(config, options) {
526
525
  (options === null || options === void 0 ? void 0 : options.ignoreAdditionalResolvers)
527
526
  ? []
528
527
  : utils$1.resolveAdditionalResolvers(dir, config.additionalResolvers, importFn, pubsub),
529
- getPackage({
530
- name: mergerName,
531
- type: 'merger',
532
- importFn,
533
- cwd: dir,
534
- additionalPrefixes: additionalPackagePrefixes,
535
- }).then(({ resolved: Merger, moduleName }) => {
536
- if (options.generateCode) {
537
- const mergerImportName = pascalCase.pascalCase(`${mergerName}Merger`);
538
- importCodes.push(`import ${mergerImportName} from ${JSON.stringify(moduleName)};`);
539
- codes.push(`const merger = new(${mergerImportName} as any)({
540
- cache,
541
- pubsub,
542
- logger: logger.child('${mergerName}Merger'),
543
- store: rootStore.child('${mergerName}Merger')
544
- })`);
545
- }
546
- return new Merger({
547
- cache,
548
- pubsub,
549
- logger: logger.child(`${mergerName}Merger`),
550
- store: rootStore.child(`${mergerName}Merger`),
551
- });
552
- }),
553
528
  resolveDocuments(config.documents, dir),
554
529
  ]);
555
530
  if (options.generateCode) {
@@ -612,6 +587,56 @@ async function processConfig(config, options) {
612
587
  }
613
588
  }
614
589
  }
590
+ let mergerName = config.merger;
591
+ // Decide what is the default merger
592
+ if (!mergerName) {
593
+ if (config.sources.length > 1) {
594
+ mergerName = 'stitching';
595
+ }
596
+ else {
597
+ // eslint-disable-next-line no-labels
598
+ typeLoop: for (const typeName in additionalResolvers || {}) {
599
+ const fieldResolvers = additionalResolvers[typeName];
600
+ if (typeof fieldResolvers === 'object') {
601
+ for (const fieldName in fieldResolvers) {
602
+ const fieldResolveObj = fieldResolvers[fieldName];
603
+ if (typeof fieldResolveObj === 'object') {
604
+ // selectionSet needs stitching merger even if there is a single source
605
+ if (fieldResolveObj.selectionSet != null) {
606
+ mergerName = 'stitching';
607
+ // eslint-disable-next-line no-labels
608
+ break typeLoop;
609
+ }
610
+ }
611
+ }
612
+ }
613
+ }
614
+ mergerName = 'bare';
615
+ }
616
+ }
617
+ const { resolved: Merger, moduleName: mergerModuleName } = await getPackage({
618
+ name: mergerName,
619
+ type: 'merger',
620
+ importFn,
621
+ cwd: dir,
622
+ additionalPrefixes: additionalPackagePrefixes,
623
+ });
624
+ if (options.generateCode) {
625
+ const mergerImportName = pascalCase.pascalCase(`${mergerName}Merger`);
626
+ importCodes.push(`import ${mergerImportName} from ${JSON.stringify(mergerModuleName)};`);
627
+ codes.push(`const merger = new(${mergerImportName} as any)({
628
+ cache,
629
+ pubsub,
630
+ logger: logger.child('${mergerName}Merger'),
631
+ store: rootStore.child('${mergerName}Merger')
632
+ })`);
633
+ }
634
+ const merger = new Merger({
635
+ cache,
636
+ pubsub,
637
+ logger: logger.child(`${mergerName}Merger`),
638
+ store: rootStore.child(`${mergerName}Merger`),
639
+ });
615
640
  if (config.additionalEnvelopPlugins) {
616
641
  codes.push(`const importedAdditionalEnvelopPlugins = await import(${JSON.stringify(crossHelpers.path.join('..', config.additionalEnvelopPlugins).split('\\').join('/'))}).then(m => m.default || m);`);
617
642
  const importedAdditionalEnvelopPlugins = await importFn(crossHelpers.path.isAbsolute(config.additionalEnvelopPlugins)
package/index.mjs CHANGED
@@ -340,8 +340,7 @@ async function processConfig(config, options) {
340
340
  codes.push(`const sources = [];`);
341
341
  codes.push(`const transforms = [];`);
342
342
  codes.push(`const additionalEnvelopPlugins = [];`);
343
- const mergerName = config.merger || (config.sources.length > 1 ? 'stitching' : 'bare');
344
- const [sources, transforms, additionalEnvelopPlugins, additionalTypeDefs, additionalResolvers, merger, documents] = await Promise.all([
343
+ const [sources, transforms, additionalEnvelopPlugins, additionalTypeDefs, additionalResolvers, documents] = await Promise.all([
345
344
  Promise.all(config.sources.map(async (source, sourceIndex) => {
346
345
  const handlerName = Object.keys(source.handler)[0].toString();
347
346
  const handlerConfig = source.handler[handlerName];
@@ -522,30 +521,6 @@ async function processConfig(config, options) {
522
521
  (options === null || options === void 0 ? void 0 : options.ignoreAdditionalResolvers)
523
522
  ? []
524
523
  : resolveAdditionalResolvers(dir, config.additionalResolvers, importFn, pubsub),
525
- getPackage({
526
- name: mergerName,
527
- type: 'merger',
528
- importFn,
529
- cwd: dir,
530
- additionalPrefixes: additionalPackagePrefixes,
531
- }).then(({ resolved: Merger, moduleName }) => {
532
- if (options.generateCode) {
533
- const mergerImportName = pascalCase(`${mergerName}Merger`);
534
- importCodes.push(`import ${mergerImportName} from ${JSON.stringify(moduleName)};`);
535
- codes.push(`const merger = new(${mergerImportName} as any)({
536
- cache,
537
- pubsub,
538
- logger: logger.child('${mergerName}Merger'),
539
- store: rootStore.child('${mergerName}Merger')
540
- })`);
541
- }
542
- return new Merger({
543
- cache,
544
- pubsub,
545
- logger: logger.child(`${mergerName}Merger`),
546
- store: rootStore.child(`${mergerName}Merger`),
547
- });
548
- }),
549
524
  resolveDocuments(config.documents, dir),
550
525
  ]);
551
526
  if (options.generateCode) {
@@ -608,6 +583,56 @@ async function processConfig(config, options) {
608
583
  }
609
584
  }
610
585
  }
586
+ let mergerName = config.merger;
587
+ // Decide what is the default merger
588
+ if (!mergerName) {
589
+ if (config.sources.length > 1) {
590
+ mergerName = 'stitching';
591
+ }
592
+ else {
593
+ // eslint-disable-next-line no-labels
594
+ typeLoop: for (const typeName in additionalResolvers || {}) {
595
+ const fieldResolvers = additionalResolvers[typeName];
596
+ if (typeof fieldResolvers === 'object') {
597
+ for (const fieldName in fieldResolvers) {
598
+ const fieldResolveObj = fieldResolvers[fieldName];
599
+ if (typeof fieldResolveObj === 'object') {
600
+ // selectionSet needs stitching merger even if there is a single source
601
+ if (fieldResolveObj.selectionSet != null) {
602
+ mergerName = 'stitching';
603
+ // eslint-disable-next-line no-labels
604
+ break typeLoop;
605
+ }
606
+ }
607
+ }
608
+ }
609
+ }
610
+ mergerName = 'bare';
611
+ }
612
+ }
613
+ const { resolved: Merger, moduleName: mergerModuleName } = await getPackage({
614
+ name: mergerName,
615
+ type: 'merger',
616
+ importFn,
617
+ cwd: dir,
618
+ additionalPrefixes: additionalPackagePrefixes,
619
+ });
620
+ if (options.generateCode) {
621
+ const mergerImportName = pascalCase(`${mergerName}Merger`);
622
+ importCodes.push(`import ${mergerImportName} from ${JSON.stringify(mergerModuleName)};`);
623
+ codes.push(`const merger = new(${mergerImportName} as any)({
624
+ cache,
625
+ pubsub,
626
+ logger: logger.child('${mergerName}Merger'),
627
+ store: rootStore.child('${mergerName}Merger')
628
+ })`);
629
+ }
630
+ const merger = new Merger({
631
+ cache,
632
+ pubsub,
633
+ logger: logger.child(`${mergerName}Merger`),
634
+ store: rootStore.child(`${mergerName}Merger`),
635
+ });
611
636
  if (config.additionalEnvelopPlugins) {
612
637
  codes.push(`const importedAdditionalEnvelopPlugins = await import(${JSON.stringify(path.join('..', config.additionalEnvelopPlugins).split('\\').join('/'))}).then(m => m.default || m);`);
613
638
  const importedAdditionalEnvelopPlugins = await importFn(path.isAbsolute(config.additionalEnvelopPlugins)
package/package.json CHANGED
@@ -1,26 +1,26 @@
1
1
  {
2
2
  "name": "@graphql-mesh/config",
3
- "version": "5.0.0-alpha-4ca3ca0fa.0",
3
+ "version": "5.0.0",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@graphql-mesh/runtime": "0.41.0-alpha-4ca3ca0fa.0",
6
+ "@graphql-mesh/runtime": "^0.41.0",
7
7
  "graphql": "*"
8
8
  },
9
9
  "dependencies": {
10
10
  "@envelop/core": "2.4.0",
11
- "@graphql-mesh/cache-localforage": "0.6.17-alpha-4ca3ca0fa.0",
11
+ "@graphql-mesh/cache-localforage": "0.6.17",
12
12
  "@graphql-mesh/cross-helpers": "0.2.0",
13
- "@graphql-mesh/merger-bare": "0.15.0-alpha-4ca3ca0fa.0",
14
- "@graphql-mesh/merger-stitching": "0.16.0-alpha-4ca3ca0fa.0",
15
- "@graphql-mesh/store": "0.8.20-alpha-4ca3ca0fa.0",
16
- "@graphql-mesh/types": "0.78.0-alpha-4ca3ca0fa.0",
17
- "@graphql-mesh/utils": "0.37.1-alpha-4ca3ca0fa.0",
13
+ "@graphql-mesh/merger-bare": "0.15.0",
14
+ "@graphql-mesh/merger-stitching": "0.16.0",
15
+ "@graphql-mesh/store": "0.8.20",
16
+ "@graphql-mesh/types": "0.78.0",
17
+ "@graphql-mesh/utils": "0.37.1",
18
18
  "@graphql-tools/code-file-loader": "7.3.0",
19
19
  "@graphql-tools/graphql-file-loader": "7.4.0",
20
20
  "@graphql-tools/load": "7.7.0",
21
21
  "@graphql-tools/utils": "8.8.0",
22
22
  "camel-case": "4.1.2",
23
- "cross-undici-fetch": "0.4.8",
23
+ "cross-undici-fetch": "0.4.11",
24
24
  "fetchache": "0.1.2",
25
25
  "param-case": "3.0.4",
26
26
  "pascal-case": "3.1.2",