strapi/packages/utils/upgrade/resources/codemods/5.0.0/sqlite3-to-better-sqlite3.json.ts
2024-10-09 09:52:15 +02:00

40 lines
945 B
TypeScript

import path from 'node:path';
import type { modules } from '../../../dist';
/**
* This codemod runs on the package.json of the Strapi project and updates
* the sqlite dependency to better-sqlite3
*/
const transform: modules.runner.json.JSONTransform = (file, params) => {
const { cwd, json } = params;
const rootPackageJsonPath = path.join(cwd, 'package.json');
if (file.path !== rootPackageJsonPath) {
return file.json;
}
const j = json(file.json);
let removed = false;
const targetProperties = ['sqlite3', '@vscode/sqlite3'];
targetProperties.forEach((targetProperty) => {
const oldSqliteDependency = `dependencies.${targetProperty}`;
if (j.has(oldSqliteDependency)) {
j.remove(oldSqliteDependency);
removed = true;
}
});
if (removed && !j.has('dependencies.better-sqlite3')) {
j.set('dependencies.better-sqlite3', '9.4.3');
}
return j.root();
};
export default transform;