fix(npmextra): merge old npmextra keys into new keys during migration, preserving existing new values

This commit is contained in:
2025-12-16 12:58:58 +00:00
parent 773df5268b
commit 55700ad87e
4 changed files with 31 additions and 5 deletions

View File

@@ -1,5 +1,13 @@
# Changelog
## 2025-12-16 - 2.13.1 - fix(npmextra)
merge old npmextra keys into new keys during migration, preserving existing new values
- Changed migration logic to merge data when both old and new keys exist instead of skipping the merge.
- Merge preserves existing new-key values (old values do not overwrite new ones) and still deletes the old key after migration.
- Applied the fix in both ts/mod_format/format.npmextra.ts and ts/mod_format/formatters/npmextra.formatter.ts.
- Adds a console log for successful migrations; behavior for single-key rename remains unchanged.
## 2025-12-16 - 2.13.0 - feat(tests)
feat(tests): add sandbox test fixture, CI and editor configs; bump deps

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@git.zone/cli',
version: '2.13.0',
version: '2.13.1',
description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
}

View File

@@ -16,8 +16,17 @@ const migrateNamespaceKeys = (npmextraJson: any): boolean => {
{ oldKey: 'szci', newKey: '@ship.zone/szci' },
];
for (const { oldKey, newKey } of migrations) {
if (npmextraJson[oldKey] && !npmextraJson[newKey]) {
npmextraJson[newKey] = npmextraJson[oldKey];
if (npmextraJson[oldKey]) {
if (!npmextraJson[newKey]) {
// New key doesn't exist - simple rename
npmextraJson[newKey] = npmextraJson[oldKey];
} else {
// New key exists - merge old into new (old values don't overwrite new)
npmextraJson[newKey] = {
...npmextraJson[oldKey],
...npmextraJson[newKey],
};
}
delete npmextraJson[oldKey];
migrated = true;
console.log(`Migrated npmextra.json: ${oldKey} -> ${newKey}`);

View File

@@ -16,8 +16,17 @@ const migrateNamespaceKeys = (npmextraJson: any): boolean => {
{ oldKey: 'szci', newKey: '@ship.zone/szci' },
];
for (const { oldKey, newKey } of migrations) {
if (npmextraJson[oldKey] && !npmextraJson[newKey]) {
npmextraJson[newKey] = npmextraJson[oldKey];
if (npmextraJson[oldKey]) {
if (!npmextraJson[newKey]) {
// New key doesn't exist - simple rename
npmextraJson[newKey] = npmextraJson[oldKey];
} else {
// New key exists - merge old into new (old values don't overwrite new)
npmextraJson[newKey] = {
...npmextraJson[oldKey],
...npmextraJson[newKey],
};
}
delete npmextraJson[oldKey];
migrated = true;
}