aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/turbo-codemod/src/utils/loadTransformers.ts
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/src/utils/loadTransformers.ts
parent0b46fcd72ac34382387b2bcf9095233efbcc52f4 (diff)
downloadHydroRoll-dd84b9d64fb98746a230cd24233ff50a562c39c9.tar.gz
HydroRoll-dd84b9d64fb98746a230cd24233ff50a562c39c9.zip
Diffstat (limited to 'packages/turbo-codemod/src/utils/loadTransformers.ts')
-rw-r--r--packages/turbo-codemod/src/utils/loadTransformers.ts27
1 files changed, 27 insertions, 0 deletions
diff --git a/packages/turbo-codemod/src/utils/loadTransformers.ts b/packages/turbo-codemod/src/utils/loadTransformers.ts
new file mode 100644
index 0000000..9ba5ca1
--- /dev/null
+++ b/packages/turbo-codemod/src/utils/loadTransformers.ts
@@ -0,0 +1,27 @@
+import path from "path";
+import fs from "fs-extra";
+import type { Transformer } from "../types";
+
+// transforms/ is a sibling when built in in dist/
+export const transformerDirectory =
+ process.env.NODE_ENV === "test"
+ ? path.join(__dirname, "../transforms")
+ : path.join(__dirname, "./transforms");
+
+export default function loadTransformers(): Array<Transformer> {
+ const transformerFiles = fs.readdirSync(transformerDirectory);
+ return transformerFiles
+ .map((transformerFilename) => {
+ const transformerPath = path.join(
+ transformerDirectory,
+ transformerFilename
+ );
+ try {
+ return require(transformerPath).default;
+ } catch (e) {
+ // we ignore this error because it's likely that the file is not a transformer (README, etc)
+ return undefined;
+ }
+ })
+ .filter(Boolean);
+}