@adyen/api-library
Version:
The Adyen API Library for NodeJS enables you to work with Adyen APIs.
66 lines • 2.59 kB
JavaScript
;
/*
* ######
* ######
* ############ ####( ###### #####. ###### ############ ############
* ############# #####( ###### #####. ###### ############# #############
* ###### #####( ###### #####. ###### ##### ###### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ######
* ############# ############# ############# ############# ##### ######
* ############ ############ ############# ############ ##### ######
* ######
* #############
* ############
* Adyen NodeJS API Library
* Copyright (c) 2026 Adyen B.V.
* This file is open source and available under the MIT license.
* See the LICENSE file for more info.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.SaleDataHelper = void 0;
const saleToAcquirerDataParser_1 = require("./saleToAcquirerDataParser");
/**
* A helper class to work with `SaleData` from the TAPI (Cloud device API) model.
*
* The `SaleToAcquirerData` field supports two formats:
* - Base64-encoded JSON: a JSON object encoded as a Base64 string.
* - Key-value pairs: form-encoded pairs using `&` as separator
* (e.g. `shopperEmail=foo@bar.com&tenderOption=AskGratuity`).
*
* This helper auto-detects the format and parses it into a {@link SaleToAcquirerData} object.
*/
class SaleDataHelper {
/**
* Constructs a helper instance wrapping the provided {@link SaleData}.
*
* @param saleData The {@link SaleData} instance to wrap.
*/
constructor(saleData) {
if (!saleData) {
throw new Error("saleData must not be null");
}
this.saleData = saleData;
}
/**
* Parses the `SaleToAcquirerData` field into a {@link SaleToAcquirerData} object.
* Supports both Base64-encoded JSON and form-encoded key-value pair formats.
*
* @returns The parsed {@link SaleToAcquirerData}, or `null` if the field is absent
* or cannot be parsed.
*/
getSaleToAcquirerData() {
const raw = this.saleData.SaleToAcquirerData;
if (!raw || raw.trim() === "") {
return null;
}
try {
return (0, saleToAcquirerDataParser_1.parse)(raw);
}
catch (_a) {
return null;
}
}
}
exports.SaleDataHelper = SaleDataHelper;
//# sourceMappingURL=saleDataHelper.js.map