1.0.56 • Published 2 years ago

auctionly-clientutilities v1.0.56

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

🛠️ Auctionly Client Utilities

This library contains client utilities that I'm tired of copy-pasting in all of our auctionly projects.

🗒️ GetSsmParameter

GetSsmParameter is a class that assists with retrieving SSM parameters. Simply provide guestCredentials and the parameter's name, and the client will attempt to retrieve its value.

For example, to retrieve the dev environment's AuctionApiId parameter:

import { PublicAuthClient } from "auctionly-auth";
import { GetSsmParameter } from "auctionly-clientutilities";

//Get Guest Credentials
const authClient = new PublicAuthClient();
const guestCredentials = await authClient.getGuestCredentials();

//Initialize GetSsmParameter
const SsmHelper = new GetSsmParameter(guestCredentials);

//Retrieve parameter
await SsmHelper.Get(`/public/dev/AuctionApiId`);

🔧 Install

npm i auctionly-clientutilities

☁️ Publish

First, make sure you're logged into the auctionly npm account locally, npm whoami. If you're not on the 'auctionly' account, you'll need to log in to it with npm login.

npm run publishTypescript

🗝️ Auctionly Credentials

Returns an AWS.Credentials object from one of two sources:

  1. Env Config (Preferred)

    AUCTIONLY_AWS_ACCESS_KEY_ID=SomeValue
    AUCTIONLY_AWS_SECRET_ACCESS_KEY=SomeSecretValue
  2. Shared 'auctionly' credentials profile (Used primarily for local dev)

    https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html

    ~/.aws/credentials

    [auctionly]
    aws_access_key_id=someValue
    aws_secret_access_key=someOtherValue
  3. Default hard-coded credentials

    If no other credentials have been found, the default guest credentials will be used. This will result in greatly limited permissions.

💼 Lambda Client

LambdaClient is a wrapper for the AWS.Lambda class. By default, it uses the AuctionlyCredentials for lambda requests, but the constructor allows the user to provide their own AWS.Credentials object. It wall automatically convert lambda request payloads to PascalCase and return the lambda's reponse in cameCase. To use:

const stage = "dev";
const lambdaClient = new LambdaClient(stage);

var result = await lambdaClient.Invoke("SomeService", "SomeFunction", {
  someKey: someValue,
});

📩 GetSsmParameter

getSsmParameter is a simple function that wraps the AWS.SSM class. Given an ssm parameter name it returns the value. It defaults to using the AuctionlyCredentials, but the AWS.Credentials can be overridden. For example:

const result = await getSsmParameter(`/${stage}/user-pool-id`);
console.log(result); // "us-east-1_xxxxxxxxx"

🗒️ JsonExtensions

JsonExtensions holds utilities for converting json with special casing. For example:

const pascalJson = `{SomeParameter: "SomeValue"}`;

const camelObject = new JsonExtensions().parseToCamelCase(pascalJson);

console.log(camelObject); // { someParameter: "SomeValue" }
const camelObject = { someParameter: "SomeValue" };

const pascalJson = new JsonExtensions().stringifyToPascalCase(camelObject);

console.log(pascalJson); // "{ SomeParameter: "SomeValue" }"
1.0.44

2 years ago

1.0.43

2 years ago

1.0.42

2 years ago

1.0.48

2 years ago

1.0.47

2 years ago

1.0.45

2 years ago

1.0.49

2 years ago

1.0.51

2 years ago

1.0.50

2 years ago

1.0.55

2 years ago

1.0.53

2 years ago

1.0.52

2 years ago

1.0.56

2 years ago

1.0.39

2 years ago

1.0.38

2 years ago

1.0.41

2 years ago

1.0.37

2 years ago

1.0.36

2 years ago

1.0.35

2 years ago

1.0.34

2 years ago

1.0.33

2 years ago

1.0.32

2 years ago

1.0.31

2 years ago

1.0.30

2 years ago

1.0.29

2 years ago

1.0.28

2 years ago

1.0.27

2 years ago

1.0.26

2 years ago

1.0.25

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.19

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago