saleor-apps-redis_apl/apps/taxes/src/modules/taxjar/taxjar-config.ts
Adrian Pilarczyk b46a9f3e70
fix/split providers (#271)
* refactor: ♻️ add explicit return to services

* refactor: ♻️ use provider get method

* refactor: ♻️ move obfuscation logic to router & separate public service

* build: 💚 add changeset
2023-03-13 10:57:18 +01:00

34 lines
1,017 B
TypeScript

import { z } from "zod";
import { obfuscateSecret } from "../../lib/utils";
export const taxJarConfigSchema = z.object({
name: z.string().min(1, { message: "Name requires at least one character." }),
apiKey: z.string().min(1, { message: "API Key requires at least one character." }),
isSandbox: z.boolean(),
});
export type TaxJarConfig = z.infer<typeof taxJarConfigSchema>;
export const defaultTaxJarConfig: TaxJarConfig = {
name: "",
apiKey: "",
isSandbox: false,
};
export const taxJarInstanceConfigSchema = z.object({
id: z.string(),
provider: z.literal("taxjar"),
config: taxJarConfigSchema,
});
export type TaxJarInstanceConfig = z.infer<typeof taxJarInstanceConfigSchema>;
export const obfuscateTaxJarConfig = (config: TaxJarConfig) => ({
...config,
apiKey: obfuscateSecret(config.apiKey),
});
export const obfuscateTaxJarInstances = (instances: TaxJarInstanceConfig[]) =>
instances.map((instance) => ({
...instance,
config: obfuscateTaxJarConfig(instance.config),
}));