From 1706a21b46e739075a01c689447badb39e538df8 Mon Sep 17 00:00:00 2001 From: Daniel Dipper Date: Tue, 22 Dec 2020 14:32:31 +0000 Subject: [PATCH] feat: add prop codemod --- bin/cli.js | 7 ++ transforms/add-prop/README.md | 46 ++++++++++ .../__testfixtures__/BooleanFalse.input.js | 3 + .../__testfixtures__/BooleanFalse.output.js | 3 + .../__testfixtures__/BooleanTrue.input.js | 3 + .../__testfixtures__/BooleanTrue.output.js | 3 + .../__testfixtures__/NoImport.input.js | 3 + .../__testfixtures__/NoImport.output.js | 0 .../NoTransformRequired.input.js | 3 + .../NoTransformRequired.output.js | 0 .../add-prop/__testfixtures__/Node.input.js | 4 + .../add-prop/__testfixtures__/Node.output.js | 0 .../add-prop/__testfixtures__/Number.input.js | 4 + .../__testfixtures__/Number.output.js | 3 + .../add-prop/__testfixtures__/Object.input.js | 3 + .../__testfixtures__/Object.output.js | 0 .../add-prop/__testfixtures__/String.input.js | 3 + .../__testfixtures__/String.output.js | 3 + transforms/add-prop/__tests__/add-prop.js | 89 +++++++++++++++++++ transforms/add-prop/add-prop.js | 27 ++++++ transforms/builder/addAttribute.js | 57 ++++++++++++ transforms/builder/index.js | 2 + 22 files changed, 266 insertions(+) create mode 100644 transforms/add-prop/README.md create mode 100644 transforms/add-prop/__testfixtures__/BooleanFalse.input.js create mode 100644 transforms/add-prop/__testfixtures__/BooleanFalse.output.js create mode 100644 transforms/add-prop/__testfixtures__/BooleanTrue.input.js create mode 100644 transforms/add-prop/__testfixtures__/BooleanTrue.output.js create mode 100644 transforms/add-prop/__testfixtures__/NoImport.input.js create mode 100644 transforms/add-prop/__testfixtures__/NoImport.output.js create mode 100644 transforms/add-prop/__testfixtures__/NoTransformRequired.input.js create mode 100644 transforms/add-prop/__testfixtures__/NoTransformRequired.output.js create mode 100644 transforms/add-prop/__testfixtures__/Node.input.js create mode 100644 transforms/add-prop/__testfixtures__/Node.output.js create mode 100644 transforms/add-prop/__testfixtures__/Number.input.js create mode 100644 transforms/add-prop/__testfixtures__/Number.output.js create mode 100644 transforms/add-prop/__testfixtures__/Object.input.js create mode 100644 transforms/add-prop/__testfixtures__/Object.output.js create mode 100644 transforms/add-prop/__testfixtures__/String.input.js create mode 100644 transforms/add-prop/__testfixtures__/String.output.js create mode 100644 transforms/add-prop/__tests__/add-prop.js create mode 100644 transforms/add-prop/add-prop.js create mode 100644 transforms/builder/addAttribute.js diff --git a/bin/cli.js b/bin/cli.js index b6c9752..43dc38f 100644 --- a/bin/cli.js +++ b/bin/cli.js @@ -123,6 +123,13 @@ function Cli() { ) .action((target, command) => runTransform(target, command, program)); + program + .command("add-prop ") + .description("adds a new prop and value to the specified component") + .action((target, component, prop, value, command) => + runTransform(target, command, program, { component, prop, value }) + ); + program .command("rename-prop ") .description( diff --git a/transforms/add-prop/README.md b/transforms/add-prop/README.md new file mode 100644 index 0000000..a324b95 --- /dev/null +++ b/transforms/add-prop/README.md @@ -0,0 +1,46 @@ +# add-prop + +This universal codemod provides possibility to add any prop to any component. + +```diff +- ++ + +``` +## Usage + +`npx carbon-codemod add-prop ` + +### Examples + +### String +`npx carbon-codemod add-prop src carbon-react/lib/components/button ml "16px"` + +```diff +- ++ +``` + +### Number +`npx carbon-codemod add-prop src carbon-react/lib/components/button ml 2` + +```diff +- ++ +``` + +### Boolean - True +`npx carbon-codemod add-prop src carbon-react/lib/components/button hasBorder true` + +```diff +- ++ +``` + +### Boolean - False +`npx carbon-codemod add-prop src carbon-react/lib/components/button hasBorder false` + +```diff +- ++ +``` \ No newline at end of file diff --git a/transforms/add-prop/__testfixtures__/BooleanFalse.input.js b/transforms/add-prop/__testfixtures__/BooleanFalse.input.js new file mode 100644 index 0000000..45b4254 --- /dev/null +++ b/transforms/add-prop/__testfixtures__/BooleanFalse.input.js @@ -0,0 +1,3 @@ +import Button from "carbon-react/lib/components/button"; + +export const asFalse = () =>