@figma/code-connect 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +20 -14
  2. package/dist/commands/connect.js +15 -15
  3. package/dist/commands/connect.js.map +1 -1
  4. package/dist/common/api.d.ts +6 -0
  5. package/dist/common/api.d.ts.map +1 -1
  6. package/dist/common/figma_connect.d.ts +1 -1
  7. package/dist/common/figma_connect.d.ts.map +1 -1
  8. package/dist/common/intrinsics.d.ts.map +1 -1
  9. package/dist/common/intrinsics.js +3 -1
  10. package/dist/common/intrinsics.js.map +1 -1
  11. package/dist/common/parser.d.ts +7 -7
  12. package/dist/common/parser.d.ts.map +1 -1
  13. package/dist/common/parser.js +88 -42
  14. package/dist/common/parser.js.map +1 -1
  15. package/dist/common/parser_template_helpers.d.ts.map +1 -1
  16. package/dist/common/parser_template_helpers.js +6 -1
  17. package/dist/common/parser_template_helpers.js.map +1 -1
  18. package/dist/common/project.d.ts +26 -21
  19. package/dist/common/project.d.ts.map +1 -1
  20. package/dist/common/project.js +10 -2
  21. package/dist/common/project.js.map +1 -1
  22. package/dist/connect/create.d.ts +1 -1
  23. package/dist/connect/create.d.ts.map +1 -1
  24. package/dist/connect/create.js +6 -5
  25. package/dist/connect/create.js.map +1 -1
  26. package/dist/connect/helpers.d.ts.map +1 -1
  27. package/dist/connect/helpers.js +11 -6
  28. package/dist/connect/helpers.js.map +1 -1
  29. package/dist/connect/upload.d.ts +2 -2
  30. package/dist/connect/upload.d.ts.map +1 -1
  31. package/dist/connect/upload.js +2 -2
  32. package/dist/connect/upload.js.map +1 -1
  33. package/dist/connect/validation.d.ts +2 -2
  34. package/dist/connect/validation.d.ts.map +1 -1
  35. package/dist/connect/validation.js +3 -3
  36. package/dist/connect/validation.js.map +1 -1
  37. package/dist/storybook/convert.d.ts +4 -4
  38. package/dist/storybook/convert.d.ts.map +1 -1
  39. package/dist/storybook/convert.js +11 -11
  40. package/dist/storybook/convert.js.map +1 -1
  41. package/package.json +4 -2
package/README.md CHANGED
@@ -14,20 +14,20 @@ npm install @figma/code-connect
14
14
 
15
15
  ## Basic setup
16
16
 
17
- To connect your first component go to Dev Mode in Figma and right-click on the component you want to connect, then choose `Copy link to selection` from the menu. Make sure you are copying the link to a main component and not an instance of the component. The main component will typically be located in a centralized design system library file. Using this link, run `figma connect create`.
17
+ To connect your first component go to Dev Mode in Figma and right-click on the component you want to connect, then choose `Copy link to selection` from the menu. Make sure you are copying the link to a main component and not an instance of the component. The main component will typically be located in a centralized design system library file. Using this link, run `figma connect create`. Note that depending on what terminal software you're using, you might need to wrap the URL in quotes.
18
18
 
19
19
  ```sh
20
- npx figma connect create https://... --token <auth token>
20
+ npx figma connect create "https://..." --token <auth token>
21
21
  ```
22
22
 
23
23
  This will create a Code Connect file with some basic scaffolding for the component you want to connect. By default this file will be called `<component-name>.figma.tsx` based on the name of the component in Figma. However, you may rename this file as you see fit. The scaffolding that is generated is based on the interface of the component in Figma. Depending on how closely this matches your code component you'll need to make some edits to this file before you publish it.
24
24
 
25
- Some CLI commands, like `create`, require a valid [authentication token](https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens) with write permission for the Code Connect scope. You can either pass this via the `--token` flag, or set the `FIGMA_ACCESS_TOKEN` environment variable (the Figma CLI reads this from a `.env` file in the same folder, if it exists).
25
+ Some CLI commands, like `create`, require a valid [authentication token](https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens) with write permission for the Code Connect scope. You can either pass this via the `--token` flag, or set the `FIGMA_ACCESS_TOKEN` environment variable. The Figma CLI reads this from a `.env` file in the same folder, if it exists.
26
26
 
27
27
  To keep things simple, we're going to start by replacing the contents of the generated file with the most basic Code Connect configuration possible to make sure everything is set up and working as expected. Replace the contents of the file with the following, replacing the `Button` reference with a reference to whatever component you are trying to connect. The object called by `figma.connect` is your Code Connect doc.
28
28
 
29
29
  ```tsx
30
- import * as figma from '@figma/code-connect'
30
+ import figma from '@figma/code-connect'
31
31
  import { Button } from 'src/components'
32
32
 
33
33
  figma.connect(Button, 'https://...', {
@@ -109,14 +109,14 @@ In addition to the [general configuration](../README.md) for the CLI there is Re
109
109
  "exclude": ["test/**", "docs/**", "build/**"],
110
110
 
111
111
  "react": {
112
- importPaths: {
112
+ "importPaths": {
113
113
  "src/components/*": "@ui/components"
114
114
  },
115
115
 
116
- paths: {
116
+ "paths": {
117
117
  "@ui/components/*": ["src/components/*"]
118
- },
119
- },
118
+ }
119
+ }
120
120
  }
121
121
  }
122
122
  ```
@@ -138,9 +138,15 @@ You can use `importPaths` by specifying where `Button` lives in your repo and ma
138
138
  consider the full absolute path of the source file `Button.tsx`.
139
139
 
140
140
  ```
141
- importPaths: {
142
- "src/components/*": "@ui/components"
143
- },
141
+ {
142
+ "codeConnect": {
143
+ "react": {
144
+ "importPaths": {
145
+ "src/components/*": "@ui/components"
146
+ }
147
+ }
148
+ }
149
+ }
144
150
  ```
145
151
 
146
152
  Which will end up changing your connected code snippet in Figma to
@@ -162,7 +168,7 @@ To ensure the connected code snippet accurately reflects the design, we need to
162
168
  Here is a simple example for a button with a `label`, `disabled`, and `type` property.
163
169
 
164
170
  ```tsx
165
- import * as figma from '@figma/code-connect'
171
+ import figma from '@figma/code-connect'
166
172
 
167
173
  figma.connect(Button, 'https://...', {
168
174
  props: {
@@ -186,7 +192,7 @@ figma.connect(Button, 'https://...', {
186
192
  And this is how we would achieve the same thing using the Storybook integration. Notice how this works well with existing `args` configuration you may already be using in Storybook.
187
193
 
188
194
  ```tsx
189
- import * as figma from '@figma/code-connect'
195
+ import figma from "@figma/code-connect"
190
196
 
191
197
  export default {
192
198
  component: Button,
@@ -436,7 +442,7 @@ jobs:
436
442
  By default Code Connect creates a new file which lives alongside the components you want to connect to Figma. However, Code Connect may also be co-located with the component it is connecting in code. To do this, simply move the contents of the `<component-name>.figma.tsx` file into your component definition file.
437
443
 
438
444
  ```tsx
439
- import * as figma from '@figma/code-connect'
445
+ import figma from "@figma/code-connect"
440
446
 
441
447
  interface ButtonProps { ... }
442
448
  export function Button(props: ButtonProps) { ... }
@@ -53,8 +53,8 @@ function setupHandler(cmd) {
53
53
  logging_1.logger.setLogLevel(logging_1.LogLevel.Debug);
54
54
  }
55
55
  }
56
- async function getFigmadocs(dir, cmd, projectInfo) {
57
- const figmadocs = [];
56
+ async function getCodeConnectObjects(dir, cmd, projectInfo) {
57
+ const codeConnectObjects = [];
58
58
  const { files, remoteUrl, config, tsProgram } = projectInfo;
59
59
  const figmaNodeToFile = new Map();
60
60
  for (const file of files.filter((f) => (0, parser_1.isFigmaConnectFile)(tsProgram, f))) {
@@ -63,7 +63,7 @@ async function getFigmadocs(dir, cmd, projectInfo) {
63
63
  for (const doc of docs) {
64
64
  figmaNodeToFile.set(doc.figmaNode, file);
65
65
  }
66
- figmadocs.push(...docs);
66
+ codeConnectObjects.push(...docs);
67
67
  logging_1.logger.info((0, logging_1.success)(file));
68
68
  }
69
69
  catch (e) {
@@ -86,7 +86,7 @@ async function getFigmadocs(dir, cmd, projectInfo) {
86
86
  }
87
87
  }
88
88
  }
89
- return figmadocs;
89
+ return codeConnectObjects;
90
90
  }
91
91
  async function handlePublish(cmd) {
92
92
  setupHandler(cmd);
@@ -95,11 +95,11 @@ async function handlePublish(cmd) {
95
95
  if (cmd.dryRun) {
96
96
  logging_1.logger.info(`Files that would be published:`);
97
97
  }
98
- const figmadocs = await getFigmadocs(dir, cmd, projectInfo);
99
- const storybookFigmadocs = await (0, convert_1.convertStorybookFiles)({
98
+ const codeConnectObjects = await getCodeConnectObjects(dir, cmd, projectInfo);
99
+ const storybookCodeConnectObjects = await (0, convert_1.convertStorybookFiles)({
100
100
  projectInfo,
101
101
  });
102
- const allCodeConnectFiles = figmadocs.concat(storybookFigmadocs);
102
+ const allCodeConnectFiles = codeConnectObjects.concat(storybookCodeConnectObjects);
103
103
  if (allCodeConnectFiles.length === 0) {
104
104
  logging_1.logger.warn(`No Code Connect files found in ${dir} - Make sure you have configured \`include\` and \`exclude\` in your figma.config.json file correctly, or that you are running in a directory that contains Code Connect files.`);
105
105
  process.exit(0);
@@ -146,11 +146,11 @@ async function handleUnpublish(cmd) {
146
146
  }
147
147
  else {
148
148
  const projectInfo = (0, project_1.getProjectInfo)(dir, cmd.config);
149
- const figmadocs = await getFigmadocs(dir, cmd, projectInfo);
150
- const storybookFigmadocs = await (0, convert_1.convertStorybookFiles)({
149
+ const codeConnectObjects = await getCodeConnectObjects(dir, cmd, projectInfo);
150
+ const storybookCodeConnectObjects = await (0, convert_1.convertStorybookFiles)({
151
151
  projectInfo,
152
152
  });
153
- const allCodeConnectFiles = figmadocs.concat(storybookFigmadocs);
153
+ const allCodeConnectFiles = codeConnectObjects.concat(storybookCodeConnectObjects);
154
154
  nodesToDeleteRelevantInfo = allCodeConnectFiles.map((doc) => ({
155
155
  figmaNode: doc.figmaNode,
156
156
  label: doc.label,
@@ -174,17 +174,17 @@ async function handleParse(cmd) {
174
174
  }
175
175
  let dir = cmd.dir ?? process.cwd();
176
176
  const projectInfo = (0, project_1.getProjectInfo)(dir, cmd.config);
177
- const figmadocs = await getFigmadocs(dir, cmd, projectInfo);
178
- const storybookFigmadocs = await (0, convert_1.convertStorybookFiles)({
177
+ const codeConnectObjects = await getCodeConnectObjects(dir, cmd, projectInfo);
178
+ const storybookCodeConnectObjects = await (0, convert_1.convertStorybookFiles)({
179
179
  projectInfo,
180
180
  });
181
- const allCodeConnectFiles = figmadocs.concat(storybookFigmadocs);
181
+ const allCodeConnectFiles = codeConnectObjects.concat(storybookCodeConnectObjects);
182
182
  if (cmd.dryRun) {
183
183
  logging_1.logger.info(`Dry run complete`);
184
184
  process.exit(0);
185
185
  }
186
186
  if (cmd.outfile) {
187
- fs_1.default.writeFileSync(cmd.outfile, JSON.stringify(figmadocs, null, 2));
187
+ fs_1.default.writeFileSync(cmd.outfile, JSON.stringify(codeConnectObjects, null, 2));
188
188
  logging_1.logger.info(`Wrote Code Connect JSON to ${(0, logging_1.highlight)(cmd.outfile)}`);
189
189
  }
190
190
  else {
@@ -202,7 +202,7 @@ function handleCreate(nodeUrl, cmd) {
202
202
  logging_1.logger.error(`Couldn't find a Figma access token. Please provide one with \`--token <access_token>\` or set the FIGMA_ACCESS_TOKEN environment variable`);
203
203
  process.exit(1);
204
204
  }
205
- return (0, create_1.createFigmadocFromUrl)({
205
+ return (0, create_1.createCodeConnectFromUrl)({
206
206
  accessToken,
207
207
  // We remove \s to allow users to paste URLs inside quotes - the terminal
208
208
  // paste will add backslashes, which the quotes preserve, but expected user
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
@@ -138,6 +138,12 @@ export interface FigmaConnectMeta<T = {}, ExtraExampleT = never> {
138
138
  * @returns
139
139
  */
140
140
  example?: ((props: T) => React.Component | JSX.Element) | ExtraExampleT;
141
+ /**
142
+ * A list of import statements that will render in the Code Snippet in Figma.
143
+ * This overrides the auto-generated imports for the component. When this is specified,
144
+ * the `importPaths` option in the config file is also ignored.
145
+ */
146
+ imports?: string[];
141
147
  /**
142
148
  * A list of links that will display in Figma along with the examples
143
149
  */
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/common/api.ts"],"names":[],"mappings":";AAAA,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAEvF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;IAEvC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,OAAO,EAC5E,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAEvC;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,OAAO,EACzE,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;IAE7B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;IAErC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;IAE5C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAA;CACrD;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAEnC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CACzB,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAID,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,EAAE,EAAE,aAAa,GAAG,KAAK;IAC7D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAA;IAEnD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,CAAC,CAAA;IAET;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,aAAa,CAAA;IAEvE;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC3B"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/common/api.ts"],"names":[],"mappings":";AAAA,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAEvF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;IAEvC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,OAAO,EAC5E,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAEvC;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,OAAO,EACzE,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;IAE7B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;IAErC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;IAE5C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAA;CACrD;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAEnC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CACzB,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAID,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,EAAE,EAAE,aAAa,GAAG,KAAK;IAC7D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAA;IAEnD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,CAAC,CAAA;IAET;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,aAAa,CAAA;IAEvE;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC3B"}
@@ -1,6 +1,6 @@
1
1
  import { FigmaConnectLink } from './api';
2
2
  import { Intrinsic } from './intrinsics';
3
- export interface FigmaConnectJSON {
3
+ export interface CodeConnectJSON {
4
4
  figmaNode: string;
5
5
  component: string;
6
6
  variant?: Record<string, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"figma_connect.d.ts","sourceRoot":"","sources":["../../src/common/figma_connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;QAC5C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC1B,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF"}
1
+ {"version":3,"file":"figma_connect.d.ts","sourceRoot":"","sources":["../../src/common/figma_connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;QAC5C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC1B,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../../src/common/intrinsics.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAiB,aAAa,EAAe,MAAM,UAAU,CAAA;AAMpE,eAAO,MAAM,UAAU,UAAU,CAAA;AACjC,eAAO,MAAM,kBAAkB,kBAA0B,CAAA;AAEzD,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,EAAE,CAAA;CACT;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS,CAAA;AAE9F,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,IAAI,EAAE,aAAa,CAAC,OAAO,CAAA;IAC3B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,gBAAgB,CAAC,CAAA;KAC1D,CAAA;CACF;AAED,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,IAAI,EAAE,aAAa,CAAC,IAAI,CAAA;IACxB,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;KAC/C,CAAA;CACF;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,IAAI,EAAE,aAAa,CAAC,MAAM,CAAA;IAC1B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAA;IAC5B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAA;IAC5B,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;CACF;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,aAAa,CAAA;AA6K9F;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,GAAG,SAAS,CAW9F;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAmB3F;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,GAAG,MAAM,CA+BnE"}
1
+ {"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../../src/common/intrinsics.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAiB,aAAa,EAAe,MAAM,UAAU,CAAA;AAMpE,eAAO,MAAM,UAAU,UAAU,CAAA;AACjC,eAAO,MAAM,kBAAkB,kBAA0B,CAAA;AAEzD,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,EAAE,CAAA;CACT;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS,CAAA;AAE9F,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,IAAI,EAAE,aAAa,CAAC,OAAO,CAAA;IAC3B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,gBAAgB,CAAC,CAAA;KAC1D,CAAA;CACF;AAED,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,IAAI,EAAE,aAAa,CAAC,IAAI,CAAA;IACxB,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;KAC/C,CAAA;CACF;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,IAAI,EAAE,aAAa,CAAC,MAAM,CAAA;IAC1B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAA;IAC5B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAA;IAC5B,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;CACF;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,aAAa,CAAA;AA+K9F;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,GAAG,SAAS,CAW9F;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAmB3F;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,GAAG,MAAM,CA+BnE"}
@@ -53,7 +53,9 @@ const Intrinsics = {};
53
53
  function makeIntrinsic(intrinsicName, obj) {
54
54
  const name = `${exports.API_PREFIX}.${intrinsicName}`;
55
55
  Intrinsics[name] = {
56
- match: (exp) => ts.isCallExpression(exp) && exp.getText().includes(name),
56
+ match: (exp) => {
57
+ return ts.isCallExpression(exp) && exp.getText().startsWith(name);
58
+ },
57
59
  ...obj(name),
58
60
  };
59
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"intrinsics.js","sourceRoot":"","sources":["../../src/common/intrinsics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intrinsics.js","sourceRoot":"","sources":["../../src/common/intrinsics.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import ts from 'typescript';
2
- import { FigmaConnectConfig } from './project';
2
+ import { CodeConnectConfig } from './project';
3
3
  import { Intrinsic } from './intrinsics';
4
4
  interface ParserErrorContext {
5
5
  sourceFile: ts.SourceFile;
@@ -18,10 +18,10 @@ export declare class InternalError extends ParserError {
18
18
  export interface ParserContext {
19
19
  checker: ts.TypeChecker;
20
20
  sourceFile: ts.SourceFile;
21
- config: FigmaConnectConfig | undefined;
21
+ config: CodeConnectConfig | undefined;
22
22
  }
23
23
  /**
24
- * Parsers the `props` field of a `Figma.connect()` call, returning a mapping of
24
+ * Parsers the `props` field of a `figma.connect()` call, returning a mapping of
25
25
  * prop names to their respective intrinsic types
26
26
  *
27
27
  * @param objectLiteral An object literal expression
@@ -32,7 +32,7 @@ export declare function parsePropsObject(objectLiteral: ts.ObjectLiteralExpressi
32
32
  export type PropMappings = Record<string, Intrinsic>;
33
33
  /**
34
34
  * Extract metadata about the referenced React component. Used by both the
35
- * Figmadoc and Storybook commands.
35
+ * Code Connect and Storybook commands.
36
36
  *
37
37
  * @param parserContext Parser context
38
38
  * @param componentSymbol The ts.Symbol from the metadata referencing the
@@ -46,7 +46,7 @@ export declare function parseComponentMetadata(node: ts.PropertyAccessExpression
46
46
  component: string;
47
47
  }>;
48
48
  /**
49
- * Checks if a file contains figmadoc by looking for the `Figma.connect()` function call
49
+ * Checks if a file contains Code Connect by looking for the `figma.connect()` function call
50
50
  *
51
51
  * @param program
52
52
  * @param file
@@ -54,7 +54,7 @@ export declare function parseComponentMetadata(node: ts.PropertyAccessExpression
54
54
  */
55
55
  export declare function isFigmaConnectFile(program: ts.Program, file: string): boolean;
56
56
  /**
57
- * Parses the render function passed to `Figma.connect()`, extracting the code and
57
+ * Parses the render function passed to `figma.connect()`, extracting the code and
58
58
  * any import statements matching the JSX elements used in the function body
59
59
  *
60
60
  * @param exp A function or arrow function expression
@@ -72,6 +72,6 @@ export declare function parseRenderFunction(exp: ts.ArrowFunction | ts.FunctionE
72
72
  nestable: boolean;
73
73
  };
74
74
  export declare function getDefaultTemplate(componentMetadata: Awaited<ReturnType<typeof parseComponentMetadata>>): string;
75
- export declare function parse(program: ts.Program, file: string, repoUrl?: string, config?: FigmaConnectConfig, debug?: boolean): Promise<any[]>;
75
+ export declare function parse(program: ts.Program, file: string, repoUrl?: string, config?: CodeConnectConfig, debug?: boolean): Promise<any[]>;
76
76
  export {};
77
77
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/common/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,kBAAkB,EAAuC,MAAM,WAAW,CAAA;AAYnF,OAAO,EAEL,SAAS,EAKV,MAAM,cAAc,CAAA;AAKrB,UAAU,kBAAkB;IAC1B,UAAU,EAAE,EAAE,CAAC,UAAU,CAAA;IACzB,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAA;CAC1B;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,kBAAkB,EAAE,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAA;IAC9C,cAAc,EAAE,MAAM,CAAA;gBAEV,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAUzD,QAAQ;IAQR,aAAa;CAGd;AAED,qBAAa,aAAc,SAAQ,WAAW;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,EAAE,CAAC,WAAW,CAAA;IACvB,UAAU,EAAE,EAAE,CAAC,UAAU,CAAA;IACzB,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAA;CACvC;AAwID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,EAAE,CAAC,uBAAuB,EACzC,aAAa,EAAE,aAAa,GAC3B,YAAY,CAOd;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAEpD;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,EACjE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,aAAa;;;;GAwGvC;AAeD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,WAmBnE;AAgED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,mBAAmB,EACtE,aAAa,EAAE,aAAa,EAC5B,YAAY,CAAC,EAAE,YAAY;;;;;;;EAyN5B;AAwJD,wBAAgB,kBAAkB,CAChC,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,UAItE;AA4FD,wBAAsB,KAAK,CACzB,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,GAAG,EAAE,CAAC,CAkChB"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/common/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,iBAAiB,EAAuC,MAAM,WAAW,CAAA;AAalF,OAAO,EAAsB,SAAS,EAAqC,MAAM,cAAc,CAAA;AAK/F,UAAU,kBAAkB;IAC1B,UAAU,EAAE,EAAE,CAAC,UAAU,CAAA;IACzB,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAA;CAC1B;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,kBAAkB,EAAE,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAA;IAC9C,cAAc,EAAE,MAAM,CAAA;gBAEV,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAUzD,QAAQ;IAQR,aAAa;CAGd;AAED,qBAAa,aAAc,SAAQ,WAAW;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,EAAE,CAAC,WAAW,CAAA;IACvB,UAAU,EAAE,EAAE,CAAC,UAAU,CAAA;IACzB,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAA;CACtC;AAwID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,EAAE,CAAC,uBAAuB,EACzC,aAAa,EAAE,aAAa,GAC3B,YAAY,CAOd;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAEpD;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,EACjE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,aAAa;;;;GAwGvC;AAeD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,WAmBnE;AAkFD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,mBAAmB,EACtE,aAAa,EAAE,aAAa,EAC5B,YAAY,CAAC,EAAE,YAAY;;;;;;;EAwO5B;AAiKD,wBAAgB,kBAAkB,CAChC,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,UAItE;AAoGD,wBAAsB,KAAK,CACzB,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,GAAG,EAAE,CAAC,CAkChB"}
@@ -153,7 +153,7 @@ function getImportsForIdentifiers({ sourceFile }, _identifiers) {
153
153
  return imports;
154
154
  }
155
155
  /**
156
- * Parsers the `props` field of a `Figma.connect()` call, returning a mapping of
156
+ * Parsers the `props` field of a `figma.connect()` call, returning a mapping of
157
157
  * prop names to their respective intrinsic types
158
158
  *
159
159
  * @param objectLiteral An object literal expression
@@ -171,7 +171,7 @@ function parsePropsObject(objectLiteral, parserContext) {
171
171
  exports.parsePropsObject = parsePropsObject;
172
172
  /**
173
173
  * Extract metadata about the referenced React component. Used by both the
174
- * Figmadoc and Storybook commands.
174
+ * Code Connect and Storybook commands.
175
175
  *
176
176
  * @param parserContext Parser context
177
177
  * @param componentSymbol The ts.Symbol from the metadata referencing the
@@ -263,24 +263,24 @@ async function parseComponentMetadata(node, { checker, sourceFile }) {
263
263
  }
264
264
  exports.parseComponentMetadata = parseComponentMetadata;
265
265
  /**
266
- * Checks if an AST node is a `Figma.connect()` call
266
+ * Checks if an AST node is a `figma.connect()` call
267
267
  *
268
268
  * @param node AST node
269
269
  * @param sourceFile Source file
270
- * @returns True if the node is a `Figma.connect()` call
270
+ * @returns True if the node is a `figma.connect()` call
271
271
  */
272
272
  function isFigmaConnectCall(node, sourceFile) {
273
273
  return (typescript_1.default.isCallExpression(node) && node.expression.getText(sourceFile).includes(intrinsics_1.FIGMA_CONNECT_CALL));
274
274
  }
275
275
  /**
276
- * Checks if a file contains figmadoc by looking for the `Figma.connect()` function call
276
+ * Checks if a file contains Code Connect by looking for the `figma.connect()` function call
277
277
  *
278
278
  * @param program
279
279
  * @param file
280
280
  * @returns
281
281
  */
282
282
  function isFigmaConnectFile(program, file) {
283
- // We don't support Figmadoc in JSX and this throws an error if we let it proceed
283
+ // We don't support Code Connect in JSX and this throws an error if we let it proceed
284
284
  if (!file.endsWith('.tsx')) {
285
285
  return false;
286
286
  }
@@ -297,7 +297,7 @@ function isFigmaConnectFile(program, file) {
297
297
  }
298
298
  exports.isFigmaConnectFile = isFigmaConnectFile;
299
299
  /**
300
- * Parses the `links` field of a `Figma.connect()` call
300
+ * Parses the `links` field of a `figma.connect()` call
301
301
  *
302
302
  * @param linksArray an ArrayLiteralExpression
303
303
  * @param parserContext Parser context
@@ -345,7 +345,23 @@ function parseVariant(variantMap, sourceFile, checker) {
345
345
  });
346
346
  }
347
347
  /**
348
- * Parses the render function passed to `Figma.connect()`, extracting the code and
348
+ * Parses the `imports` field of a `figma.connect()` call
349
+ *
350
+ * @param importsArray an ArrayLiteralExpression
351
+ * @param parserContext Parser context
352
+ * @returns An array of link objects
353
+ */
354
+ function parseImports(importsArray, parserContext) {
355
+ const { sourceFile } = parserContext;
356
+ const imports = [];
357
+ for (const element of importsArray.elements) {
358
+ (0, compiler_1.assertIsStringLiteral)(element, sourceFile, `'imports' must be an array literal with strings`);
359
+ imports.push((0, compiler_1.stripQuotes)(element));
360
+ }
361
+ return imports;
362
+ }
363
+ /**
364
+ * Parses the render function passed to `figma.connect()`, extracting the code and
349
365
  * any import statements matching the JSX elements used in the function body
350
366
  *
351
367
  * @param exp A function or arrow function expression
@@ -423,9 +439,22 @@ function parseRenderFunction(exp, parserContext, propMappings) {
423
439
  // <Button prop1={__PROP__("prop1")} prop2={__PROP__("prop2")} />.
424
440
  if (typescript_1.default.isJsxSpreadAttribute(node) &&
425
441
  typescript_1.default.isIdentifier(node.expression) &&
426
- node.expression.getText() === propsParameter.name.getText()) {
442
+ // example: (props) => (...)
443
+ (node.expression.getText() === propsParameter.name.getText() ||
444
+ // example: ({ prop1, prop2 ...props }) => (...)
445
+ (typescript_1.default.isObjectBindingPattern(propsParameter.name) &&
446
+ propsParameter.name.elements.find((el) => el.dotDotDotToken && el.name.getText() === node.expression?.getText())))) {
447
+ // if we have an object binding pattern ({ prop1, prop2 ...props }),
448
+ // exclude the props that are already destructured (prop1, prop2)
449
+ const propsToExclude = typescript_1.default.isObjectBindingPattern(propsParameter.name)
450
+ ? propsParameter.name.elements
451
+ .filter((el) => !el.dotDotDotToken)
452
+ .map((el) => el.name.getText())
453
+ : [];
427
454
  const props = propMappings
428
- ? Object.keys(propMappings).map((prop) => {
455
+ ? Object.keys(propMappings)
456
+ .filter((prop) => !propsToExclude.includes(prop))
457
+ .map((prop) => {
429
458
  return typescript_1.default.factory.createJsxAttribute(typescript_1.default.factory.createIdentifier(prop), createPropPlaceholder(prop, node, true));
430
459
  })
431
460
  : [];
@@ -514,7 +543,7 @@ function parseRenderFunction(exp, parserContext, propMappings) {
514
543
  exports.parseRenderFunction = parseRenderFunction;
515
544
  /**
516
545
  * This wrapper function ensures that property names are type checked in case
517
- * we make changes to the `Figma.connect()` interface.
546
+ * we make changes to the `figma.connect()` interface.
518
547
  */
519
548
  function makeConfigPropertyParser({ key, predicate, errorMessage, }) {
520
549
  return (configArg, parserContext) => {
@@ -618,6 +647,14 @@ function makeArgParser() {
618
647
  links: [
619
648
  { name: 'Storybook', url: 'https://storybook.com' }
620
649
  ]
650
+ })\``,
651
+ }),
652
+ parseImports: makeConfigPropertyParser({
653
+ key: 'imports',
654
+ predicate: typescript_1.default.isArrayLiteralExpression,
655
+ errorMessage: `The 'imports' property must be an array literal. Example usage:
656
+ \`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
657
+ imports: ['import { Button } from "./Button"']
621
658
  })\``,
622
659
  }),
623
660
  };
@@ -629,7 +666,7 @@ function getDefaultTemplate(componentMetadata) {
629
666
  exports.getDefaultTemplate = getDefaultTemplate;
630
667
  async function parseDoc(node, parserContext, repoUrl) {
631
668
  const { checker, sourceFile, config } = parserContext;
632
- // Parse the arguments to the `Figma.connect()` call
669
+ // Parse the arguments to the `figma.connect()` call
633
670
  const args = makeArgParser();
634
671
  // The ones with ! are definitely defined because their parser fn has required: true,
635
672
  // but I couldn't work out how to model that in TypeScript
@@ -640,6 +677,7 @@ async function parseDoc(node, parserContext, repoUrl) {
640
677
  const exampleArg = configObjArg && args.parseExample(configObjArg, parserContext);
641
678
  const variantArg = configObjArg && args.parseVariant(configObjArg, parserContext);
642
679
  const linksArg = configObjArg && args.parseLinks(configObjArg, parserContext);
680
+ const importsArg = configObjArg && args.parseImports(configObjArg, parserContext);
643
681
  let figmaNode = (0, compiler_1.stripQuotes)(figmaNodeUrlArg);
644
682
  if (config?.documentUrlSubstitutions) {
645
683
  Object.entries(config.documentUrlSubstitutions).forEach(([from, to]) => {
@@ -651,34 +689,42 @@ async function parseDoc(node, parserContext, repoUrl) {
651
689
  const render = exampleArg ? parseRenderFunction(exampleArg, parserContext, props) : undefined;
652
690
  const variant = variantArg ? parseVariant(variantArg, sourceFile, checker) : undefined;
653
691
  const links = linksArg ? parseLinks(linksArg, parserContext) : undefined;
654
- // If no template function was provided, construct one and add the import
655
- // statement for the component
656
- let imports = render?.imports ?? getImportsForIdentifiers(parserContext, [metadata.component]);
657
- const template = render?.code ?? getDefaultTemplate(metadata);
658
- if (imports.length === 0) {
659
- // If no imports were found, it might mean that the component is not imported, or
660
- // that the `figma.connect` call is in the same file as the component. In the latter
661
- // case - we'll want to generate one
662
- const fileName = metadata.source.split('/').pop()?.split('.')[0];
663
- imports = [
664
- {
665
- statement: `import { ${metadata.component} } from './${fileName}'`,
666
- file: sourceFile.fileName,
667
- },
668
- ];
692
+ let resolvedImports;
693
+ if (importsArg) {
694
+ resolvedImports = parseImports(importsArg, parserContext);
669
695
  }
670
- const resolvedImports = imports.map((imp) => {
671
- if (config) {
672
- const resolvedPath = (0, project_1.resolveImportPath)(imp.file, config);
673
- if (resolvedPath) {
674
- return imp.statement.replace(/['"]([\.\/a-zA-Z0-9]*)['"]/, `'${resolvedPath}'`);
675
- }
696
+ else {
697
+ // Use auto-generated imports
698
+ // If no template function was provided, construct one and add the import
699
+ // statement for the component
700
+ let imports = render?.imports ?? getImportsForIdentifiers(parserContext, [metadata.component]);
701
+ if (imports.length === 0) {
702
+ // If no imports were found, it might mean that the component is not imported, or
703
+ // that the `figma.connect` call is in the same file as the component. In the latter
704
+ // case - we'll want to generate one
705
+ const fileName = metadata.source.split('/').pop()?.split('.')[0];
706
+ imports = [
707
+ {
708
+ statement: `import { ${metadata.component} } from './${fileName}'`,
709
+ file: sourceFile.fileName,
710
+ },
711
+ ];
712
+ }
713
+ resolvedImports =
714
+ imports.map((imp) => {
715
+ if (config) {
716
+ const resolvedPath = (0, project_1.resolveImportPath)(imp.file, config);
717
+ if (resolvedPath) {
718
+ return imp.statement.replace(/['"]([\.\/a-zA-Z0-9]*)['"]/, `'${resolvedPath}'`);
719
+ }
720
+ }
721
+ return imp.statement;
722
+ }) ?? [];
723
+ if (resolvedImports.length === 0) {
724
+ logging_1.logger.warn(`The import statement for ${metadata.component} could not be automatically resolved, make sure the component is imported (if not colocating) and that the path mappings are correct in your figma.config.json`);
676
725
  }
677
- return imp.statement;
678
- }) ?? [];
679
- if (resolvedImports.length === 0) {
680
- logging_1.logger.warn(`The import statement for ${metadata.component} could not be automatically resolved, make sure the component is imported (if not colocating) and that the path mappings are correct in your figma.config.json`);
681
726
  }
727
+ const template = render?.code ?? getDefaultTemplate(metadata);
682
728
  return {
683
729
  figmaNode,
684
730
  label: 'React',
@@ -712,25 +758,25 @@ async function parse(program, file, repoUrl, config, debug) {
712
758
  sourceFile,
713
759
  config,
714
760
  };
715
- const figmadocs = [];
761
+ const codeConnectObjects = [];
716
762
  const nodes = [parserContext.sourceFile];
717
763
  while (nodes.length > 0) {
718
764
  const node = nodes.shift();
719
765
  if (isFigmaConnectCall(node, parserContext.sourceFile)) {
720
766
  const doc = await parseDoc(node, parserContext, repoUrl);
721
767
  if (doc) {
722
- figmadocs.push(doc);
768
+ codeConnectObjects.push(doc);
723
769
  }
724
770
  }
725
771
  nodes.push(...node.getChildren(parserContext.sourceFile));
726
772
  }
727
- if (figmadocs.length === 0) {
728
- throw new ParserError(`Didn't find any calls to Figmadoc()`, {
773
+ if (codeConnectObjects.length === 0) {
774
+ throw new ParserError(`Didn't find any calls to figma.connect()`, {
729
775
  sourceFile: parserContext.sourceFile,
730
776
  node: parserContext.sourceFile,
731
777
  });
732
778
  }
733
- return figmadocs;
779
+ return codeConnectObjects;
734
780
  }
735
781
  exports.parse = parse;
736
782
  //# sourceMappingURL=parser.js.map