Skip to content

Commit 711c022

Browse files
authored
Merge pull request #2543 from hashicorp/pipelines-figma-api-updates
FlightIcon pipeline - FigmaApi updates
2 parents fb81eb5 + 81551fe commit 711c022

File tree

4 files changed

+90
-33
lines changed

4 files changed

+90
-33
lines changed

packages/flight-icons/package.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,13 @@
2727
"@figma-export/output-components-as-svg": "^4.7.0",
2828
"@figma-export/transform-svg-with-svgo": "^4.7.0",
2929
"@figma-export/types": "^4.7.0",
30+
"@figma/rest-api-spec": "^0.21.0",
3031
"@svgr/core": "^5.5.0",
3132
"@svgr/plugin-jsx": "^5.5.0",
3233
"@types/archiver": "^5.3.4",
3334
"@types/fs-extra": "^11.0.3",
3435
"@types/lodash": "^4.14.200",
35-
"@types/node": "^20.8.9",
36+
"@types/node": "^22.8.7",
3637
"@types/react": "^18.2.33",
3738
"@types/react-dom": "^18.2.14",
3839
"@types/svgo": "~1.3.6",
@@ -43,14 +44,14 @@
4344
"del": "^6.1.1",
4445
"dotenv": "^10.0.0",
4546
"eslint": "^8.57.0",
46-
"figma-api": "^1.11.0",
47+
"figma-api": "^2.0.1-beta",
4748
"fs-extra": "^11.1.1",
4849
"lodash": "^4.17.21",
4950
"mini-svg-data-uri": "^1.4.4",
5051
"prettier": "^3.3.2",
5152
"svgo": "~1.3.2",
5253
"svgstore": "^3.0.1",
5354
"ts-node": "^10.9.2",
54-
"typescript": "^5.3.3"
55+
"typescript": "^5.6.3"
5556
}
5657
}

packages/flight-icons/scripts/sync-parts/getAssetsMetadata.ts

+13-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import type { AssetCoreData, AssetsMetadata } from "../@types/AssetsMetadata";
77

8+
import { PublishedComponent, PublishedComponentSet } from '@figma/rest-api-spec';
9+
810
import { config } from '../config';
911

1012
import chalk from 'chalk';
@@ -27,13 +29,14 @@ export async function getAssetsMetadata(): Promise<AssetsMetadata> {
2729
});
2830

2931
// retrieve all the component_sets from the Figma file (later we'll use their names and descriptions for the icons)
30-
const componentSetsResponse = await api.getFileComponentSets(config.figmaFile.id);
32+
const componentSetsResponse = await api.getFileComponentSets({ file_key: config.figmaFile.id });
3133
const componentSetData: ComponentSetData = {};
3234
if (componentSetsResponse.meta && componentSetsResponse.meta.component_sets) {
33-
componentSetsResponse.meta.component_sets.forEach(component_set => {
35+
componentSetsResponse.meta.component_sets.forEach((component_set: PublishedComponentSet) => {
3436
// check that the component_set is inside the expected page/frame
3537
if (
3638
component_set.containing_frame &&
39+
component_set.containing_frame.name &&
3740
component_set.containing_frame.pageName === config.figmaFile.page &&
3841
!config.figmaFile.excludeFrames.includes(component_set.containing_frame.name)
3942
) {
@@ -47,12 +50,13 @@ export async function getAssetsMetadata(): Promise<AssetsMetadata> {
4750
console.log(chalk.magenta('ATTENTION:\nNo component sets ("icons") found in the Figma file, please check that your configuration file has the right values for "page" and "frame" names.'));
4851
}
4952

50-
const componentsResponse = await api.getFileComponents(config.figmaFile.id);
53+
const componentsResponse = await api.getFileComponents({ file_key: config.figmaFile.id });
5154
if (componentsResponse.meta && componentsResponse.meta.components) {
52-
componentsResponse.meta.components.forEach(component => {
55+
componentsResponse.meta.components.forEach((component: PublishedComponent) => {
5356
// check that the component is inside the expected page/frame
5457
if (
5558
component.containing_frame &&
59+
component.containing_frame.name &&
5660
component.containing_frame.pageName === config.figmaFile.page &&
5761
!config.figmaFile.excludeFrames.includes(component.containing_frame.name)
5862
) {
@@ -67,7 +71,12 @@ export async function getAssetsMetadata(): Promise<AssetsMetadata> {
6771
// by convention the category of an icon is the containing frame's name
6872
assetsMetadata[component.node_id].category = component.containing_frame.name;
6973
}
74+
// this (missing `containingStateGroup` property) is a known issue:
75+
// - https://forum.figma.com/t/missing-containingstategroup-parameter-in-documentation-for-frameinfo/2558
76+
// - https://github.com/figma/rest-api-spec/issues/29
77+
// @ts-ignore
7078
if (component.containing_frame.containingStateGroup) {
79+
// @ts-ignore
7180
const parentComponentSet = componentSetData[component.containing_frame.containingStateGroup.nodeId]
7281
if (parentComponentSet) {
7382
assetsMetadata[component.node_id].iconName = parentComponentSet.name;

packages/tokens/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"devDependencies": {
2525
"@types/fs-extra": "^11.0.3",
2626
"@types/lodash": "^4.14.200",
27-
"@types/node": "^20.8.9",
27+
"@types/node": "^22.8.7",
2828
"@types/tinycolor2": "^1.4.5",
2929
"@typescript-eslint/eslint-plugin": "^8.5.0",
3030
"@typescript-eslint/parser": "^8.5.0",
@@ -35,7 +35,7 @@
3535
"path": "^0.12.7",
3636
"style-dictionary": "^3.9.0",
3737
"tinycolor2": "^1.6.0",
38-
"ts-node": "^10.9.1",
39-
"typescript": "^5.3.3"
38+
"ts-node": "^10.9.2",
39+
"typescript": "^5.6.3"
4040
}
4141
}

yarn.lock

+70-23
Original file line numberDiff line numberDiff line change
@@ -3628,6 +3628,13 @@ __metadata:
36283628
languageName: node
36293629
linkType: hard
36303630

3631+
"@figma/rest-api-spec@npm:^0.21.0":
3632+
version: 0.21.0
3633+
resolution: "@figma/rest-api-spec@npm:0.21.0"
3634+
checksum: 10/8feee26a50272f22d03de2a284ce1bef3e1aaedc14606e5a8457aaf32773cb05a0a51870d4d157dabee8b16d469c16c8e90efda2685ae36213ac022c7f58760c
3635+
languageName: node
3636+
linkType: hard
3637+
36313638
"@floating-ui/core@npm:^1.0.0":
36323639
version: 1.6.0
36333640
resolution: "@floating-ui/core@npm:1.6.0"
@@ -4307,7 +4314,7 @@ __metadata:
43074314
dependencies:
43084315
"@types/fs-extra": "npm:^11.0.3"
43094316
"@types/lodash": "npm:^4.14.200"
4310-
"@types/node": "npm:^20.8.9"
4317+
"@types/node": "npm:^22.8.7"
43114318
"@types/tinycolor2": "npm:^1.4.5"
43124319
"@typescript-eslint/eslint-plugin": "npm:^8.5.0"
43134320
"@typescript-eslint/parser": "npm:^8.5.0"
@@ -4318,8 +4325,8 @@ __metadata:
43184325
path: "npm:^0.12.7"
43194326
style-dictionary: "npm:^3.9.0"
43204327
tinycolor2: "npm:^1.6.0"
4321-
ts-node: "npm:^10.9.1"
4322-
typescript: "npm:^5.3.3"
4328+
ts-node: "npm:^10.9.2"
4329+
typescript: "npm:^5.6.3"
43234330
languageName: unknown
43244331
linkType: soft
43254332

@@ -4386,12 +4393,13 @@ __metadata:
43864393
"@figma-export/output-components-as-svg": "npm:^4.7.0"
43874394
"@figma-export/transform-svg-with-svgo": "npm:^4.7.0"
43884395
"@figma-export/types": "npm:^4.7.0"
4396+
"@figma/rest-api-spec": "npm:^0.21.0"
43894397
"@svgr/core": "npm:^5.5.0"
43904398
"@svgr/plugin-jsx": "npm:^5.5.0"
43914399
"@types/archiver": "npm:^5.3.4"
43924400
"@types/fs-extra": "npm:^11.0.3"
43934401
"@types/lodash": "npm:^4.14.200"
4394-
"@types/node": "npm:^20.8.9"
4402+
"@types/node": "npm:^22.8.7"
43954403
"@types/react": "npm:^18.2.33"
43964404
"@types/react-dom": "npm:^18.2.14"
43974405
"@types/svgo": "npm:~1.3.6"
@@ -4402,15 +4410,15 @@ __metadata:
44024410
del: "npm:^6.1.1"
44034411
dotenv: "npm:^10.0.0"
44044412
eslint: "npm:^8.57.0"
4405-
figma-api: "npm:^1.11.0"
4413+
figma-api: "npm:^2.0.1-beta"
44064414
fs-extra: "npm:^11.1.1"
44074415
lodash: "npm:^4.17.21"
44084416
mini-svg-data-uri: "npm:^1.4.4"
44094417
prettier: "npm:^3.3.2"
44104418
svgo: "npm:~1.3.2"
44114419
svgstore: "npm:^3.0.1"
44124420
ts-node: "npm:^10.9.2"
4413-
typescript: "npm:^5.3.3"
4421+
typescript: "npm:^5.6.3"
44144422
languageName: unknown
44154423
linkType: soft
44164424

@@ -6198,7 +6206,7 @@ __metadata:
61986206
languageName: node
61996207
linkType: hard
62006208

6201-
"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:^20.8.9":
6209+
"@types/node@npm:*, @types/node@npm:>=10.0.0":
62026210
version: 20.10.4
62036211
resolution: "@types/node@npm:20.10.4"
62046212
dependencies:
@@ -6207,13 +6215,6 @@ __metadata:
62076215
languageName: node
62086216
linkType: hard
62096217

6210-
"@types/node@npm:12.0.2":
6211-
version: 12.0.2
6212-
resolution: "@types/node@npm:12.0.2"
6213-
checksum: 10/533bc925ae3a8df02c97cc9384af0e3f43430b5390c5114fe16c7187ff58547281006f49626b408d801e91927e0de7f55923e73a1da231c5ae86f43fc062087a
6214-
languageName: node
6215-
linkType: hard
6216-
62176218
"@types/node@npm:^12.7.1":
62186219
version: 12.20.55
62196220
resolution: "@types/node@npm:12.20.55"
@@ -6228,6 +6229,15 @@ __metadata:
62286229
languageName: node
62296230
linkType: hard
62306231

6232+
"@types/node@npm:^22.8.7":
6233+
version: 22.9.0
6234+
resolution: "@types/node@npm:22.9.0"
6235+
dependencies:
6236+
undici-types: "npm:~6.19.8"
6237+
checksum: 10/a7df3426891868b0f5fb03e46aeddd8446178233521c624a44531c92a040cf08a82d8235f7e1e02af731fd16984665d4d71f3418caf9c2788313b10f040d615d
6238+
languageName: node
6239+
linkType: hard
6240+
62316241
"@types/node@npm:^9.6.0":
62326242
version: 9.6.61
62336243
resolution: "@types/node@npm:9.6.61"
@@ -7719,7 +7729,7 @@ __metadata:
77197729
languageName: node
77207730
linkType: hard
77217731

7722-
"axios@npm:~0.27.2":
7732+
"axios@npm:^0.27.2, axios@npm:~0.27.2":
77237733
version: 0.27.2
77247734
resolution: "axios@npm:0.27.2"
77257735
dependencies:
@@ -15216,13 +15226,13 @@ __metadata:
1521615226
languageName: node
1521715227
linkType: hard
1521815228

15219-
"figma-api@npm:^1.11.0":
15220-
version: 1.11.0
15221-
resolution: "figma-api@npm:1.11.0"
15229+
"figma-api@npm:^2.0.1-beta":
15230+
version: 2.0.1-beta
15231+
resolution: "figma-api@npm:2.0.1-beta"
1522215232
dependencies:
15223-
"@types/node": "npm:12.0.2"
15224-
axios: "npm:^0.21.1"
15225-
checksum: 10/82fbbf772b4e46c9449338d09f8b5b07785bdbaaa61deb2409b87142b10670d634f20e25bf1d9080cb334d51b234edcc013d75345def0ea1a715e130f280a093
15233+
"@types/node": "npm:^22.8.7"
15234+
axios: "npm:^0.27.2"
15235+
checksum: 10/332a792a53b6efa5dc4b8d7a0b5130711a467a75be63a0fdb6d183f751548943c9f46c49c4189f1b1a2be5469936f0603af417598861da497b161ca1eb1dc270
1522615236
languageName: node
1522715237
linkType: hard
1522815238

@@ -15638,7 +15648,7 @@ __metadata:
1563815648
languageName: node
1563915649
linkType: hard
1564015650

15641-
"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9":
15651+
"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.0":
1564215652
version: 1.15.6
1564315653
resolution: "follow-redirects@npm:1.15.6"
1564415654
peerDependenciesMeta:
@@ -15648,6 +15658,16 @@ __metadata:
1564815658
languageName: node
1564915659
linkType: hard
1565015660

15661+
"follow-redirects@npm:^1.14.9":
15662+
version: 1.15.9
15663+
resolution: "follow-redirects@npm:1.15.9"
15664+
peerDependenciesMeta:
15665+
debug:
15666+
optional: true
15667+
checksum: 10/e3ab42d1097e90d28b913903841e6779eb969b62a64706a3eb983e894a5db000fbd89296f45f08885a0e54cd558ef62e81be1165da9be25a6c44920da10f424c
15668+
languageName: node
15669+
linkType: hard
15670+
1565115671
"for-each@npm:^0.3.3":
1565215672
version: 0.3.3
1565315673
resolution: "for-each@npm:0.3.3"
@@ -26786,7 +26806,7 @@ __metadata:
2678626806
languageName: node
2678726807
linkType: hard
2678826808

26789-
"ts-node@npm:^10.9.1, ts-node@npm:^10.9.2":
26809+
"ts-node@npm:^10.9.2":
2679026810
version: 10.9.2
2679126811
resolution: "ts-node@npm:10.9.2"
2679226812
dependencies:
@@ -27093,6 +27113,16 @@ __metadata:
2709327113
languageName: node
2709427114
linkType: hard
2709527115

27116+
"typescript@npm:^5.6.3":
27117+
version: 5.6.3
27118+
resolution: "typescript@npm:5.6.3"
27119+
bin:
27120+
tsc: bin/tsc
27121+
tsserver: bin/tsserver
27122+
checksum: 10/c328e418e124b500908781d9f7b9b93cf08b66bf5936d94332b463822eea2f4e62973bfb3b8a745fdc038785cb66cf59d1092bac3ec2ac6a3e5854687f7833f1
27123+
languageName: node
27124+
linkType: hard
27125+
2709627126
"typescript@patch:typescript@npm%3A^5.3.3#optional!builtin<compat/typescript>":
2709727127
version: 5.4.2
2709827128
resolution: "typescript@patch:typescript@npm%3A5.4.2#optional!builtin<compat/typescript>::version=5.4.2&hash=5adc0c"
@@ -27113,6 +27143,16 @@ __metadata:
2711327143
languageName: node
2711427144
linkType: hard
2711527145

27146+
"typescript@patch:typescript@npm%3A^5.6.3#optional!builtin<compat/typescript>":
27147+
version: 5.6.3
27148+
resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin<compat/typescript>::version=5.6.3&hash=74658d"
27149+
bin:
27150+
tsc: bin/tsc
27151+
tsserver: bin/tsserver
27152+
checksum: 10/dc4bec403cd33a204b655b1152a096a08e7bad2c931cb59ef8ff26b6f2aa541bf98f09fc157958a60c921b1983a8dde9a85b692f9de60fa8f574fd131e3ae4dd
27153+
languageName: node
27154+
linkType: hard
27155+
2711627156
"ua-parser-js@npm:^1.0.35":
2711727157
version: 1.0.37
2711827158
resolution: "ua-parser-js@npm:1.0.37"
@@ -27172,6 +27212,13 @@ __metadata:
2717227212
languageName: node
2717327213
linkType: hard
2717427214

27215+
"undici-types@npm:~6.19.8":
27216+
version: 6.19.8
27217+
resolution: "undici-types@npm:6.19.8"
27218+
checksum: 10/cf0b48ed4fc99baf56584afa91aaffa5010c268b8842f62e02f752df209e3dea138b372a60a963b3b2576ed932f32329ce7ddb9cb5f27a6c83040d8cd74b7a70
27219+
languageName: node
27220+
linkType: hard
27221+
2717527222
"unherit@npm:^1.0.4":
2717627223
version: 1.1.3
2717727224
resolution: "unherit@npm:1.1.3"

0 commit comments

Comments
 (0)