@graphql-mesh/config 0.38.0-alpha-27bc4843f.0 → 1.0.0-alpha-4b3f4b8da.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 CHANGED
@@ -142,7 +142,7 @@ async function resolveDocuments(documentsConfig, cwd) {
142
142
  cwd,
143
143
  });
144
144
  }
145
- async function resolveLogger(loggerConfig, importFn, cwd, additionalPackagePrefixes) {
145
+ async function resolveLogger(loggerConfig, importFn, cwd, additionalPackagePrefixes, initialLoggerPrefix = '🕸️ Mesh') {
146
146
  if (typeof loggerConfig === 'string') {
147
147
  const { moduleName, resolved: logger } = await getPackage({
148
148
  name: loggerConfig,
@@ -157,81 +157,14 @@ async function resolveLogger(loggerConfig, importFn, cwd, additionalPackagePrefi
157
157
  code: '',
158
158
  };
159
159
  }
160
- const logger = new utils$1.DefaultLogger('🕸️ Mesh');
160
+ const logger = new utils$1.DefaultLogger(initialLoggerPrefix);
161
161
  return {
162
162
  logger,
163
163
  importCode: `import { DefaultLogger } from '@graphql-mesh/utils';`,
164
- code: `const logger = new DefaultLogger('🕸️ Mesh');`,
164
+ code: `const logger = new DefaultLogger(${JSON.stringify(initialLoggerPrefix)});`,
165
165
  };
166
166
  }
167
167
 
168
- function parseObject(ast) {
169
- const value = Object.create(null);
170
- ast.fields.forEach(field => {
171
- // eslint-disable-next-line no-use-before-define
172
- value[field.name.value] = parseLiteral(field.value);
173
- });
174
- return value;
175
- }
176
- function parseLiteral(ast) {
177
- switch (ast.kind) {
178
- case graphql.Kind.STRING:
179
- case graphql.Kind.BOOLEAN:
180
- return ast.value;
181
- case graphql.Kind.INT:
182
- case graphql.Kind.FLOAT:
183
- return parseFloat(ast.value);
184
- case graphql.Kind.OBJECT:
185
- return parseObject(ast);
186
- case graphql.Kind.LIST:
187
- return ast.values.map(n => parseLiteral(n));
188
- case graphql.Kind.NULL:
189
- return null;
190
- }
191
- }
192
- function getAdditionalResolversFromTypeDefs(additionalTypeDefs) {
193
- const additionalResolversFromTypeDefs = [];
194
- function handleFieldNode(targetTypeName, fieldNode) {
195
- var _a;
196
- if ((_a = fieldNode.directives) === null || _a === void 0 ? void 0 : _a.length) {
197
- const resolveToDef = fieldNode.directives.find(d => d.name.value === 'resolveTo');
198
- if (resolveToDef != null) {
199
- const resolveToArgumentMap = {};
200
- for (const resolveToArg of resolveToDef.arguments) {
201
- const resolveToArgName = resolveToArg.name.value;
202
- resolveToArgumentMap[resolveToArgName] = parseLiteral(resolveToArg.value);
203
- }
204
- additionalResolversFromTypeDefs.push({
205
- targetTypeName,
206
- targetFieldName: fieldNode.name.value,
207
- ...resolveToArgumentMap,
208
- });
209
- }
210
- }
211
- }
212
- additionalTypeDefs === null || additionalTypeDefs === void 0 ? void 0 : additionalTypeDefs.forEach(typeDefs => {
213
- graphql.visit(typeDefs, {
214
- ObjectTypeDefinition(objectNode) {
215
- var _a;
216
- (_a = objectNode.fields) === null || _a === void 0 ? void 0 : _a.forEach(fieldNode => handleFieldNode(objectNode.name.value, fieldNode));
217
- },
218
- ObjectTypeExtension(objectNode) {
219
- var _a;
220
- (_a = objectNode.fields) === null || _a === void 0 ? void 0 : _a.forEach(fieldNode => handleFieldNode(objectNode.name.value, fieldNode));
221
- },
222
- InterfaceTypeDefinition(interfaceNode) {
223
- var _a;
224
- (_a = interfaceNode.fields) === null || _a === void 0 ? void 0 : _a.forEach(fieldNode => handleFieldNode(interfaceNode.name.value, fieldNode));
225
- },
226
- InterfaceTypeExtension(interfaceNode) {
227
- var _a;
228
- (_a = interfaceNode.fields) === null || _a === void 0 ? void 0 : _a.forEach(fieldNode => handleFieldNode(interfaceNode.name.value, fieldNode));
229
- },
230
- });
231
- });
232
- return additionalResolversFromTypeDefs;
233
- }
234
-
235
168
  const ENVELOP_CORE_PLUGINS_MAP = {
236
169
  maskedErrors: {
237
170
  moduleName: '@envelop/core',
@@ -246,7 +179,7 @@ const ENVELOP_CORE_PLUGINS_MAP = {
246
179
  };
247
180
  function getDefaultMeshStore(dir, importFn, artifactsDir) {
248
181
  var _a;
249
- const isProd = ((_a = process.env.NODE_ENV) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'production';
182
+ const isProd = ((_a = crossHelpers.process.env.NODE_ENV) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'production';
250
183
  const storeStorageAdapter = isProd
251
184
  ? new store.FsStoreStorageAdapter({
252
185
  cwd: dir,
@@ -269,7 +202,7 @@ function getDefaultMeshStore(dir, importFn, artifactsDir) {
269
202
  async function processConfig(config, options) {
270
203
  var _a, _b, _c;
271
204
  if (config.skipSSLValidation) {
272
- process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
205
+ crossHelpers.process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
273
206
  }
274
207
  const importCodes = [
275
208
  `import type { GetMeshOptions } from '@graphql-mesh/runtime';`,
@@ -295,7 +228,7 @@ async function processConfig(config, options) {
295
228
  codes.push(cacheCode);
296
229
  const sourcesStore = rootStore.child('sources');
297
230
  codes.push(`const sourcesStore = rootStore.child('sources');`);
298
- const { logger, importCode: loggerImportCode, code: loggerCode, } = await resolveLogger(config.logger, importFn, dir, additionalPackagePrefixes);
231
+ const { logger, importCode: loggerImportCode, code: loggerCode, } = await resolveLogger(config.logger, importFn, dir, additionalPackagePrefixes, options === null || options === void 0 ? void 0 : options.initialLoggerPrefix);
299
232
  importCodes.push(loggerImportCode);
300
233
  codes.push(loggerCode);
301
234
  codes.push(`const sources = [];`);
@@ -535,38 +468,6 @@ async function processConfig(config, options) {
535
468
  codes.push(`const additionalResolvers = [] as any[]`);
536
469
  }
537
470
  }
538
- if (additionalTypeDefs === null || additionalTypeDefs === void 0 ? void 0 : additionalTypeDefs.length) {
539
- const additionalResolversConfigFromTypeDefs = getAdditionalResolversFromTypeDefs(additionalTypeDefs);
540
- if (additionalResolversConfigFromTypeDefs === null || additionalResolversConfigFromTypeDefs === void 0 ? void 0 : additionalResolversConfigFromTypeDefs.length) {
541
- const resolveToDirectiveDefinition = /* GraphQL */ `
542
- scalar ResolveToSourceArgs
543
- directive @resolveTo(
544
- requiredSelectionSet: String
545
- sourceName: String!
546
- sourceTypeName: String!
547
- sourceFieldName: String!
548
- sourceSelectionSet: String
549
- sourceArgs: ResolveToSourceArgs
550
- result: String
551
- resultType: String
552
- ) on FIELD_DEFINITION
553
- `;
554
- const resolvedAdditionalResolvers = await utils$1.resolveAdditionalResolvers(dir, additionalResolversConfigFromTypeDefs, importFn, pubsub);
555
- additionalTypeDefs.unshift(graphql.parse(resolveToDirectiveDefinition));
556
- additionalResolvers.push(...resolvedAdditionalResolvers);
557
- if (options.generateCode && resolvedAdditionalResolvers.length) {
558
- importCodes.push(`import { resolveAdditionalResolvers } from '@graphql-mesh/utils';`);
559
- codes.push(`additionalTypeDefs.unshift(parse(/* GraphQL */\`${resolveToDirectiveDefinition}\`))`);
560
- codes.push(`const additionalResolversFromTypeDefs = await resolveAdditionalResolvers(
561
- baseDir,
562
- ${JSON.stringify(additionalResolversConfigFromTypeDefs)},
563
- importFn,
564
- pubsub
565
- );`);
566
- codes.push(`additionalResolvers.push(additionalResolversFromTypeDefs)`);
567
- }
568
- }
569
- }
570
471
  if (config.additionalEnvelopPlugins) {
571
472
  importCodes.push(`import importedAdditionalEnvelopPlugins from '${crossHelpers.path
572
473
  .join('..', config.additionalEnvelopPlugins)
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { path } from '@graphql-mesh/cross-helpers';
2
- import { visit, Kind, print, parse, concatAST } from 'graphql';
1
+ import { path, process } from '@graphql-mesh/cross-helpers';
2
+ import { print, concatAST, visit } from 'graphql';
3
3
  import { printSchemaWithDirectives } from '@graphql-tools/utils';
4
4
  import { paramCase } from 'param-case';
5
5
  import { loadTypedefs, loadDocuments } from '@graphql-tools/load';
@@ -138,7 +138,7 @@ async function resolveDocuments(documentsConfig, cwd) {
138
138
  cwd,
139
139
  });
140
140
  }
141
- async function resolveLogger(loggerConfig, importFn, cwd, additionalPackagePrefixes) {
141
+ async function resolveLogger(loggerConfig, importFn, cwd, additionalPackagePrefixes, initialLoggerPrefix = '🕸️ Mesh') {
142
142
  if (typeof loggerConfig === 'string') {
143
143
  const { moduleName, resolved: logger } = await getPackage({
144
144
  name: loggerConfig,
@@ -153,81 +153,14 @@ async function resolveLogger(loggerConfig, importFn, cwd, additionalPackagePrefi
153
153
  code: '',
154
154
  };
155
155
  }
156
- const logger = new DefaultLogger('🕸️ Mesh');
156
+ const logger = new DefaultLogger(initialLoggerPrefix);
157
157
  return {
158
158
  logger,
159
159
  importCode: `import { DefaultLogger } from '@graphql-mesh/utils';`,
160
- code: `const logger = new DefaultLogger('🕸️ Mesh');`,
160
+ code: `const logger = new DefaultLogger(${JSON.stringify(initialLoggerPrefix)});`,
161
161
  };
162
162
  }
163
163
 
164
- function parseObject(ast) {
165
- const value = Object.create(null);
166
- ast.fields.forEach(field => {
167
- // eslint-disable-next-line no-use-before-define
168
- value[field.name.value] = parseLiteral(field.value);
169
- });
170
- return value;
171
- }
172
- function parseLiteral(ast) {
173
- switch (ast.kind) {
174
- case Kind.STRING:
175
- case Kind.BOOLEAN:
176
- return ast.value;
177
- case Kind.INT:
178
- case Kind.FLOAT:
179
- return parseFloat(ast.value);
180
- case Kind.OBJECT:
181
- return parseObject(ast);
182
- case Kind.LIST:
183
- return ast.values.map(n => parseLiteral(n));
184
- case Kind.NULL:
185
- return null;
186
- }
187
- }
188
- function getAdditionalResolversFromTypeDefs(additionalTypeDefs) {
189
- const additionalResolversFromTypeDefs = [];
190
- function handleFieldNode(targetTypeName, fieldNode) {
191
- var _a;
192
- if ((_a = fieldNode.directives) === null || _a === void 0 ? void 0 : _a.length) {
193
- const resolveToDef = fieldNode.directives.find(d => d.name.value === 'resolveTo');
194
- if (resolveToDef != null) {
195
- const resolveToArgumentMap = {};
196
- for (const resolveToArg of resolveToDef.arguments) {
197
- const resolveToArgName = resolveToArg.name.value;
198
- resolveToArgumentMap[resolveToArgName] = parseLiteral(resolveToArg.value);
199
- }
200
- additionalResolversFromTypeDefs.push({
201
- targetTypeName,
202
- targetFieldName: fieldNode.name.value,
203
- ...resolveToArgumentMap,
204
- });
205
- }
206
- }
207
- }
208
- additionalTypeDefs === null || additionalTypeDefs === void 0 ? void 0 : additionalTypeDefs.forEach(typeDefs => {
209
- visit(typeDefs, {
210
- ObjectTypeDefinition(objectNode) {
211
- var _a;
212
- (_a = objectNode.fields) === null || _a === void 0 ? void 0 : _a.forEach(fieldNode => handleFieldNode(objectNode.name.value, fieldNode));
213
- },
214
- ObjectTypeExtension(objectNode) {
215
- var _a;
216
- (_a = objectNode.fields) === null || _a === void 0 ? void 0 : _a.forEach(fieldNode => handleFieldNode(objectNode.name.value, fieldNode));
217
- },
218
- InterfaceTypeDefinition(interfaceNode) {
219
- var _a;
220
- (_a = interfaceNode.fields) === null || _a === void 0 ? void 0 : _a.forEach(fieldNode => handleFieldNode(interfaceNode.name.value, fieldNode));
221
- },
222
- InterfaceTypeExtension(interfaceNode) {
223
- var _a;
224
- (_a = interfaceNode.fields) === null || _a === void 0 ? void 0 : _a.forEach(fieldNode => handleFieldNode(interfaceNode.name.value, fieldNode));
225
- },
226
- });
227
- });
228
- return additionalResolversFromTypeDefs;
229
- }
230
-
231
164
  const ENVELOP_CORE_PLUGINS_MAP = {
232
165
  maskedErrors: {
233
166
  moduleName: '@envelop/core',
@@ -291,7 +224,7 @@ async function processConfig(config, options) {
291
224
  codes.push(cacheCode);
292
225
  const sourcesStore = rootStore.child('sources');
293
226
  codes.push(`const sourcesStore = rootStore.child('sources');`);
294
- const { logger, importCode: loggerImportCode, code: loggerCode, } = await resolveLogger(config.logger, importFn, dir, additionalPackagePrefixes);
227
+ const { logger, importCode: loggerImportCode, code: loggerCode, } = await resolveLogger(config.logger, importFn, dir, additionalPackagePrefixes, options === null || options === void 0 ? void 0 : options.initialLoggerPrefix);
295
228
  importCodes.push(loggerImportCode);
296
229
  codes.push(loggerCode);
297
230
  codes.push(`const sources = [];`);
@@ -531,38 +464,6 @@ async function processConfig(config, options) {
531
464
  codes.push(`const additionalResolvers = [] as any[]`);
532
465
  }
533
466
  }
534
- if (additionalTypeDefs === null || additionalTypeDefs === void 0 ? void 0 : additionalTypeDefs.length) {
535
- const additionalResolversConfigFromTypeDefs = getAdditionalResolversFromTypeDefs(additionalTypeDefs);
536
- if (additionalResolversConfigFromTypeDefs === null || additionalResolversConfigFromTypeDefs === void 0 ? void 0 : additionalResolversConfigFromTypeDefs.length) {
537
- const resolveToDirectiveDefinition = /* GraphQL */ `
538
- scalar ResolveToSourceArgs
539
- directive @resolveTo(
540
- requiredSelectionSet: String
541
- sourceName: String!
542
- sourceTypeName: String!
543
- sourceFieldName: String!
544
- sourceSelectionSet: String
545
- sourceArgs: ResolveToSourceArgs
546
- result: String
547
- resultType: String
548
- ) on FIELD_DEFINITION
549
- `;
550
- const resolvedAdditionalResolvers = await resolveAdditionalResolvers(dir, additionalResolversConfigFromTypeDefs, importFn, pubsub);
551
- additionalTypeDefs.unshift(parse(resolveToDirectiveDefinition));
552
- additionalResolvers.push(...resolvedAdditionalResolvers);
553
- if (options.generateCode && resolvedAdditionalResolvers.length) {
554
- importCodes.push(`import { resolveAdditionalResolvers } from '@graphql-mesh/utils';`);
555
- codes.push(`additionalTypeDefs.unshift(parse(/* GraphQL */\`${resolveToDirectiveDefinition}\`))`);
556
- codes.push(`const additionalResolversFromTypeDefs = await resolveAdditionalResolvers(
557
- baseDir,
558
- ${JSON.stringify(additionalResolversConfigFromTypeDefs)},
559
- importFn,
560
- pubsub
561
- );`);
562
- codes.push(`additionalResolvers.push(additionalResolversFromTypeDefs)`);
563
- }
564
- }
565
- }
566
467
  if (config.additionalEnvelopPlugins) {
567
468
  importCodes.push(`import importedAdditionalEnvelopPlugins from '${path
568
469
  .join('..', config.additionalEnvelopPlugins)
package/package.json CHANGED
@@ -1,30 +1,28 @@
1
1
  {
2
2
  "name": "@graphql-mesh/config",
3
- "version": "0.38.0-alpha-27bc4843f.0",
3
+ "version": "1.0.0-alpha-4b3f4b8da.0",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
+ "@graphql-mesh/runtime": "0.36.0-alpha-4b3f4b8da.0",
6
7
  "graphql": "*"
7
8
  },
8
9
  "dependencies": {
9
- "@envelop/core": "2.3.2",
10
- "@graphql-mesh/cache-localforage": "0.6.7",
11
- "@graphql-mesh/cross-helpers": "0.1.5",
12
- "@graphql-mesh/merger-bare": "0.13.49",
13
- "@graphql-mesh/merger-stitching": "0.15.51",
14
- "@graphql-mesh/runtime": "0.35.1",
15
- "@graphql-mesh/store": "0.8.10",
16
- "@graphql-mesh/types": "0.73.1",
17
- "@graphql-mesh/utils": "0.35.1",
18
- "@graphql-tools/code-file-loader": "7.2.17",
19
- "@graphql-tools/graphql-file-loader": "7.3.14",
20
- "@graphql-tools/load": "7.5.13",
21
- "@graphql-tools/merge": "8.2.13",
22
- "@graphql-tools/utils": "8.6.12",
10
+ "@envelop/core": "2.3.3",
11
+ "@graphql-mesh/cache-localforage": "0.6.10-alpha-4b3f4b8da.0",
12
+ "@graphql-mesh/cross-helpers": "0.1.6",
13
+ "@graphql-mesh/merger-bare": "0.13.52-alpha-4b3f4b8da.0",
14
+ "@graphql-mesh/merger-stitching": "0.15.54-alpha-4b3f4b8da.0",
15
+ "@graphql-mesh/store": "0.8.13-alpha-4b3f4b8da.0",
16
+ "@graphql-mesh/types": "0.74.0-alpha-4b3f4b8da.0",
17
+ "@graphql-mesh/utils": "0.35.4-alpha-4b3f4b8da.0",
18
+ "@graphql-tools/code-file-loader": "7.2.18",
19
+ "@graphql-tools/graphql-file-loader": "7.3.15",
20
+ "@graphql-tools/load": "7.5.14",
21
+ "@graphql-tools/utils": "8.6.13",
23
22
  "camel-case": "4.1.2",
24
- "fetchache": "0.1.2",
25
23
  "param-case": "3.0.4",
26
24
  "pascal-case": "3.1.2",
27
- "tslib": "^2.3.1"
25
+ "tslib": "^2.4.0"
28
26
  },
29
27
  "repository": {
30
28
  "type": "git",
package/process.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- import { MeshResolvedSource } from '@graphql-mesh/runtime';
2
- import { ImportFn, Logger, MeshMerger, MeshPubSub, MeshTransform, YamlConfig } from '@graphql-mesh/types';
1
+ import type { MeshResolvedSource } from '@graphql-mesh/runtime';
2
+ import { ImportFn, Logger, MeshMerger, MeshPubSub, MeshTransform, YamlConfig, KeyValueCache } from '@graphql-mesh/types';
3
3
  import { IResolvers, Source } from '@graphql-tools/utils';
4
- import { KeyValueCache } from 'fetchache';
5
4
  import { DocumentNode } from 'graphql';
6
5
  import { MeshStore } from '@graphql-mesh/store';
7
6
  import { envelop } from '@envelop/core';
@@ -14,10 +13,11 @@ export declare type ConfigProcessOptions = {
14
13
  artifactsDir?: string;
15
14
  additionalPackagePrefixes?: string[];
16
15
  generateCode?: boolean;
16
+ initialLoggerPrefix?: string;
17
17
  };
18
18
  declare type EnvelopPlugins = Parameters<typeof envelop>[0]['plugins'];
19
19
  export declare type ProcessedConfig = {
20
- sources: MeshResolvedSource<any>[];
20
+ sources: MeshResolvedSource[];
21
21
  transforms: MeshTransform[];
22
22
  additionalTypeDefs: DocumentNode[];
23
23
  additionalResolvers: IResolvers[];
package/utils.d.ts CHANGED
@@ -25,7 +25,7 @@ export declare function resolvePubSub(pubsubYamlConfig: YamlConfig.Config['pubsu
25
25
  pubsub: MeshPubSub;
26
26
  }>;
27
27
  export declare function resolveDocuments(documentsConfig: YamlConfig.Config['documents'], cwd: string): Promise<Source[]>;
28
- export declare function resolveLogger(loggerConfig: YamlConfig.Config['logger'], importFn: ImportFn, cwd: string, additionalPackagePrefixes: string[]): Promise<{
28
+ export declare function resolveLogger(loggerConfig: YamlConfig.Config['logger'], importFn: ImportFn, cwd: string, additionalPackagePrefixes: string[], initialLoggerPrefix?: string): Promise<{
29
29
  importCode: string;
30
30
  code: string;
31
31
  logger: Logger;
@@ -1,2 +0,0 @@
1
- import { DocumentNode } from 'graphql';
2
- export declare function getAdditionalResolversFromTypeDefs(additionalTypeDefs: DocumentNode[]): (string | import("../../types/src/config").AdditionalStitchingResolverObject | import("../../types/src/config").AdditionalStitchingBatchResolverObject | import("../../types/src/config").AdditionalSubscriptionObject)[];