Add a validation for non-existent node-id
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- figma, typescript
- Domain
- tooling
Research direction
Start by reading the publish command’s validation and upload flow to find where linked Figma node IDs are handled; the issue does not name specific files or tests. Check how the command currently reports validation and upload results, then verify the expected behavior for a node ID that no longer resolves. Done means publishing reports the unresolved link as an error or warning, as proposed.
Written by the indexing model from the issue text.
Description
When a component is removed in Figma or moved to another file, the Code Connect link in our codebase becomes stale.
Currently, the publish command still succeeds without errors, even though the linked node-id no longer exists in Figma.
Example CLI output
npx @figma/code-connect connect publish --dir .
No config file found in ., proceeding with default options
Using "react" parser as package.json containing a "react" dependency was found in /Users/xxx/WebstormProjects/xxx. If this is incorrect, please check you are running Code Connect from your project root, or add a `parser` key to your config file. See https://github.com/figma/code-connect for more information.
Validating Code Connect files...
All Code Connect files are valid (9394ms)
Uploading to Figma...
Successfully uploaded to Figma, for Storybook:
-> Icon https://www.figma.com/design/xxx/xxx?node-id=xxx&m=dev
-> Button https://www.figma.com/design/xxx/xxx?node-id=xxx&m=dev
Done.
For context, When I open the "Icon" link, it opens the file on the first page and does not select any node, as it does not exist anymore. I would expect an error that the Icon could not be published.
Proposed change:
The publish script should fail (non-zero exit code) or at least emit an error/warning when any linked Figma node cannot be resolved.
- Dominant language
- TypeScript
- Stars
- 1.6k
- Forks
- 126
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from figma/code-connect
-
normalizePropName strips `#` characters from Figma property names instead of only the `#id` suffixOpen
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
figma/code-connect#419 ·
-
feature request
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
figma/code-connect#403 ·
-
feature request
Difficulty 5/5 Over a week Newbie friendliness 38/100
figma/code-connect#414 ·
-
feature request
Difficulty 4/5 3-5 days Newbie friendliness 48/100
figma/code-connect#413 · 1 comment ·
-
feature request
Difficulty 4/5 3-5 days Newbie friendliness 54/100
figma/code-connect#412 · 1 comment ·
All issues in figma/code-connect
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
jeanibarz/knowledge-base-mcp-server#1268 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Koenkk/zigbee-herdsman-converters#13820 ·
Maintainers usually reply within 2 days
-
A live recovery copy treats a large whole number and text with the same digits as the same valueOpenbug sharing & sync
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Maintainers usually reply within 1 day
-
[prefer-expect-resolves] autofix leaves a stray ")" when the awaited expression is parenthesizedOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
jest-community/eslint-plugin-jest#2052 ·