From ce919f32d9927639e5806b5dabcd2c4542b7a7d3 Mon Sep 17 00:00:00 2001 From: Arda TANRIKULU Date: Tue, 8 Jun 2021 15:04:49 +0300 Subject: [PATCH] ESM Support --- package.json | 3 +- packages/batch-delegate/package.json | 18 +++++++-- packages/batch-execute/package.json | 14 ++++++- packages/delegate/package.json | 14 ++++++- packages/graphql-tag-pluck/package.json | 14 ++++++- packages/graphql-tools/package.json | 14 ++++++- packages/import/package.json | 14 ++++++- packages/links/package.json | 14 ++++++- packages/load-files/package.json | 14 ++++++- .../load-files/tests/file-scanner.spec.ts | 1 + packages/load/package.json | 14 ++++++- packages/loaders/apollo-engine/package.json | 14 ++++++- packages/loaders/code-file/package.json | 14 ++++++- packages/loaders/git/package.json | 14 ++++++- packages/loaders/github/package.json | 14 ++++++- packages/loaders/graphql-file/package.json | 14 ++++++- packages/loaders/json-file/package.json | 14 ++++++- packages/loaders/module/package.json | 14 ++++++- packages/loaders/prisma/package.json | 14 ++++++- packages/loaders/url/package.json | 14 ++++++- packages/loaders/url/src/index.ts | 9 +++-- packages/merge/package.json | 14 ++++++- .../merge/src/typedefs-mergers/comments.ts | 2 +- .../merge/src/typedefs-mergers/directives.ts | 3 +- .../merge/src/typedefs-mergers/enum-values.ts | 2 +- .../merge/src/typedefs-mergers/input-type.ts | 3 +- .../merge-named-type-array.ts | 2 +- packages/merge/tests/merge-typedefs.spec.ts | 1 + packages/mock/package.json | 14 ++++++- packages/node-require/package.json | 14 ++++++- packages/optimize/package.json | 14 ++++++- .../relay-operation-optimizer/package.json | 14 ++++++- packages/resolvers-composition/package.json | 14 ++++++- packages/schema/package.json | 14 ++++++- packages/stitch/package.json | 14 ++++++- packages/stitching-directives/package.json | 14 ++++++- packages/testing/utils.ts | 3 +- packages/utils/package.json | 14 ++++++- packages/utils/src/loaders.ts | 2 - packages/utils/src/parse-graphql-json.ts | 7 ++-- packages/utils/src/parse-graphql-sdl.ts | 2 +- packages/utils/src/types.ts | 1 + packages/webpack-loader-runtime/package.json | 14 ++++++- packages/webpack-loader/package.json | 14 ++++++- packages/wrap/package.json | 14 ++++++- tsconfig.build.json | 3 +- yarn.lock | 40 ++++++------------- 47 files changed, 410 insertions(+), 112 deletions(-) diff --git a/package.json b/package.json index 51e9f18322d..ba715d81b72 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "predeploy:website": "yarn build:api-docs", "deploy:website": "cd website && yarn deploy", "ts:transpile": "concurrently \"tsc --project tsconfig.build.json\" \"tsc --project tsconfig.build.es5.json\"", + "clean-dist": "rimraf \"packages/**/dist\" && rimraf \"packages/**/dist-es5\" && rimraf \".bob\"", "build": "yarn ts:transpile && bob build", "build:api-docs": "node scripts/build-api-docs.js", "lint": "eslint --ext .ts .", @@ -41,7 +42,7 @@ "graphql": "^14.0.0 || ^15.0.0" }, "devDependencies": { - "@ardatan/bob-the-bundler": "1.2.2", + "@ardatan/bob-the-bundler": "1.2.5", "@babel/core": "7.14.3", "@babel/plugin-proposal-class-properties": "7.13.0", "@babel/preset-env": "7.14.4", diff --git a/packages/batch-delegate/package.json b/packages/batch-delegate/package.json index c2e69ff7807..b2aa808c521 100644 --- a/packages/batch-delegate/package.json +++ b/packages/batch-delegate/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" @@ -23,13 +33,13 @@ }, "dependencies": { "@graphql-tools/delegate": "^7.1.4", + "@graphql-tools/utils": "^7.8.1", "dataloader": "2.0.0", "tslib": "~2.2.0" }, "devDependencies": { "@graphql-tools/schema": "^7.1.4", - "@graphql-tools/stitch": "^7.5.2", - "@graphql-tools/utils": "^7.8.1" + "@graphql-tools/stitch": "^7.5.2" }, "publishConfig": { "access": "public", diff --git a/packages/batch-execute/package.json b/packages/batch-execute/package.json index b4b188def3d..bd9d2800d47 100644 --- a/packages/batch-execute/package.json +++ b/packages/batch-execute/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/delegate/package.json b/packages/delegate/package.json index 287429be5da..52ed29ad471 100644 --- a/packages/delegate/package.json +++ b/packages/delegate/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/graphql-tag-pluck/package.json b/packages/graphql-tag-pluck/package.json index 553a4b7f7a9..a4a531c35b2 100644 --- a/packages/graphql-tag-pluck/package.json +++ b/packages/graphql-tag-pluck/package.json @@ -9,8 +9,18 @@ "directory": "packages/graphql-tag-pluck" }, "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/graphql-tools/package.json b/packages/graphql-tools/package.json index 9a2c838862f..5e8f8b782b9 100644 --- a/packages/graphql-tools/package.json +++ b/packages/graphql-tools/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/import/package.json b/packages/import/package.json index 2b7015972ba..82e01692566 100644 --- a/packages/import/package.json +++ b/packages/import/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/links/package.json b/packages/links/package.json index a25f750abcb..7e17d294caa 100644 --- a/packages/links/package.json +++ b/packages/links/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/load-files/package.json b/packages/load-files/package.json index 737ad478e66..31292bd6296 100644 --- a/packages/load-files/package.json +++ b/packages/load-files/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/load-files/tests/file-scanner.spec.ts b/packages/load-files/tests/file-scanner.spec.ts index c0d7a06dc78..4d7616709ef 100644 --- a/packages/load-files/tests/file-scanner.spec.ts +++ b/packages/load-files/tests/file-scanner.spec.ts @@ -1,6 +1,7 @@ import { loadFilesSync, loadFiles, LoadFilesOptions } from '@graphql-tools/load-files'; import { print } from 'graphql'; import { join } from 'path'; +import {jest} from '@jest/globals'; const syncAndAsync = Object.entries({ 'SYNC': loadFilesSync, 'ASYNC': loadFiles }); diff --git a/packages/load/package.json b/packages/load/package.json index 18a0c1639c9..7814b65af1c 100644 --- a/packages/load/package.json +++ b/packages/load/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/loaders/apollo-engine/package.json b/packages/loaders/apollo-engine/package.json index 985610392be..ee4231d6c0f 100644 --- a/packages/loaders/apollo-engine/package.json +++ b/packages/loaders/apollo-engine/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/loaders/code-file/package.json b/packages/loaders/code-file/package.json index f86d9e045a5..aed02b52d4a 100644 --- a/packages/loaders/code-file/package.json +++ b/packages/loaders/code-file/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/loaders/git/package.json b/packages/loaders/git/package.json index 4c10e035ccf..37b72191218 100644 --- a/packages/loaders/git/package.json +++ b/packages/loaders/git/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/loaders/github/package.json b/packages/loaders/github/package.json index bf55656016b..2df4c4810f9 100644 --- a/packages/loaders/github/package.json +++ b/packages/loaders/github/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/loaders/graphql-file/package.json b/packages/loaders/graphql-file/package.json index e06e356cc4f..a5a0d88a92a 100644 --- a/packages/loaders/graphql-file/package.json +++ b/packages/loaders/graphql-file/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/loaders/json-file/package.json b/packages/loaders/json-file/package.json index 93746b02aa5..eb9f1943d53 100644 --- a/packages/loaders/json-file/package.json +++ b/packages/loaders/json-file/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/loaders/module/package.json b/packages/loaders/module/package.json index e82a3f4fdf5..c9b543a1914 100644 --- a/packages/loaders/module/package.json +++ b/packages/loaders/module/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/loaders/prisma/package.json b/packages/loaders/prisma/package.json index 513aa70b66d..c45d9841476 100644 --- a/packages/loaders/prisma/package.json +++ b/packages/loaders/prisma/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/loaders/url/package.json b/packages/loaders/url/package.json index cc791336796..37b69d3ef76 100644 --- a/packages/loaders/url/package.json +++ b/packages/loaders/url/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "buildOptions": { "external": [ diff --git a/packages/loaders/url/src/index.ts b/packages/loaders/url/src/index.ts index 0596dceb172..c672328cc4a 100644 --- a/packages/loaders/url/src/index.ts +++ b/packages/loaders/url/src/index.ts @@ -31,7 +31,7 @@ import { fetchEventSource, FetchEventSourceInit } from '@microsoft/fetch-event-s import { ConnectionParamsOptions, SubscriptionClient as LegacySubscriptionClient } from 'subscriptions-transport-ws'; import AbortController from 'abort-controller'; import { meros } from 'meros'; -import { merge, set } from 'lodash'; +import _ from 'lodash'; export type AsyncFetchFn = typeof import('cross-fetch').fetch; export type SyncFetchFn = (input: RequestInfo, init?: RequestInit) => SyncResponse; @@ -326,7 +326,7 @@ export class UrlLoader implements DocumentLoader { if (chunk.path) { if (chunk.data) { const path: Array = ['data']; - merge(response, set({}, path.concat(chunk.path), chunk.data)); + _.merge(response, _.set({}, path.concat(chunk.path), chunk.data)); } if (chunk.errors) { @@ -501,7 +501,7 @@ export class UrlLoader implements DocumentLoader { return customFetch as any; } } - return async ? typeof fetch === 'undefined' ? crossFetch : fetch : syncFetch; + return async ? (typeof fetch === 'undefined' ? crossFetch : fetch) : syncFetch; } private getHeadersFromOptions(customHeaders: Headers, executionParams: ExecutionParams): Record { @@ -603,7 +603,8 @@ export class UrlLoader implements DocumentLoader { const subscriptionsEndpoint = options.subscriptionsEndpoint || pointer; let subscriber: Subscriber; if (options.useSSEForSubscription) { - const asyncFetchFn: any = (...args: any[]) => this.getFetch(options?.customFetch, asyncImport, true).then((asyncFetch: any) => asyncFetch(...args)); + const asyncFetchFn: any = (...args: any[]) => + this.getFetch(options?.customFetch, asyncImport, true).then((asyncFetch: any) => asyncFetch(...args)); subscriber = this.buildSSESubscriber( subscriptionsEndpoint, options.headers, diff --git a/packages/merge/package.json b/packages/merge/package.json index 31c0517a3e3..6c8ad281119 100644 --- a/packages/merge/package.json +++ b/packages/merge/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/merge/src/typedefs-mergers/comments.ts b/packages/merge/src/typedefs-mergers/comments.ts index c51758596e6..3dd2294de4f 100644 --- a/packages/merge/src/typedefs-mergers/comments.ts +++ b/packages/merge/src/typedefs-mergers/comments.ts @@ -90,7 +90,7 @@ export function printComment(comment: string): string { * This is a temp measure, we will move to using the original non modified printer.js ASAP. */ -// import { visit, VisitFn } from 'graphql/language/visitor'; +// import { visit, VisitFn } from 'graphql'; /** * Given maybeArray, print an empty string if it is null or empty, otherwise diff --git a/packages/merge/src/typedefs-mergers/directives.ts b/packages/merge/src/typedefs-mergers/directives.ts index 67494ec8e8c..a247dc5df33 100644 --- a/packages/merge/src/typedefs-mergers/directives.ts +++ b/packages/merge/src/typedefs-mergers/directives.ts @@ -1,5 +1,4 @@ -import { ArgumentNode, DirectiveNode } from 'graphql/language/ast'; -import { DirectiveDefinitionNode, ListValueNode, NameNode, print } from 'graphql'; +import { ArgumentNode, DirectiveNode, DirectiveDefinitionNode, ListValueNode, NameNode, print } from 'graphql'; import { Config } from './merge-typedefs'; function directiveAlreadyExists(directivesArr: ReadonlyArray, otherDirective: DirectiveNode): boolean { diff --git a/packages/merge/src/typedefs-mergers/enum-values.ts b/packages/merge/src/typedefs-mergers/enum-values.ts index 38fb6d704e8..8ac31168f85 100644 --- a/packages/merge/src/typedefs-mergers/enum-values.ts +++ b/packages/merge/src/typedefs-mergers/enum-values.ts @@ -1,4 +1,4 @@ -import { EnumValueDefinitionNode } from 'graphql/language/ast'; +import { EnumValueDefinitionNode } from 'graphql'; import { mergeDirectives } from './directives'; import { Config } from './merge-typedefs'; import { compareNodes } from '@graphql-tools/utils'; diff --git a/packages/merge/src/typedefs-mergers/input-type.ts b/packages/merge/src/typedefs-mergers/input-type.ts index 5e57d379034..04314771227 100644 --- a/packages/merge/src/typedefs-mergers/input-type.ts +++ b/packages/merge/src/typedefs-mergers/input-type.ts @@ -1,8 +1,7 @@ import { Config } from './merge-typedefs'; -import { InputObjectTypeDefinitionNode } from 'graphql'; +import { InputObjectTypeDefinitionNode, InputValueDefinitionNode, InputObjectTypeExtensionNode } from 'graphql'; import { mergeFields } from './fields'; import { mergeDirectives } from './directives'; -import { InputValueDefinitionNode, InputObjectTypeExtensionNode } from 'graphql/language/ast'; export function mergeInputType( node: InputObjectTypeDefinitionNode | InputObjectTypeExtensionNode, diff --git a/packages/merge/src/typedefs-mergers/merge-named-type-array.ts b/packages/merge/src/typedefs-mergers/merge-named-type-array.ts index 13b9bf8ea58..6b6574684e0 100644 --- a/packages/merge/src/typedefs-mergers/merge-named-type-array.ts +++ b/packages/merge/src/typedefs-mergers/merge-named-type-array.ts @@ -1,4 +1,4 @@ -import { NamedTypeNode } from 'graphql/language/ast'; +import { NamedTypeNode } from 'graphql'; import { Config } from '.'; import { compareNodes } from '@graphql-tools/utils'; diff --git a/packages/merge/tests/merge-typedefs.spec.ts b/packages/merge/tests/merge-typedefs.spec.ts index fc5c890f66c..7dfc1f55afd 100644 --- a/packages/merge/tests/merge-typedefs.spec.ts +++ b/packages/merge/tests/merge-typedefs.spec.ts @@ -7,6 +7,7 @@ import { stripWhitespaces } from './utils'; import gql from 'graphql-tag'; import { readFileSync } from 'fs'; import { join } from 'path'; +import {jest} from '@jest/globals'; const introspectionSchema = JSON.parse(readFileSync(join(__dirname, './schema.json'), 'utf8')); diff --git a/packages/mock/package.json b/packages/mock/package.json index 92fa1c0fba5..e76092de5b2 100644 --- a/packages/mock/package.json +++ b/packages/mock/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/node-require/package.json b/packages/node-require/package.json index 89aac0e748f..17e7223f18e 100644 --- a/packages/node-require/package.json +++ b/packages/node-require/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/optimize/package.json b/packages/optimize/package.json index ee663030431..a6fa01f37b5 100644 --- a/packages/optimize/package.json +++ b/packages/optimize/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/relay-operation-optimizer/package.json b/packages/relay-operation-optimizer/package.json index 0c3c1679a85..6207612c4a2 100644 --- a/packages/relay-operation-optimizer/package.json +++ b/packages/relay-operation-optimizer/package.json @@ -21,8 +21,18 @@ "relay" ], "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/resolvers-composition/package.json b/packages/resolvers-composition/package.json index ae6fd07c8a4..d6fdf51c13c 100644 --- a/packages/resolvers-composition/package.json +++ b/packages/resolvers-composition/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/schema/package.json b/packages/schema/package.json index 9edf2f60606..4c4b6e51227 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/stitch/package.json b/packages/stitch/package.json index 3ef33ad80b5..11b91448d17 100644 --- a/packages/stitch/package.json +++ b/packages/stitch/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/stitching-directives/package.json b/packages/stitching-directives/package.json index 2dae90f05e2..c926822c0ce 100644 --- a/packages/stitching-directives/package.json +++ b/packages/stitching-directives/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/testing/utils.ts b/packages/testing/utils.ts index 5fb312bfaa5..579de0a85e1 100644 --- a/packages/testing/utils.ts +++ b/packages/testing/utils.ts @@ -7,6 +7,7 @@ import { cwd } from 'process'; import { getGraphQLParameters, processRequest as processGraphQLHelixRequest } from 'graphql-helix'; import { processRequest as processGraphQLUploadRequest } from 'graphql-upload'; import { Request as MockReq } from 'mock-http'; +import { jest } from '@jest/globals'; export function normalizeString(str: string) { return str.replace(/[\s,]+/g, ' ').trim(); @@ -55,7 +56,7 @@ export function useMonorepo({ dirname }: { dirname: string }) { return { correctCWD() { - let spyProcessCwd: jest.SpyInstance; + let spyProcessCwd: any; beforeEach(() => { spyProcessCwd = jest.spyOn(process, 'cwd').mockReturnValue(cwd); }); diff --git a/packages/utils/package.json b/packages/utils/package.json index 17e7217ef73..7d25dc47a37 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -10,8 +10,18 @@ "author": "Dotan Simha ", "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/utils/src/loaders.ts b/packages/utils/src/loaders.ts index 51f7ee46821..21a1eb2b485 100644 --- a/packages/utils/src/loaders.ts +++ b/packages/utils/src/loaders.ts @@ -1,5 +1,4 @@ import { DocumentNode, GraphQLSchema, BuildSchemaOptions } from 'graphql'; -import { GraphQLSchemaValidationOptions } from 'graphql/type/schema'; import { GraphQLParseOptions } from './Interfaces'; export interface Source { @@ -10,7 +9,6 @@ export interface Source { } export type SingleFileOptions = GraphQLParseOptions & - GraphQLSchemaValidationOptions & BuildSchemaOptions & { cwd?: string; }; diff --git a/packages/utils/src/parse-graphql-json.ts b/packages/utils/src/parse-graphql-json.ts index 9710732f54f..4374fdcede8 100644 --- a/packages/utils/src/parse-graphql-json.ts +++ b/packages/utils/src/parse-graphql-json.ts @@ -1,5 +1,4 @@ import { buildClientSchema, ParseOptions } from 'graphql'; -import { GraphQLSchemaValidationOptions } from 'graphql/type/schema'; import { Source } from './loaders'; import { SchemaPrintOptions } from './types'; @@ -22,7 +21,7 @@ function parseBOM(content: string): any { export function parseGraphQLJSON( location: string, jsonContent: string, - options: SchemaPrintOptions & ParseOptions & GraphQLSchemaValidationOptions + options: SchemaPrintOptions & ParseOptions ): Source { let parsedJson = parseBOM(jsonContent); @@ -45,8 +44,8 @@ export function parseGraphQLJSON( } else if (typeof parsedJson === 'string') { return { location, - rawSDL: parsedJson - } + rawSDL: parsedJson, + }; } throw new Error(`Not valid JSON content`); diff --git a/packages/utils/src/parse-graphql-sdl.ts b/packages/utils/src/parse-graphql-sdl.ts index 21332726d83..f8fd4eb8378 100644 --- a/packages/utils/src/parse-graphql-sdl.ts +++ b/packages/utils/src/parse-graphql-sdl.ts @@ -10,7 +10,7 @@ import { StringValueNode, print, } from 'graphql'; -import { dedentBlockStringValue } from 'graphql/language/blockString'; +import { dedentBlockStringValue } from 'graphql/language/blockString.js'; import { GraphQLParseOptions } from './Interfaces'; export function parseGraphQLSDL(location: string, rawSDL: string, options: GraphQLParseOptions = {}) { diff --git a/packages/utils/src/types.ts b/packages/utils/src/types.ts index a3951463707..f34e05dfb4b 100644 --- a/packages/utils/src/types.ts +++ b/packages/utils/src/types.ts @@ -10,6 +10,7 @@ export interface SchemaPrintOptions { * Default: false */ commentDescriptions?: boolean; + assumeValid?: boolean; } export interface GetDocumentNodeFromSchemaOptions { diff --git a/packages/webpack-loader-runtime/package.json b/packages/webpack-loader-runtime/package.json index 8b242db73ee..87c6d824576 100644 --- a/packages/webpack-loader-runtime/package.json +++ b/packages/webpack-loader-runtime/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/webpack-loader/package.json b/packages/webpack-loader/package.json index b4387feafd1..d94f3e3ea39 100644 --- a/packages/webpack-loader/package.json +++ b/packages/webpack-loader/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/packages/wrap/package.json b/packages/wrap/package.json index 1aaedb8570a..7a924058914 100644 --- a/packages/wrap/package.json +++ b/packages/wrap/package.json @@ -9,8 +9,18 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", + "main": "dist/index.js", + "module": "dist/index.mjs", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs" + } + }, "typings": "dist/index.d.ts", "typescript": { "definition": "dist/index.d.ts" diff --git a/tsconfig.build.json b/tsconfig.build.json index 9eb7ba29f13..4abd5dd07b0 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -5,6 +5,7 @@ "*.spec.ts", "**/tests", "**/test-assets", - "**/test-files" + "**/test-files", + "packages/testing" ] } diff --git a/yarn.lock b/yarn.lock index d731b3d7f2f..6eb10ec7fd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -151,12 +151,13 @@ dependencies: tslib "~2.0.1" -"@ardatan/bob-the-bundler@1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@ardatan/bob-the-bundler/-/bob-the-bundler-1.2.2.tgz#3bd80fa5c473353f9c4739ff2c2d8bcd7af68001" - integrity sha512-DWsg95cpP5gVgzNAKXOpMTQNJ3U+p1dksdzyKB9AAs0cdvc8+w3jql80gC+lEPIGGohX6yAEbaDUVGYXxgKHdQ== +"@ardatan/bob-the-bundler@1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@ardatan/bob-the-bundler/-/bob-the-bundler-1.2.5.tgz#e04955af8eef3f884e4745ab37befd1feba667ba" + integrity sha512-PcNX2rVaaPtzY6YaF2zms6fiOLAPHkM7+o5C1zdC6tJFEHOMo/xWyUDcV5Oq45oNqNQFHnbQz2sNzx/DA3dWBQ== dependencies: "@rollup/plugin-node-resolve" "7.1.1" + builtins "4.0.0" consola "2.11.3" cosmiconfig "6.0.0" cross-spawn "7.0.1" @@ -166,8 +167,8 @@ minimatch "3.0.4" mkdirp "1.0.4" p-limit "2.2.2" + param-case "3.0.4" rollup "2.3.2" - rollup-plugin-auto-external "2.0.0" rollup-plugin-generate-package-json "3.2.0" rollup-plugin-typescript2 "0.27.0" tslib "^1.11.1" @@ -4032,12 +4033,12 @@ builtin-modules@^3.1.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== -builtins@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-2.0.1.tgz#42a4d6fe38973a7c185b435970d13e5e70f70f3c" - integrity sha512-XkkVe5QAb6guWPXTzpSrYpSlN3nqEmrrE2TkAr/tp7idSF6+MONh9WvKrAuR3HiKLvoSgmbs8l1U9IPmMrIoLw== +builtins@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-4.0.0.tgz#a8345420de82068fdc4d6559d0456403a8fb1905" + integrity sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw== dependencies: - semver "^6.0.0" + semver "^7.0.0" busboy@^0.3.1: version "0.3.1" @@ -9827,7 +9828,7 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" -param-case@^3.0.3: +param-case@3.0.4, param-case@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== @@ -11426,16 +11427,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup-plugin-auto-external@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-auto-external/-/rollup-plugin-auto-external-2.0.0.tgz#98fd137d66c1cbe0f4e245b31560a72dbde896aa" - integrity sha512-HQM3ZkZYfSam1uoZtAB9sK26EiAsfs1phrkf91c/YX+S07wugyRXSigBxrIwiLr5EPPilKYmoMxsrnlGBsXnuQ== - dependencies: - builtins "^2.0.0" - read-pkg "^3.0.0" - safe-resolve "^1.0.0" - semver "^5.5.0" - rollup-plugin-generate-package-json@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/rollup-plugin-generate-package-json/-/rollup-plugin-generate-package-json-3.2.0.tgz#e9c1d358f2be6c58b49853af58205292d45a33ff" @@ -11504,11 +11495,6 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safe-resolve@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-resolve/-/safe-resolve-1.0.0.tgz#fe34f8d29d7a3becfd249d0aa8a799b5c3cf6559" - integrity sha1-/jT40p16O+z9JJ0KqKeZtcPPZVk= - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -11613,7 +11599,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@7.x, semver@^7.0.0, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==