NativeScript AWS AppSync 集成

NativeScript AWS AppSync Integration

我遵循了 angular web 的多个 AppSync 教程,但尝试在 NativeScript 中重复该过程更加困难。它看起来像 people have done it before,所以任何已经使它起作用的人的任何输入都很棒。

按照我为常规 angular angular 应用程序所做的相同的一般程序,我尝试使用 aws-appsync 和 nativescript-nodeify 来尝试使其与 nativescript 兼容。添加 nativescript-nodeify 摆脱了我最初的错误,但现在我遇到了一个新错误:

我得到的错误是:

***** Fatal JavaScript exception - application has been terminated. *****
Native stack trace:
1   0x100b9373c NativeScript::reportFatalErrorBeforeShutdown(JSC::ExecState*, JSC::Exception*, bool, bool)
2   0x100bc4068 -[TNSRuntime executeModule:referredBy:]
3   0x10056229c
4   0x184fcdfc0 <redacted>
JavaScript stack trace:
1   moduleDeclarationInstantiation@file:///app/tns_modules/aws-appsync/lib/link/non-terminating-link.js:71:26
2   link@[native code]
3   @[native code]
4   promiseReactionJob@[native code]
5   require@[native code]
6   anonymous@file:///app/tns_modules/aws-appsync/lib/link/non-terminating-link.js:71:26
7   evaluate@[native code]
8   moduleEvaluation@[native code]
9   @[native code]
10  promiseReactionJob@[native code]
11  require@[native code]
12  anonymous@file:///app/tns_modules/aws-appsync/lib/link/non-terminating-http-link.js:25:37
13  evaluate@[native code]
14  moduleEvaluation@[native code]
15  @[native code]
16  promiseReactionJob@[native code]
17  require@[native code]
18  anonymous@file:///app/tns_modules/aws-appsync/lib/link/index.js:21:42
19  evaluate@[native code]
20  moduleEvaluation@[native code]
21  @[native code]
22  promiseReactionJob@[native code]
23  require@[native code]
24  anonymous@file:///app/tns_modules/aws-appsync/lib/client.js:87:21
25  evaluate@[native code]
26  moduleEval<\M-b\M^@\M-&>
JavaScript error:
file:///app/tns_modules/aws-appsync/lib/link/non-terminating-link.js:71:26: JS ERROR SyntaxError: Importing binding name 'print' is not found.

我在初始化 AWSAppSyncConfig 时遇到错误。相关代码如下:

require('nativescript-nodeify');

const appSyncConfig = ...

import AWSAppSyncClient from 'aws-appsync';
import { AUTH_TYPE } from 'aws-appsync/lib/link/auth-link';

...

const client = new AWSAppSyncClient({
   url: appSyncConfig.aws_appsync_graphqlEndpoint,
   region: appSyncConfig.aws_appsync_region,
   auth: {
      type: AUTH_TYPE.AMAZON_COGNITO_USER_POOLS,
         jwtToken: ACCESS_TOKEN
      }
});

错误信息指向非终止行-link.js:

var linkUtils_1 = require("apollo-link/lib/linkUtils");

问题最终与 typescript 2.9.* 和 aws-appsync 1.3.4 之间的兼容性问题有关。我将我的打字稿更新到 3.0.3,它现在可以工作了