From 0e1c8c2a4ea996624e746c599c10b82481f07c4c Mon Sep 17 00:00:00 2001 From: Elias Malik Date: Tue, 30 Sep 2025 16:00:11 +0100 Subject: [PATCH 1/2] add v34.3 transform boilerplate --- .../transform-grid-options-v34-3/README.md | 27 ++++++++++++++ .../scenarios/js/hello-world/input.js | 9 +++++ .../js/hello-world/output.errors.cjs | 1 + .../scenarios/js/hello-world/output.js | 8 +++++ .../js/hello-world/output.warnings.cjs | 1 + .../scenarios/js/hello-world/scenario.json | 8 +++++ .../transform-grid-options-v34-3/index.ts | 1 + .../transform-grid-options-v34-3/manifest.ts | 8 +++++ .../replacements.ts | 17 +++++++++ .../transform-grid-options-v34-3.test.ts | 16 +++++++++ .../transform-grid-options-v34-3.ts | 11 ++++++ .../src/codemods/versions/34.3.0/README.md | 35 +++++++++++++++++++ .../34.3.0/__fixtures__/scenarios/.gitignore | 0 .../codemods/versions/34.3.0/codemod.test.ts | 16 +++++++++ .../src/codemods/versions/34.3.0/codemod.ts | 24 +++++++++++++ .../src/codemods/versions/34.3.0/manifest.ts | 13 +++++++ .../codemods/versions/34.3.0/transforms.ts | 7 ++++ .../cli/src/codemods/versions/manifest.ts | 3 ++ 18 files changed, 205 insertions(+) create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/README.md create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/input.js create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.errors.cjs create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.js create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.warnings.cjs create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/scenario.json create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/index.ts create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/manifest.ts create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/replacements.ts create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/transform-grid-options-v34-3.test.ts create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/transform-grid-options-v34-3.ts create mode 100644 packages/cli/src/codemods/versions/34.3.0/README.md create mode 100644 packages/cli/src/codemods/versions/34.3.0/__fixtures__/scenarios/.gitignore create mode 100644 packages/cli/src/codemods/versions/34.3.0/codemod.test.ts create mode 100644 packages/cli/src/codemods/versions/34.3.0/codemod.ts create mode 100644 packages/cli/src/codemods/versions/34.3.0/manifest.ts create mode 100644 packages/cli/src/codemods/versions/34.3.0/transforms.ts diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/README.md b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/README.md new file mode 100644 index 00000000..66135906 --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/README.md @@ -0,0 +1,27 @@ +# `transform-grid-options-v34-3` + +> _Transform deprecated Grid options_ + +See the [`transform-grid-options`](../../plugins/transform-grid-options/) plugin for usage instructions. + +## Common tasks + +### Add a test case + +Create a new unit test scenario for this transform: + +``` +pnpm run task:create-test --type transform --target transform-grid-options-v34-3 +``` + +### Add a new rule + +Replacement rules are specified in [`replacements.ts`](./replacements.ts) + +### Add to a codemod release + +Add this source code transformation to a codemod release: + +``` +pnpm run task:include-transform --transform transform-grid-options-v34-3 +``` diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/input.js b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/input.js new file mode 100644 index 00000000..d9d59b54 --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/input.js @@ -0,0 +1,9 @@ +import { createGrid } from '@ag-grid-community/core'; + +const gridApi = createGrid(document.body, { + columnDefs: [], + rowData: [], + hello: 'world', + goodbye: 'world', + friendly: true, +}); diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.errors.cjs b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.errors.cjs new file mode 100644 index 00000000..e0a30c5d --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.errors.cjs @@ -0,0 +1 @@ +module.exports = []; diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.js b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.js new file mode 100644 index 00000000..d0c30ca4 --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.js @@ -0,0 +1,8 @@ +import { createGrid } from '@ag-grid-community/core'; + +const gridApi = createGrid(document.body, { + columnDefs: [], + rowData: [], + greet: 'world', + unfriendly: false +}); diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.warnings.cjs b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.warnings.cjs new file mode 100644 index 00000000..e0a30c5d --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.warnings.cjs @@ -0,0 +1 @@ +module.exports = []; diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/scenario.json b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/scenario.json new file mode 100644 index 00000000..346c1107 --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/scenario.json @@ -0,0 +1,8 @@ +{ + "scenario": { + "input": "input.js", + "output": "output.js", + "errors": "output.errors.cjs", + "warnings": "output.warnings.cjs" + } +} diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/index.ts b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/index.ts new file mode 100644 index 00000000..2af55391 --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/index.ts @@ -0,0 +1 @@ +export { default } from './transform-grid-options-v34-3'; diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/manifest.ts b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/manifest.ts new file mode 100644 index 00000000..668cb27e --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/manifest.ts @@ -0,0 +1,8 @@ +import { type TransformManifest } from '@ag-grid-devtools/types'; + +const manifest: TransformManifest = { + name: 'Transform Grid options v34.3', + description: 'Transform deprecated Grid options', +}; + +export default manifest; diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/replacements.ts b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/replacements.ts new file mode 100644 index 00000000..b697b6d1 --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/replacements.ts @@ -0,0 +1,17 @@ +import { + getDeprecationMessage, + invertOptionalBooleanValue, + migrateOptionalValue, + migrateProperty, + removeProperty, + transformObjectProperties, + type CodemodObjectPropertyReplacement, +} from '../../plugins/transform-grid-options/transform-grid-options'; + +const MIGRATION_URL = 'https://ag-grid.com/javascript-data-grid/upgrading-to-ag-grid-34-3/'; + +export const replacements: Array = transformObjectProperties({ + hello: migrateProperty('greet', migrateOptionalValue()), + goodbye: removeProperty(getDeprecationMessage('goodbye', MIGRATION_URL)), + friendly: migrateProperty('unfriendly', invertOptionalBooleanValue()), +}); diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/transform-grid-options-v34-3.test.ts b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/transform-grid-options-v34-3.test.ts new file mode 100644 index 00000000..17c7fda2 --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/transform-grid-options-v34-3.test.ts @@ -0,0 +1,16 @@ +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { describe, expect, onTestFinished, test } from 'vitest'; +import { loadTransformScenarios } from '../../test/runners/transform'; + +import transformGridOptionsV34_3 from './transform-grid-options-v34-3'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +describe(transformGridOptionsV34_3, () => { + const scenariosPath = join(__dirname, './__fixtures__/scenarios'); + loadTransformScenarios(scenariosPath, { + transforms: [transformGridOptionsV34_3], + vitest: { describe, expect, test, onTestFinished }, + }); +}); diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/transform-grid-options-v34-3.ts b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/transform-grid-options-v34-3.ts new file mode 100644 index 00000000..1b8850db --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/transform-grid-options-v34-3.ts @@ -0,0 +1,11 @@ +import { type AstCliContext, type AstTransform } from '@ag-grid-devtools/ast'; +import { transformGridOptions } from '../../plugins/transform-grid-options'; +import { replacements } from './replacements'; + +const plugin: AstTransform = transformGridOptions(replacements); + +const transform: AstTransform = function transformGridOptionsV34_3(babel) { + return plugin(babel); +}; + +export default transform; diff --git a/packages/cli/src/codemods/versions/34.3.0/README.md b/packages/cli/src/codemods/versions/34.3.0/README.md new file mode 100644 index 00000000..45a1a47f --- /dev/null +++ b/packages/cli/src/codemods/versions/34.3.0/README.md @@ -0,0 +1,35 @@ +# 34.3.0 + +Codemod for upgrading to [AG Grid v34.3.0](https://github.com/ag-grid/ag-grid/releases/tag/v34.3.0) + +## Usage + +``` +npx @ag-grid-devtools/cli migrate --to 34.3.0 +``` + +Source code transformations applied by this codemod are specified in [`transforms.ts`](./transforms.ts). + +## Common tasks + +### Add a transform + +Option 1: Create a new source code transformation to add to this codemod release version: + +``` +pnpm run task:create-transform --release 34.3.0 +``` + +Option 2: Add an existing source code transformation to this codemod release version: + +``` +pnpm run task:include-transform --version 34.3.0 +``` + +### Add a test case + +Create a new unit test scenario for this version: + +``` +pnpm run task:create-test --type version --target 34.3.0 +``` diff --git a/packages/cli/src/codemods/versions/34.3.0/__fixtures__/scenarios/.gitignore b/packages/cli/src/codemods/versions/34.3.0/__fixtures__/scenarios/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/packages/cli/src/codemods/versions/34.3.0/codemod.test.ts b/packages/cli/src/codemods/versions/34.3.0/codemod.test.ts new file mode 100644 index 00000000..35a622d1 --- /dev/null +++ b/packages/cli/src/codemods/versions/34.3.0/codemod.test.ts @@ -0,0 +1,16 @@ +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { describe, expect, onTestFinished, test } from 'vitest'; +import { loadCodemodExampleScenarios } from '../../test/runners/codemod'; + +import codemod from './codemod'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +describe(codemod, () => { + const scenariosPath = join(__dirname, './__fixtures__/scenarios'); + loadCodemodExampleScenarios(scenariosPath, { + codemod, + vitest: { describe, expect, test, onTestFinished }, + }); +}); diff --git a/packages/cli/src/codemods/versions/34.3.0/codemod.ts b/packages/cli/src/codemods/versions/34.3.0/codemod.ts new file mode 100644 index 00000000..5bbd78f7 --- /dev/null +++ b/packages/cli/src/codemods/versions/34.3.0/codemod.ts @@ -0,0 +1,24 @@ +import { transformFileAst } from '@ag-grid-devtools/codemod-utils'; +import { + type Codemod, + type CodemodInput, + type CodemodOptions, + type CodemodResult, +} from '@ag-grid-devtools/types'; + +import transforms from './transforms'; + +const codemod: Codemod = function codemodV34_3_0( + file: CodemodInput, + options: CodemodOptions, +): CodemodResult { + const { path, source } = file; + const { fs, userConfig } = options; + return transformFileAst(source, transforms, { + filename: path, + fs, + userConfig, + }); +}; + +export default codemod; diff --git a/packages/cli/src/codemods/versions/34.3.0/manifest.ts b/packages/cli/src/codemods/versions/34.3.0/manifest.ts new file mode 100644 index 00000000..0f7802d4 --- /dev/null +++ b/packages/cli/src/codemods/versions/34.3.0/manifest.ts @@ -0,0 +1,13 @@ +import { type TransformManifest, type VersionManifest } from '@ag-grid-devtools/types'; + +import transformGridOptionsV34_3 from '../../transforms/transform-grid-options-v34-3/manifest.ts'; + +const transforms: Array = [transformGridOptionsV34_3]; + +const manifest: VersionManifest = { + version: '34.3.0', + codemodPath: 'versions/34.3.0', + transforms, +}; + +export default manifest; diff --git a/packages/cli/src/codemods/versions/34.3.0/transforms.ts b/packages/cli/src/codemods/versions/34.3.0/transforms.ts new file mode 100644 index 00000000..538ad454 --- /dev/null +++ b/packages/cli/src/codemods/versions/34.3.0/transforms.ts @@ -0,0 +1,7 @@ +import { type AstCliContext, type AstTransform } from '@ag-grid-devtools/ast'; + +import transformGridOptionsV34_3 from '../../transforms/transform-grid-options-v34-3'; + +const transforms: Array> = [transformGridOptionsV34_3]; + +export default transforms; diff --git a/packages/cli/src/codemods/versions/manifest.ts b/packages/cli/src/codemods/versions/manifest.ts index dfc38993..5b2e49bb 100644 --- a/packages/cli/src/codemods/versions/manifest.ts +++ b/packages/cli/src/codemods/versions/manifest.ts @@ -22,6 +22,8 @@ import v33_3_0 from './33.3.0/manifest'; import v34_0_0 from './34.0.0/manifest'; +import v34_3_0 from './34.3.0/manifest'; + const versions: Array = [ v31_0_0, v31_1_0, @@ -34,6 +36,7 @@ const versions: Array = [ v33_2_0, v33_3_0, v34_0_0, + v34_3_0, ]; export default versions; From 0e1846b68674e847d06f74fbde316a928cd138df Mon Sep 17 00:00:00 2001 From: Elias Malik Date: Tue, 30 Sep 2025 16:09:48 +0100 Subject: [PATCH 2/2] add codemod and simple test --- .../scenarios/js/hello-world/output.js | 8 -------- .../js/{hello-world => no-op}/input.js | 5 ++++- .../{hello-world => no-op}/output.errors.cjs | 0 .../__fixtures__/scenarios/js/no-op/output.js | 12 ++++++++++++ .../{hello-world => no-op}/output.warnings.cjs | 0 .../js/{hello-world => no-op}/scenario.json | 0 .../scenarios/js/rename-field/input.js | 15 +++++++++++++++ .../js/rename-field/output.errors.cjs | 1 + .../scenarios/js/rename-field/output.js | 15 +++++++++++++++ .../js/rename-field/output.warnings.cjs | 1 + .../scenarios/js/rename-field/scenario.json | 8 ++++++++ .../replacements.ts | 18 ++++++++++++------ 12 files changed, 68 insertions(+), 15 deletions(-) delete mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.js rename packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/{hello-world => no-op}/input.js (71%) rename packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/{hello-world => no-op}/output.errors.cjs (100%) create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/output.js rename packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/{hello-world => no-op}/output.warnings.cjs (100%) rename packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/{hello-world => no-op}/scenario.json (100%) create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/input.js create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.errors.cjs create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.js create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.warnings.cjs create mode 100644 packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/scenario.json diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.js b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.js deleted file mode 100644 index d0c30ca4..00000000 --- a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.js +++ /dev/null @@ -1,8 +0,0 @@ -import { createGrid } from '@ag-grid-community/core'; - -const gridApi = createGrid(document.body, { - columnDefs: [], - rowData: [], - greet: 'world', - unfriendly: false -}); diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/input.js b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/input.js similarity index 71% rename from packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/input.js rename to packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/input.js index d9d59b54..745de295 100644 --- a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/input.js +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/input.js @@ -1,7 +1,10 @@ import { createGrid } from '@ag-grid-community/core'; const gridApi = createGrid(document.body, { - columnDefs: [], + columnDefs: [ + { field: 'date' }, + { field: 'country' }, + ], rowData: [], hello: 'world', goodbye: 'world', diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.errors.cjs b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/output.errors.cjs similarity index 100% rename from packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.errors.cjs rename to packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/output.errors.cjs diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/output.js b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/output.js new file mode 100644 index 00000000..745de295 --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/output.js @@ -0,0 +1,12 @@ +import { createGrid } from '@ag-grid-community/core'; + +const gridApi = createGrid(document.body, { + columnDefs: [ + { field: 'date' }, + { field: 'country' }, + ], + rowData: [], + hello: 'world', + goodbye: 'world', + friendly: true, +}); diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.warnings.cjs b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/output.warnings.cjs similarity index 100% rename from packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/output.warnings.cjs rename to packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/output.warnings.cjs diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/scenario.json b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/scenario.json similarity index 100% rename from packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/hello-world/scenario.json rename to packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/no-op/scenario.json diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/input.js b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/input.js new file mode 100644 index 00000000..3f7d7b3f --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/input.js @@ -0,0 +1,15 @@ +import { createGrid } from '@ag-grid-community/core'; + +const gridApi = createGrid(document.body, { + columnDefs: [ + { + field: 'date', + rowGroupingHierarchy: ['foo', 'bar'], + }, + { field: 'country' }, + ], + rowData: [], + hello: 'world', + goodbye: 'world', + friendly: true, +}); diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.errors.cjs b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.errors.cjs new file mode 100644 index 00000000..e0a30c5d --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.errors.cjs @@ -0,0 +1 @@ +module.exports = []; diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.js b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.js new file mode 100644 index 00000000..c45469eb --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.js @@ -0,0 +1,15 @@ +import { createGrid } from '@ag-grid-community/core'; + +const gridApi = createGrid(document.body, { + columnDefs: [ + { + field: 'date', + groupHierarchy: ['foo', 'bar'], + }, + { field: 'country' }, + ], + rowData: [], + hello: 'world', + goodbye: 'world', + friendly: true, +}); diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.warnings.cjs b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.warnings.cjs new file mode 100644 index 00000000..e0a30c5d --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/output.warnings.cjs @@ -0,0 +1 @@ +module.exports = []; diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/scenario.json b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/scenario.json new file mode 100644 index 00000000..346c1107 --- /dev/null +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/__fixtures__/scenarios/js/rename-field/scenario.json @@ -0,0 +1,8 @@ +{ + "scenario": { + "input": "input.js", + "output": "output.js", + "errors": "output.errors.cjs", + "warnings": "output.warnings.cjs" + } +} diff --git a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/replacements.ts b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/replacements.ts index b697b6d1..c28f2e21 100644 --- a/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/replacements.ts +++ b/packages/cli/src/codemods/transforms/transform-grid-options-v34-3/replacements.ts @@ -1,17 +1,23 @@ import { - getDeprecationMessage, - invertOptionalBooleanValue, migrateOptionalValue, migrateProperty, - removeProperty, + transformObjectListValue, transformObjectProperties, + transformOptionalValue, + transformPropertyValue, type CodemodObjectPropertyReplacement, } from '../../plugins/transform-grid-options/transform-grid-options'; const MIGRATION_URL = 'https://ag-grid.com/javascript-data-grid/upgrading-to-ag-grid-34-3/'; export const replacements: Array = transformObjectProperties({ - hello: migrateProperty('greet', migrateOptionalValue()), - goodbye: removeProperty(getDeprecationMessage('goodbye', MIGRATION_URL)), - friendly: migrateProperty('unfriendly', invertOptionalBooleanValue()), + columnDefs: transformPropertyValue( + transformOptionalValue( + transformObjectListValue( + transformObjectProperties({ + rowGroupingHierarchy: migrateProperty('groupHierarchy', migrateOptionalValue()), + }), + ), + ), + ), });