Download packages/import/src/validate.ts from AUXteam/Midday: direct link, hf CLI and curl.
- Browser
- Download file 1.06 kB
-
https://huggingface.co/spaces/AUXteam/Midday/resolve/main/packages/import/src/validate.ts
- Command line
-
hf download hf://spaces/AUXteam/Midday/packages/import/src/validate.ts
-
curl -L -o validate.ts https://huggingface.co/spaces/AUXteam/Midday/resolve/main/packages/import/src/validate.ts
1.06 kB
| import { z } from "zod"; | |
| import type { Transaction } from "./types"; | |
| export const createTransactionSchema = z.object({ | |
| name: z.string(), | |
| currency: z.string(), | |
| bank_account_id: z.string(), | |
| team_id: z.string(), | |
| internal_id: z.string(), | |
| status: z.enum(["posted", "pending"]), | |
| method: z.enum(["card", "bank", "other"]), | |
| date: z.string().date(), | |
| amount: z.number(), | |
| manual: z.boolean(), | |
| category_slug: z.string().nullable(), | |
| }); | |
| export const validateTransactions = (transactions: Transaction[]) => { | |
| const processedTransactions = transactions.map((transaction) => | |
| createTransactionSchema.safeParse(transaction), | |
| ); | |
| const validTransactions = processedTransactions.filter( | |
| (transaction) => transaction.success, | |
| ); | |
| const invalidTransactions = processedTransactions.filter( | |
| (transaction) => !transaction.success, | |
| ); | |
| return { | |
| validTransactions: validTransactions.map((transaction) => transaction.data), | |
| invalidTransactions: invalidTransactions.map( | |
| (transaction) => transaction.error, | |
| ), | |
| }; | |
| }; | |