UNPKG

declastruct-stripe-sdk

Version:

declarative control of stripe constructs, via declastruct

48 lines 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.castToDeclaredStripeInvoice = void 0; const uni_time_1 = require("@ehmpathy/uni-time"); const domain_glossary_price_1 = require("domain-glossary-price"); const helpful_errors_1 = require("helpful-errors"); const type_fns_1 = require("type-fns"); const DeclaredStripeInvoice_1 = require("../../domain/objects/DeclaredStripeInvoice"); const castToDeclaredStripeInvoice = (input) => { return new DeclaredStripeInvoice_1.DeclaredStripeInvoice({ id: input.id, exid: input.metadata?.exid ?? helpful_errors_1.UnexpectedCodePathError.throw('invoice.metadata.exid was not declared. this is not a valid declarative invoice', { input }), status: input.status ?? helpful_errors_1.UnexpectedCodePathError.throw('could not extract status from invoice', { input, }), customerRef: { id: typeof input.customer === 'string' ? input.customer : input.customer?.id ?? helpful_errors_1.UnexpectedCodePathError.throw('could not extract customerId from invoice', { input, }), }, chargeId: typeof input.charge === 'string' ? input.charge : input.charge?.id ?? null, config: { autoAdvance: input.auto_advance ?? helpful_errors_1.UnexpectedCodePathError.throw('invoice.auto_advance was not specified', { input }), collectionMethod: input.collection_method, }, metadata: (() => { const obj = input.metadata ? (0, type_fns_1.omit)(input.metadata, ['exid']) : {}; if (Object.keys(obj).length === 0) return null; return obj; })(), pdfUrl: input.invoice_pdf ?? null, portalUrl: input.hosted_invoice_url ?? null, description: input.description ?? null, totalBillable: new domain_glossary_price_1.Price({ amount: input.total, currency: 'USD' }), dueDate: input.due_date ? (0, uni_time_1.asUniDate)({ mse: input.due_date * 1000 }) : null, }); }; exports.castToDeclaredStripeInvoice = castToDeclaredStripeInvoice; //# sourceMappingURL=castToDeclaredStripeInvoice.js.map