invoicing-sdk
Version:
Invoice SDK entry package for getting started quickly, including domain and application layers
121 lines • 3.05 kB
JavaScript
// src/index.ts
import {
Invoice,
Money,
CustomerInfo,
OrderItem,
InvoiceFinancials,
ShippingCost
} from "@invoicing-sdk/domain";
import {
InvoiceNumberValidatorImpl,
DEFAULT_INVOICE_NUMBER_CONFIG,
BasePDFRenderer,
PDFGenerationError,
InvalidLegalInfoError,
DEFAULT_PDF_OPTIONS,
InvoiceNumberGeneratorImpl,
createInvoiceNumberGenerator,
validateGeneratedNumber,
DEFAULT_GENERATOR_CONFIG,
GENERATOR_PRESETS
} from "@invoicing-sdk/domain";
import {
makeRequestInvoice,
createRequestInvoiceUseCase,
makeIssueInvoice,
createIssueInvoiceUseCase,
makeCreateInvoice,
createCreateInvoiceUseCase,
makeListInvoices,
createListInvoicesUseCase,
makeGetInvoice,
createGetInvoiceUseCase
} from "@invoicing-sdk/application";
import {
EventBusError,
EventPublishError,
EventSubscriptionError
} from "@invoicing-sdk/application";
import {
makeRequestInvoice as makeRequestInvoice2,
makeIssueInvoice as makeIssueInvoice2,
makeCreateInvoice as makeCreateInvoice2,
makeListInvoices as makeListInvoices2,
makeGetInvoice as makeGetInvoice2
} from "@invoicing-sdk/application";
function createInvoicingSDK(dependencies) {
return {
requestInvoice: makeRequestInvoice2(dependencies),
issueInvoice: makeIssueInvoice2(dependencies),
createInvoice: makeCreateInvoice2(dependencies),
listInvoices: makeListInvoices2(dependencies),
getInvoice: makeGetInvoice2(dependencies)
};
}
function createUseCases(useCases) {
return useCases;
}
function validateSDKDependencies(dependencies) {
const required = [
"invoiceRepository",
"orderRepository",
"invoiceNumberValidator",
"pdfRenderer",
"invoiceNumberGenerator",
"legalInfo",
"shippingRateProvider",
"shippingCostPolicy"
];
const missing = required.filter(
(dep) => !(dep in dependencies) || !dependencies[dep]
);
if (missing.length > 0) {
throw new Error(
`Missing required dependencies for InvoicingSDK: ${missing.join(
", "
)}. Please provide all required dependencies to create the SDK.`
);
}
}
function createInvoicingSDKSafe(dependencies) {
validateSDKDependencies(dependencies);
return createInvoicingSDK(dependencies);
}
export {
BasePDFRenderer,
CustomerInfo,
DEFAULT_GENERATOR_CONFIG,
DEFAULT_INVOICE_NUMBER_CONFIG,
DEFAULT_PDF_OPTIONS,
EventBusError,
EventPublishError,
EventSubscriptionError,
GENERATOR_PRESETS,
InvalidLegalInfoError,
Invoice,
InvoiceFinancials,
InvoiceNumberGeneratorImpl,
InvoiceNumberValidatorImpl,
Money,
OrderItem,
PDFGenerationError,
ShippingCost,
createCreateInvoiceUseCase,
createGetInvoiceUseCase,
createInvoiceNumberGenerator,
createInvoicingSDK,
createInvoicingSDKSafe,
createIssueInvoiceUseCase,
createListInvoicesUseCase,
createRequestInvoiceUseCase,
createUseCases,
makeCreateInvoice,
makeGetInvoice,
makeIssueInvoice,
makeListInvoices,
makeRequestInvoice,
validateGeneratedNumber,
validateSDKDependencies
};
//# sourceMappingURL=index.mjs.map