From d2d6a29a4a3c95048bdda98987a4203ee3cc956b Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Wed, 26 Feb 2025 16:14:15 +0200 Subject: [PATCH] chore(types): improvements to tax provider tsdocs --- packages/core/types/src/tax/provider.ts | 50 ++++++------------------- 1 file changed, 11 insertions(+), 39 deletions(-) diff --git a/packages/core/types/src/tax/provider.ts b/packages/core/types/src/tax/provider.ts index 1c37abb7e7..37f983ed85 100644 --- a/packages/core/types/src/tax/provider.ts +++ b/packages/core/types/src/tax/provider.ts @@ -38,55 +38,28 @@ export type ItemTaxCalculationLine = { } /** - * ## Overview + * + * + * ### Identifier Property * - * A tax provider is used to retrieve the tax lines in a provided context. The Tax Module provides a default `system` provider. You can create your own tax provider, - * either in a plugin, in a provider module, or directly in your Medusa application's codebase, then use it in any tax region. - * - * --- - * - * ## How to Create a Tax Provider - * - * A tax provider class is defined in a TypeScript or JavaScript file. The class must implement the - * `ITaxProvider` interface imported from `@medusajs/framework/types`. - * - * The file can be defined in a plugin, a provider module, or under the `src/services` directory of your Medusa application. You can later pass the package's name or the - * path to the file in the `providers` option of the Tax Module. + * The `identifier` property in a tax provider is used when the tax provider is loaded by the Tax Module and added to the database. A tax provider is represented in the database by the `TaxProvider` data model. * * For example: * - * ```ts title="src/services/my-tax.ts" - * import { ITaxProvider } from "@medusajs/framework/types" - * - * export default class MyTaxProvider implements ITaxProvider { - * // ... - * } - * ``` - * - * --- - * - * ## Identifier Property - * - * The `identifier` property in a tax provider is used when the tax provider is registered in the dependency container or added to the database. A tax provider is represented in the database by the `TaxProvider` data model. - * - * For example: - * - * ```ts title="src/services/my-tax.ts" + * ```ts title="src/modules/my-tax/service.ts" * export default class MyTaxProvider implements ITaxProvider { * static identifier = "my-tax" * // ... * } * ``` * - * --- + * ### constructor * - * ## Constructor - * - * You can use the `constructor` of your tax provider to access the resources registered in the dependency container. + * You can use the `constructor` of your tax provider to access the resources registered in the [Module Container](https://docs.medusajs.com/resources/medusa-container-resources#module-container-resources). * * You can also use the constructor to initialize your integration with the third-party provider. For example, if you use a client to connect to the third-party provider’s APIs, you can initialize it in the constructor and use it in other methods in the service. * - * Additionally, if you’re creating your tax provider as a plugin or a provider module to be installed in any Medusa application and you want to access its options, you can access them in the constructor. + * Additionally, if you’re creating your tax provider as a plugin or a module provider to be installed in any Medusa application and you want to access its options, you can access them in the second parameter of the constructor. * * For example: * @@ -112,10 +85,9 @@ export interface ITaxProvider { getIdentifier(): string /** - * This method is used to retrieve the tax lines of items and shipping methods. It's used - * when the `getTaxLines` method of the Tax Module's main service is called. - * - * This method is useful during checkout or when calculating the totals of orders or exchanges. + * This method is used to retrieve the tax lines of items and shipping methods. It's used during checkout + * when the `getTaxLines` method of the Tax Module's main service is called for a tax + * region that uses this tax provider. * * @param {ItemTaxCalculationLine[]} itemLines - The line item lines to calculate taxes for. * @param {ShippingTaxCalculationLine[]} shippingLines - The shipping method lines to calculate taxes for.