WIP: Add codegen to make adding new bank account locations easier#168
WIP: Add codegen to make adding new bank account locations easier#168
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a small codegen pipeline for asset-movement bank-account “address” types/schemas, so new bank account location schemas can be added by dropping in a new file rather than manually editing large union types.
Changes:
- Introduces JSON-schema-like definitions for bank account address variants and shared schema fragments.
- Adds scripts + Makefile rules to generate
index.generated.tsandtypes.generated.tsfor address schemas. - Updates
asset-movement/common.tsto re-export and consume the generated address types.
Reviewed changes
Copilot reviewed 14 out of 16 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| utils/run-ts | Improves selection of the compiled JS entrypoint when tsc emits multiple files. |
| src/services/asset-movement/lib/data/types.ts | Adds BankAccountAddressSchema + shared schema fragments/references. |
| src/services/asset-movement/lib/data/json-schema.ts | Adds a minimal JSON-schema type subset used by schema definitions. |
| src/services/asset-movement/lib/data/scripts/generator.ts | Generates TypeScript types + exported JSON schema from address definitions. |
| src/services/asset-movement/lib/data/scripts/generate-index.sh | Generates an index module aggregating all address schema files. |
| src/services/asset-movement/lib/data/addresses/{us,pix,interac,iban-swift,clabe}.ts | Defines per-location bank-account schema fragments. |
| src/services/asset-movement/common.ts | Switches bank account address types to generated ones; re-exports generated artifacts. |
| Makefile | Adds generation steps and cleans generated address files. |
| .gitignore | Ignores generated asset-movement address .generated.ts files. |
| package.json / package-lock.json | Adds json-schema-to-typescript as a dev dependency. |
| .cspell.config.mjs | Adds interac to dictionary. |
src/services/asset-movement/lib/data/addresses/bank-account/iban-swift.ts
Outdated
Show resolved
Hide resolved
Makefile
Outdated
| rm -f ./src/services/asset-movement/lib/data/addresses/index.generated.ts | ||
| mv ./src/services/asset-movement/lib/data/addresses/index.generated.ts.tmp ./src/services/asset-movement/lib/data/addresses/index.generated.ts |
There was a problem hiding this comment.
This rule always deletes and rewrites index.generated.ts even if the content didn’t change, which can force unnecessary downstream rebuilds. Consider writing to a temp file and only replacing the target when the contents differ (e.g., cmp -s), otherwise keep the existing file.
| rm -f ./src/services/asset-movement/lib/data/addresses/index.generated.ts | |
| mv ./src/services/asset-movement/lib/data/addresses/index.generated.ts.tmp ./src/services/asset-movement/lib/data/addresses/index.generated.ts | |
| @if [ -f ./src/services/asset-movement/lib/data/addresses/index.generated.ts ] && cmp -s ./src/services/asset-movement/lib/data/addresses/index.generated.ts.tmp ./src/services/asset-movement/lib/data/addresses/index.generated.ts; then \ | |
| rm ./src/services/asset-movement/lib/data/addresses/index.generated.ts.tmp; \ | |
| else \ | |
| mv ./src/services/asset-movement/lib/data/addresses/index.generated.ts.tmp ./src/services/asset-movement/lib/data/addresses/index.generated.ts; \ | |
| fi |
|



No description provided.