Search code examples
javascriptnode.jsaws-sdk-js

how to configure a service client object in the JavaScript SDK v3?


From example here i want to know how we can achieve in aws sdk JS v3?

The following example configures a service client object in javascript sdk object in v2. I want to know how we can achieve something like this in aws-sdk js v3?

import AWS from 'aws-sdk';

const { Service, apiLoader } = AWS;

apiLoader.services.personalize = {};
AWS.Personalize = Service.defineService('personalize', ['2018-05-22']);
Object.defineProperty(apiLoader.services.personalize, '2018-05-22', {
  get: function get() {
    const model = require('./aws-api-model-personalize.json');
    model.paginators = {};
    return model;
  },
  enumerable: true,
  configurable: true,
});

apiLoader.services['personalize-runtime'] = {};
AWS.PersonalizeRuntime = Service.defineService('personalize-runtime', ['2018-05-22']);
Object.defineProperty(apiLoader.services['personalize-runtime'], '2018-05-22', {
  get: function get() {
    const model = require('./aws-api-model-personalize-runtime.json');
    model.paginators = {};
    return model;
  },
  enumerable: true,
  configurable: true,
});

// initialize an instance of the Personalize service client
const personalize = new AWS.Personalize({ apiVersion: '2018-05-22' });

// use it
personalize.listDatasetGroups().promise().then((resp) => {
  console.log(resp);
});

Solution

  • I kinda figured out, In v3 seems like the clients can't be loaded in runtime. WE have to generate our own Typescript client. Using smithy Just like they do all clients in aws-sdk v3 and use them.