aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/turbo-codemod/plopfile.js
diff options
context:
space:
mode:
author简律纯 <hsiangnianian@outlook.com>2023-04-28 01:36:44 +0800
committer简律纯 <hsiangnianian@outlook.com>2023-04-28 01:36:44 +0800
commitdd84b9d64fb98746a230cd24233ff50a562c39c9 (patch)
treeb583261ef00b3afe72ec4d6dacb31e57779a6faf /packages/turbo-codemod/plopfile.js
parent0b46fcd72ac34382387b2bcf9095233efbcc52f4 (diff)
downloadHydroRoll-dd84b9d64fb98746a230cd24233ff50a562c39c9.tar.gz
HydroRoll-dd84b9d64fb98746a230cd24233ff50a562c39c9.zip
Diffstat (limited to 'packages/turbo-codemod/plopfile.js')
-rw-r--r--packages/turbo-codemod/plopfile.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/packages/turbo-codemod/plopfile.js b/packages/turbo-codemod/plopfile.js
new file mode 100644
index 0000000..9cc2dd7
--- /dev/null
+++ b/packages/turbo-codemod/plopfile.js
@@ -0,0 +1,46 @@
+const fs = require("fs-extra");
+
+module.exports = function plopConfig(plop) {
+ // controller generator
+ plop.setGenerator("controller", {
+ description: "Add a new transformer",
+ prompts: [
+ {
+ type: "input",
+ name: "name",
+ message: 'key for the transform (example: "create-turbo-config")',
+ },
+ {
+ type: "input",
+ name: "description",
+ message:
+ 'description for the transform (example: "Create the `turbo.json` file from an existing "turbo" key in `package.json`")',
+ },
+ {
+ type: "input",
+ name: "introducedIn",
+ message:
+ 'the semantic version of turbo where this change was introduced (example: "1.1.0")',
+ },
+ ],
+ actions: [
+ {
+ type: "add",
+ path: "src/transforms/{{name}}.ts",
+ templateFile: "templates/transformer.hbs",
+ },
+ {
+ type: "add",
+ path: "__tests__/{{name}}.test.ts",
+ templateFile: "templates/transformer.test.hbs",
+ },
+ function createFixturesDirectory(answers) {
+ process.chdir(plop.getPlopfilePath());
+ const directory = `__tests__/__fixtures__/${answers.name}`;
+ fs.mkdirSync(`__tests__/__fixtures__/${answers.name}`);
+
+ return `created empty ${directory} directory for fixtures`;
+ },
+ ],
+ });
+};