Description
Issue workflow progress
Progress of the issue based on the
Contributor Workflow
- 1. The issue provides a reproduction available on
Github,
Stackblitz
or
CodeSandbox
Make sure to fork this template and run
yarn generate
in the terminal.Please make sure Mesh package versions under
package.json
matches yours.
- 2. A failing test has been provided
- 3. A local solution has been provided
- 4. A pull request is pending review
Describe the bug
I performed a yarn mesh build
against a Microsoft Dynamics endpoint, which succeeded without complaint.
However, upon running yarn mesh start
, an error is observed (included at the end of this bug report).
I believe the root cause is that one of the 'tables' in Dynamics is named "Import", which clashes with the typescript 'import' keyword.
To Reproduce Steps to reproduce the behavior:
I can't provide authentication against our instance, but the yml looks like this:
sources:
- name: Microsoft Graph
handler:
odata:
endpoint: https://<instance>.crm.dynamics.com/api/data/v9.2/
batch: multipart
expandNavProps: true
operationHeaders:
Authorization: Bearer <token>
schemaHeaders:
Authorization: Bearer <token>
Expected behavior
yarn mesh start
doesn't fail.
Some suggestions:
- ignore any typescript keyword during import parsing
- replace any keyword-conflicting field with "keyword_" or something similar
I found a comprehensive list of typescript keywords, which is:
['abstract', 'arguments', 'await', 'boolean',
'break', 'byte', 'case', 'catch',
'char', 'class', 'const', 'continue',
'debugger', 'default', 'delete', 'do',
'double', 'else', 'enum', 'eval',
'export', 'extends', 'false', 'final',
'finally', 'float', 'for', 'function',
'goto', 'if', 'implements', 'import',
'in', 'instanceof', 'int', 'interface',
'let', 'long', 'native', 'new',
'null', 'package', 'private', 'protected',
'public', 'return', 'short', 'static',
'super', 'switch', 'synchronized', 'this',
'throw', 'throws', 'transient', 'true',
'try', 'typeof', 'var', 'void',
'volatile', 'while', 'with', 'yield']
Environment:
- OS: MacOS
- "@graphql-mesh/cli": "^0.82.23"
- "@graphql-mesh/odata": "^0.22.13"
- NodeJS: v16.14.0
Additional context
The error trace encountered is as follows:
💥 🕸️ Mesh TSError: ⨯ Unable to compile TypeScript:
.mesh/index.ts:1774:43 - error TS1005: '(' expected.
1774 owner_imports?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:1775:35 - error TS1005: '(' expected.
1775 owner_importsById?: Maybe<import>;
~
.mesh/index.ts:26903:35 - error TS1005: '(' expected.
26903 regardingobjectid_import: import;
~
.mesh/index.ts:31156:35 - error TS1005: '(' expected.
31156 regardingobjectid_import: import;
~
.mesh/index.ts:33457:50 - error TS1005: '(' expected.
33457 BusinessUnit_Imports?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:33458:42 - error TS1005: '(' expected.
33458 BusinessUnit_ImportsById?: Maybe<import>;
~
.mesh/index.ts:64463:19 - error TS1005: '(' expected.
64463 importid: import;
~
.mesh/index.ts:64851:1 - error TS1128: Declaration or statement expected.
64851 export type import = crmbaseentity & {
~~~~~~
.mesh/index.ts:64851:13 - error TS2457: Type alias name cannot be 'import'.
64851 export type import = crmbaseentity & {
~~~~~~
.mesh/index.ts:64851:20 - error TS1128: Declaration or statement expected.
64851 export type import = crmbaseentity & {
~
.mesh/index.ts:64852:47 - error TS1005: ',' expected.
64852 sendnotification?: Maybe<Scalars['Boolean']>;
~
.mesh/index.ts:64853:37 - error TS1005: ',' expected.
64853 statuscode?: Maybe<Scalars['Int']>;
~
.mesh/index.ts:64854:45 - error TS1005: ',' expected.
64854 _modifiedby_value?: Maybe<Scalars['GUID']>;
~
.mesh/index.ts:64855:42 - error TS1005: ',' expected.
64855 modifiedon?: Maybe<Scalars['DateTime']>;
~
.mesh/index.ts:64856:42 - error TS1005: ',' expected.
64856 emailaddress?: Maybe<Scalars['String']>;
~
.mesh/index.ts:64857:36 - error TS1005: ',' expected.
64857 statecode?: Maybe<Scalars['Int']>;
~
.mesh/index.ts:64858:53 - error TS1005: ',' expected.
64858 _modifiedonbehalfby_value?: Maybe<Scalars['GUID']>;
~
.mesh/index.ts:64859:53 - error TS1005: ',' expected.
64859 _owningbusinessunit_value?: Maybe<Scalars['GUID']>;
~
.mesh/index.ts:64860:35 - error TS1005: ',' expected.
64860 sequence?: Maybe<Scalars['Int']>;
~
.mesh/index.ts:64861:42 - error TS1005: ',' expected.
64861 _ownerid_value?: Maybe<Scalars['GUID']>;
~
.mesh/index.ts:64862:52 - error TS1005: ',' expected.
64862 _createdonbehalfby_value?: Maybe<Scalars['GUID']>;
~
.mesh/index.ts:64863:45 - error TS1005: ',' expected.
64863 _owninguser_value?: Maybe<Scalars['GUID']>;
~
.mesh/index.ts:64864:41 - error TS1005: ',' expected.
64864 createdon?: Maybe<Scalars['DateTime']>;
~
.mesh/index.ts:64865:35 - error TS1005: ',' expected.
64865 modecode?: Maybe<Scalars['Int']>;
~
.mesh/index.ts:64866:36 - error TS1005: ',' expected.
64866 importid?: Maybe<Scalars['GUID']>;
~
.mesh/index.ts:64867:45 - error TS1005: ',' expected.
64867 _owningteam_value?: Maybe<Scalars['GUID']>;
~
.mesh/index.ts:64868:44 - error TS1005: ',' expected.
64868 _createdby_value?: Maybe<Scalars['GUID']>;
~
.mesh/index.ts:64869:34 - error TS1005: ',' expected.
64869 name?: Maybe<Scalars['String']>;
~
.mesh/index.ts:64870:24 - error TS1005: ',' expected.
64870 createdby: systemuser;
~
.mesh/index.ts:64871:19 - error TS1005: ',' expected.
64871 owningteam: team;
~
.mesh/index.ts:64872:25 - error TS1005: ',' expected.
64872 owninguser: systemuser;
~
.mesh/index.ts:64873:32 - error TS1005: ',' expected.
64873 createdonbehalfby: systemuser;
~
.mesh/index.ts:64874:54 - error TS1005: ',' expected.
64874 Import_ImportFile?: Maybe<Array<Maybe<importfile>>>;
~
.mesh/index.ts:64875:44 - error TS1005: ',' expected.
64875 Import_ImportFileById?: Maybe<importfile>;
~
.mesh/index.ts:64876:21 - error TS1005: ',' expected.
64876 ownerid: principal;
~
.mesh/index.ts:64877:33 - error TS1005: ',' expected.
64877 modifiedonbehalfby: systemuser;
~
.mesh/index.ts:64878:69 - error TS1005: ',' expected.
64878 Import_BulkDeleteFailures?: Maybe<Array<Maybe<bulkdeletefailure>>>;
~
.mesh/index.ts:64879:59 - error TS1005: ',' expected.
64879 Import_BulkDeleteFailuresById?: Maybe<bulkdeletefailure>;
~
.mesh/index.ts:64880:35 - error TS1005: ',' expected.
64880 owningbusinessunit: businessunit;
~
.mesh/index.ts:64881:25 - error TS1005: ',' expected.
64881 modifiedby: systemuser;
~
.mesh/index.ts:64882:63 - error TS1005: ',' expected.
64882 Import_AsyncOperations?: Maybe<Array<Maybe<asyncoperation>>>;
~
.mesh/index.ts:64883:53 - error TS1005: ',' expected.
64883 Import_AsyncOperationsById?: Maybe<asyncoperation>;
~
.mesh/index.ts:64884:47 - error TS1005: ',' expected.
64884 ImportRecordsImport?: Maybe<Scalars['JSON']>;
~
.mesh/index.ts:64885:39 - error TS1005: ',' expected.
64885 ParseImport?: Maybe<Scalars['JSON']>;
~
.mesh/index.ts:64886:32 - error TS1005: ',' expected.
64886 rest?: Maybe<Scalars['JSON']>;
~
.mesh/index.ts:174448:43 - error TS1005: '(' expected.
174448 owner_imports?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:174449:35 - error TS1005: '(' expected.
174449 owner_importsById?: Maybe<import>;
~
.mesh/index.ts:206815:53 - error TS1005: '(' expected.
206815 lk_importbase_createdby?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:206816:45 - error TS1005: '(' expected.
206816 lk_importbase_createdbyById?: Maybe<import>;
~
.mesh/index.ts:207209:48 - error TS1005: '(' expected.
207209 SystemUser_Imports?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:207210:40 - error TS1005: '(' expected.
207210 SystemUser_ImportsById?: Maybe<import>;
~
.mesh/index.ts:207471:57 - error TS1005: '(' expected.
207471 lk_import_createdonbehalfby?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:207472:49 - error TS1005: '(' expected.
207472 lk_import_createdonbehalfbyById?: Maybe<import>;
~
.mesh/index.ts:207672:58 - error TS1005: '(' expected.
207672 lk_import_modifiedonbehalfby?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:207673:50 - error TS1005: '(' expected.
207673 lk_import_modifiedonbehalfbyById?: Maybe<import>;
~
.mesh/index.ts:207849:54 - error TS1005: '(' expected.
207849 lk_importbase_modifiedby?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:207850:46 - error TS1005: '(' expected.
207850 lk_importbase_modifiedbyById?: Maybe<import>;
~
.mesh/index.ts:214644:43 - error TS1005: '(' expected.
214644 owner_imports?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:214645:35 - error TS1005: '(' expected.
214645 owner_importsById?: Maybe<import>;
~
.mesh/index.ts:261820:42 - error TS1005: '(' expected.
261820 team_Imports?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:261821:34 - error TS1005: '(' expected.
261821 team_ImportsById?: Maybe<import>;
~
.mesh/index.ts:263011:43 - error TS1005: '(' expected.
263011 owner_imports?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:263012:35 - error TS1005: '(' expected.
263012 owner_importsById?: Maybe<import>;
~
.mesh/index.ts:289051:37 - error TS1005: '(' expected.
289051 imports?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:289052:35 - error TS1005: '(' expected.
289052 importsByimportid?: Maybe<import>;
~
.mesh/index.ts:309728:37 - error TS1005: '(' expected.
309728 imports?: Maybe<Array<Maybe<import>>>;
~
.mesh/index.ts:309729:35 - error TS1005: '(' expected.
309729 importsByimportid?: Maybe<import>;
~
.mesh/index.ts:309730:31 - error TS1005: '(' expected.
309730 createimports?: Maybe<import>;
~
.mesh/index.ts:309732:41 - error TS1005: '(' expected.
309732 updateimportsByimportid?: Maybe<import>;
~
.mesh/index.ts:402045:37 - error TS1005: '(' expected.
402045 import: ResolverTypeWrapper<import>;
~
.mesh/index.ts:406070:17 - error TS1005: '(' expected.
406070 import: import;
~
at createTSError (/Users/cmcconomy/dev/test/graphql-mesh-example/node_modules/ts-node/src/index.ts:859:12)
at reportTSError (/Users/cmcconomy/dev/test/graphql-mesh-example/node_modules/ts-node/src/index.ts:863:19)
at /Users/cmcconomy/dev/test/graphql-mesh-example/node_modules/ts-node/src/index.ts:1379:34
at Object.compile (/Users/cmcconomy/dev/test/graphql-mesh-example/node_modules/ts-node/src/index.ts:1458:13)
at Module.m._compile (/Users/cmcconomy/dev/test/graphql-mesh-example/node_modules/ts-node/src/index.ts:1617:30)
at Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
at Object.require.extensions.<computed> [as .ts] (/Users/cmcconomy/dev/test/graphql-mesh-example/node_modules/ts-node/src/index.ts:1621:12)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
error Command failed with exit code 1.