diff options
Diffstat (limited to 'packages/bun-macro-relay/bun-macro-relay.tsx')
-rw-r--r-- | packages/bun-macro-relay/bun-macro-relay.tsx | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/packages/bun-macro-relay/bun-macro-relay.tsx b/packages/bun-macro-relay/bun-macro-relay.tsx index 018f8f7f5..88285a0c3 100644 --- a/packages/bun-macro-relay/bun-macro-relay.tsx +++ b/packages/bun-macro-relay/bun-macro-relay.tsx @@ -5,17 +5,29 @@ import { parse, print } from "graphql"; // 2. From the parsed GraphQL query, get the AST definition. // 3. From the AST definition, inject an import to that file inside the artifact directory // 4. MD5 the printed source text -// 5. At runtime, if md5 !== import.md5, then warn the user that the query has changed +// 5. (TODO) At runtime, if md5 !== import.md5, then warn the user that the query has changed // but the file hasn't been updated so it must be reloaded. // 6. Replace the TemplateLiteral with the default identifier from the injected import -let artifactDirectory: string = - process?.env?.BUN_MACRO_RELAY_ARTIFACT_DIRECTORY ?? - process?.env?.RELAY_ARTIFACT_DIRECTORY ?? - `__generated__`; +let artifactDirectory: string = `__generated__`; -artifactDirectory = artifactDirectory.startsWith("/") - ? artifactDirectory - : Bun.cwd + artifactDirectory; +if (process.env.RELAY_ARTIFACT_DIRECTORY) { + artifactDirectory = process.env.RELAY_ARTIFACT_DIRECTORY; +} + +if (process.env.BUN_MACRO_RELAY_ARTIFACT_DIRECTORY) { + artifactDirectory = process.env.BUN_MACRO_RELAY_ARTIFACT_DIRECTORY; +} + +if (!artifactDirectory.startsWith("/")) { + while (artifactDirectory.endsWith("/")) { + artifactDirectory = artifactDirectory.substring( + 0, + artifactDirectory.length - 1 + ); + } + + artifactDirectory = Bun.cwd + artifactDirectory; +} export function graphql(node) { let query; @@ -57,20 +69,14 @@ export function graphql(node) { const importStmt = ( <import default={definitionName} - path={`${artifactDirectory}/${definitionName}`} + path={`${artifactDirectory}/${definitionName}.graphql`} /> ); - try { - const ret = ( - <> - <inject>{importStmt}</inject> - <id to={importStmt.namespace[definitionName]} pure /> - </> - ); - return ret; - } catch (exception) { - console.error(exception); - } - return null; + return ( + <> + <inject>{importStmt}</inject> + <id to={importStmt.namespace[definitionName]} pure /> + </> + ); } |