Browse Source

Added codegen registrar

Andrew Bastin 4 years ago
parent
commit
54a48f9493
1 changed files with 22 additions and 0 deletions
  1. 22 0
      helpers/codegen/codegen.js

+ 22 - 0
helpers/codegen/codegen.js

@@ -0,0 +1,22 @@
+import { JSXHRCodegen } from "./generators/js-xhr"
+import { JSFetchCodegen } from "./generators/js-fetch"
+import { CurlCodegen } from "./generators/curl"
+
+/* Register code generators here.
+ * A code generator is defined as an object with the following structure.
+ *
+ * id: string
+ * name: string
+ * generator: (ctx) => string
+ *
+ */
+export const codegens = [JSXHRCodegen, JSFetchCodegen, CurlCodegen]
+
+export function generateCodeWithGenerator(codegenID, context) {
+  if (codegenID) {
+    const gen = codegens.find((e) => e.id === codegenID)
+    return gen ? gen.generator(context) : ""
+  }
+
+  return ""
+}