Skip to content

Commit 661fa9c

Browse files
authored
feat(sdks): add relay-compiler to vscode sdks (#5492)
**What's the problem this PR addresses?** <!-- Describe the rationale of your PR. --> <!-- Link all issues that it closes. (Closes/Resolves #xxxx.) --> `@yarnpkg/sdks` doesn't support [Relay GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=meta.relay). **How did you fix it?** <!-- A detailed description of your implementation. --> Adds `relay-compiler` support to `@yarnpkg/sdks`. **Checklist** <!--- Don't worry if you miss something, chores are automatically tested. --> <!--- This checklist exists to help you remember doing the chores when you submit a PR. --> <!--- Put an `x` in all the boxes that apply. --> - [x] I have read the [Contributing Guide](https://yarnpkg.com/advanced/contributing). <!-- See https://yarnpkg.com/advanced/contributing#preparing-your-pr-to-be-released for more details. --> <!-- Check with `yarn version check` and fix with `yarn version check -i` --> - [x] I have set the packages that need to be released for my changes to be effective. <!-- The "Testing chores" workflow validates that your PR follows our guidelines. --> <!-- If it doesn't pass, click on it to see details as to what your PR might be missing. --> - [x] I will check that all automated PR checks pass before the PR gets reviewed.
1 parent 0509f16 commit 661fa9c

File tree

5 files changed

+32
-0
lines changed

5 files changed

+32
-0
lines changed

.yarn/versions/e6809da7.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
releases:
2+
"@yarnpkg/sdks": minor

packages/docusaurus/docs/getting-started/editor-sdks.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import TOCInline from '@theme/TOCInline';
3030
| [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | [prettier](https://yarnpkg.com/package/prettier) |
3131
| [flow-for-vscode*](https://marketplace.visualstudio.com/items?itemName=flowtype.flow-for-vscode) | [flow-bin](https://flow.org/) |
3232
| [astro-vscode](https://marketplace.visualstudio.com/items?itemName=astro-build.astro-vscode) | [astro](https://astro.build/) |
33+
| [relay](https://marketplace.visualstudio.com/items?itemName=meta.relay) | [relay](https://relay.dev/)
3334

3435
> \* Flow is currently [incompatible with PnP](/features/pnp#incompatible).
3536

packages/yarnpkg-sdks/sources/generateSdk.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ export type SupportedSdk =
178178
| '@astrojs/language-server'
179179
| 'eslint'
180180
| 'prettier'
181+
| 'relay-compiler'
181182
| 'typescript-language-server'
182183
| 'typescript'
183184
| 'svelte-language-server'

packages/yarnpkg-sdks/sources/sdks/base.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@ export const generatePrettierBaseWrapper: GenerateBaseWrapper = async (pnpApi: P
3434
return wrapper;
3535
};
3636

37+
export const generateRelayCompilerBaseWrapper: GenerateBaseWrapper = async (pnpApi: PnpApi, target: PortablePath) => {
38+
const wrapper = new Wrapper(`relay-compiler` as PortablePath, {pnpApi, target});
39+
40+
await wrapper.writeManifest();
41+
42+
await wrapper.writeBinary(`cli.js` as PortablePath);
43+
44+
return wrapper;
45+
};
46+
3747
export const generateTypescriptLanguageServerBaseWrapper: GenerateBaseWrapper = async (pnpApi: PnpApi, target: PortablePath) => {
3848
const wrapper = new Wrapper(`typescript-language-server` as PortablePath, {pnpApi, target});
3949

@@ -291,6 +301,7 @@ export const BASE_SDKS: BaseSdks = [
291301
[`@astrojs/language-server`, generateAstroLanguageServerBaseWrapper],
292302
[`eslint`, generateEslintBaseWrapper],
293303
[`prettier`, generatePrettierBaseWrapper],
304+
[`relay-compiler`, generateRelayCompilerBaseWrapper],
294305
[`typescript-language-server`, generateTypescriptLanguageServerBaseWrapper],
295306
[`typescript`, generateTypescriptBaseWrapper],
296307
[`svelte-language-server`, generateSvelteLanguageServerBaseWrapper],

packages/yarnpkg-sdks/sources/sdks/vscode.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,22 @@ export const generatePrettierWrapper: GenerateIntegrationWrapper = async (pnpApi
7979
});
8080
};
8181

82+
export const generateRelayCompilerWrapper: GenerateIntegrationWrapper = async (pnpApi: PnpApi, target: PortablePath, wrapper: Wrapper) => {
83+
await addVSCodeWorkspaceConfiguration(pnpApi, VSCodeConfiguration.settings, {
84+
[`relay.pathToRelay`]: npath.fromPortablePath(
85+
wrapper.getProjectPathTo(
86+
`cli.js` as PortablePath,
87+
),
88+
),
89+
});
90+
91+
await addVSCodeWorkspaceConfiguration(pnpApi, VSCodeConfiguration.extensions, {
92+
[`recommendations`]: [
93+
`meta.relay`,
94+
],
95+
});
96+
};
97+
8298
export const generateTypescriptWrapper: GenerateIntegrationWrapper = async (pnpApi: PnpApi, target: PortablePath, wrapper: Wrapper) => {
8399
await addVSCodeWorkspaceConfiguration(pnpApi, VSCodeConfiguration.settings, {
84100
[`typescript.tsdk`]: npath.fromPortablePath(
@@ -129,6 +145,7 @@ export const VSCODE_SDKS: IntegrationSdks = [
129145
[`@astrojs/language-server`, generateAstroLanguageServerWrapper],
130146
[`eslint`, generateEslintWrapper],
131147
[`prettier`, generatePrettierWrapper],
148+
[`relay-compiler`, generateRelayCompilerWrapper],
132149
[`typescript-language-server`, null],
133150
[`typescript`, generateTypescriptWrapper],
134151
[`svelte-language-server`, generateSvelteLanguageServerWrapper],

0 commit comments

Comments
 (0)