Typescript 自定义捆绑

问题描述 投票:0回答:0

我正在测试 AWS AppSync JS 解析器,我目前正在 TS 中构建它们。为了能够使用它们,我将每个 TS 文件转换为一个 JS 文件,以便能够将它们用作 AWS AppSync 中的 JS 解析器,并且可以正常工作。但我也想将每个本地导入转换为包含在输出 JS 文件中。

getUser.ts

import { util, Context } from '@aws-appsync/utils';
import { dynamoDBGetItemRequest } from './utils';

export function request(ctx: Context) {
  if (!ctx.identity || !('sub' in ctx.identity)) {
    return util.unauthorized();
  }

  return dynamoDBGetItemRequest({ id: ctx.identity.sub });
}

export function response(ctx: Context) {
  return ctx.result;
}

当前转换为 getUser.js

import { util } from '@aws-appsync/utils';
import { dynamoDBGetItemRequest } from './utils';
export function request(ctx) {
    if (!ctx.identity || !('sub' in ctx.identity)) {
        return util.unauthorized();
    }
    return dynamoDBGetItemRequest({ id: ctx.identity.sub });
}
export function response(ctx) {
    return ctx.result;
}

这里的问题是我需要在js文件中捆绑

dynamoDBGetItemRequest

期望的结果:getUser.js

import { util } from '@aws-appsync/utils';
const dynamoDBGetItemRequest = (key) => {
    return {
        operation: 'GetItem',
        key: util.dynamodb.toMapValues(key),
    };
};
export function request(ctx) {
    if (!ctx.identity || !('sub' in ctx.identity)) {
        return util.unauthorized();
    }
    return dynamoDBGetItemRequest({ id: ctx.identity.sub });
}
export function response(ctx) {
    return ctx.result;
}

我如何使用

tsc
实现这种捆绑?

附加说明/上下文:

  • 会有多个这样的文件,每个解析器一个。
  • 他们必须导出一个
    request
    函数和一个
    response
    函数。
  • 使用 NX
  • js 文件将像这样在 AWS CDK 中使用
    appsync.Code.fromAsset('dist/appsync-resolver/some-folder/getUser.js')),
    AppSync 函数中
typescript amazon-web-services tsc aws-appsync-resolver
© www.soinside.com 2019 - 2024. All rights reserved.