@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.
- package/index.js +51 -26
- package/index.mjs +51 -26
- 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
|
|
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
|
|
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
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@graphql-mesh/runtime": "0.41.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
|
|
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
|
|
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
|
|
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.
|
|
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",
|