Rebrand to MifKit and add Converter registry - #1
Merged
Conversation
Renames the project from MifMapXL to MifKit so additional converters
(KML/KMZ, GeoJSON, Shapefile, ...) can live alongside the existing
Excel exporter without the name implying a single-purpose tool.
Adds a Converter contract and registry under src/core/converters/:
- types.js JSDoc contract (id, inputs, outputs, options, run)
- registry.js register / get / list / applyDefaults / validateOptions
- index.js auto-registers all built-in converters
- mif-to-xlsx/ first converter, wraps the existing convert.js engine
so behavior is byte-identical to 1.0.4
GUI and CLI will dispatch through the registry; new converters become
one folder + one fixture + one registry entry. UI and worker are not
touched in this PR — wiring them through the registry comes next, once
the second converter (kml-to-mif) is in place to validate the contract.
Rename touches: package.json (name, version 1.1.0, appId, productName,
artifactName), main window title, renderer header, README (with
converter roadmap table and a note that old GitHub URLs auto-redirect),
PROJECT_CONTEXT.md preamble, and tmpdir prefixes in two tests.
Tests: 55 existing + 7 new (registry validation, default merging,
converter dispatch through registry, file-list input mode). All green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 19, 2026
This was referenced May 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
src/core/converters/. New formats become one folder + one fixture + one entry — GUI and CLI will pick them up automatically.mif-to-xlsx). Behavior is byte-identical to 1.0.4.What changed
package.json(name,version,appId,productName,artifactName), main window title, renderer header, README (with converter roadmap and redirect note),PROJECT_CONTEXT.mdpreamble, tmpdir prefixes in two tests.src/core/converters/:types.js— JSDoc Converter contract (id, inputs, outputs, options schema, asyncrun)registry.js—register/get/list/applyDefaults/validateOptionswith strict shape validationindex.js— auto-registers built-in converters on first importmif-to-xlsx/index.js— thin adapter over the existingconvert.jsengineconvert.jsdirectly — switching them to dispatch through the registry will land alongside the second converter so the contract is validated by two real implementations.Tests
62 passing (55 existing + 7 new):
applyDefaultsmerges schema defaults with explicit valuesvalidateOptionsreports type/enum/range violationsmif-to-xlsxis registered by default.xlsxfor both folder and explicit-file inputsnpm testTest plan
npm testis greennpm run dev, run a conversion, confirm same output as 1.0.4MifMapXL.gitFollow-ups (next PRs)
feat/kml-to-mif— port the existing Python KML→MIF/MID converter to Node.js as the second registered converter; validates the contract with a real second implementation.feat/dispatch-ui— switch renderer to render its options panel from the converter schema; switch worker to dispatch byconverterId.feat/cli— addbin/mifkitpowered by the same registry (mifkit convert <id> <input> <output> --flags).🤖 Generated with Claude Code