- Add unit tests for accessor-based output, circular references,
and reverse reference resolution in `csvToModule`.
- Extract fixture loading logic into `test-utils.ts`.
- Refactor `loader.test.ts` to use the new test utilities.
generation
Extract reference resolution logic, type generation, and module
generation into dedicated modules to improve maintainability and
clean up the core loader.
Update `csvToModule` to check if a foreign key value is an object
containing the default primary key before converting it to a string.
This ensures correct key mapping when references are resolved as
objects rather than primitive IDs.
Pre-filter comment lines from the content before passing it to
`csv-parse`. This prevents quote parsing errors when comment lines
contain double quotes and simplifies the record filtering logic.
Support reverse references via ~tablename(foreignKey) syntax,
complementing forward @tablename references. Includes parser,
validator, and CSV loader integration with the new
ReverseReferenceSchema type.
- Allow parsing tuple values with or without name prefixes
- Supports both [x: 10; y: 20] and [10; 20] formats
- Useful for CSV data where names are schema-only metadata
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add NamedSchema interface with optional name property
- Update TupleSchema.elements to use NamedSchema[]
- Add parseNamedSchema() to support [x: number; y: number] syntax
- Update validator to parse named members in tuple values
- Fix schemaToTypeString in csv-loader for NamedSchema
- Fix createValidator to handle NamedSchema.schema
- Ensure single named element stays as tuple (not array)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add writeToDisk option to write .d.ts files directly to disk
- Useful for rsbuild/rspack dev server which uses in-memory FS
- Set writeToDisk: true in dev mode to see generated types
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Fix leading slash in relative path
- Use .d.ts extension instead of .csv.d.ts
- Support typesOutputDir option properly
- Use ./ prefix for module declaration path
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Include dist/ in git for npm package distribution
- Add .npmignore to exclude source files from npm package
- This ensures npm install from git works without requiring build
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>