npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@boozt/sfmc-request

v0.0.4

Published

SFMC Request

Downloads

9

Readme

sfmc-request

Many years ago, one decided to take matters into their own hands and build a module that would help people avoid the unbearable burden of dealing with unexpected responses from the Marketing Cloud API.

The hero tried to use the existing SDKs and thoughtfully inspect the documentation. After some time of careful research, his labors were rewarded and this package was born.

At the moment, this is limited but quite useful functionality that will be expanded later.

what is the capable for?

  • DataExtensionRow (Insert, Update, Get, Delete) — sync calls
  • DataExtensionRowAsync (Insert, Upsert, Status, Result) — async calls

example of use

import { Client, DataExtensionRowAsync, DataExtensionRow } from '@boozt/sfmc-request'

const client = new ClientProvider(SFMC_BASE_URL, SFMC_SOAP_URL, SFMC_TOKEN_URL, [
      { name: SFMC_UNIT_NAME, clientId: SFMC_CLIENT_ID, clientSecret: SFMC_CLIENT_SECRET }
    ]).getClient(SFMC_UNIT_NAME)

const requestAsync = new DataExtensionRowAsync(client)
const requestSync = new DataExtensionRow(client)

const upsertResult = await requestAsync.upsert(TARGET_DE_KEY, upsertData)

if (upsertResult.ok) {
    logger.status(`Update successful, requestId: ${upsertResult.value.requestId}`)
} else if (upsertResult.ok === false) {
    return res.status(500).send(upsertResult.error.message)
}

const deleteResult = await requestSync.delete({ key: TARGET_DE_KEY }, deleteData)

if (deleteResult.ok) {
    logger.status(`Deletion successful, requestId: ${deleteResult.value.RequestID}`)
} else if (deleteResult.ok === false) {
    return res.status(500).send(JSON.stringify(deleteResult.error))
}

nice things

  • you can use your own implementation of the client
  • the module is covered with types as much as it could be done for a quick start
  • it will get more abilities in the foreseeable future