@figma/code-connect 1.0.5 → 1.1.0
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.
- package/README.md +2 -595
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/client/figma_client.d.ts +1 -1
- package/dist/client/figma_client.js +9 -7
- package/dist/client/figma_client.js.map +1 -1
- package/dist/commands/connect.d.ts +4 -2
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +97 -49
- package/dist/commands/connect.js.map +1 -1
- package/dist/connect/api.d.ts +143 -0
- package/dist/connect/api.d.ts.map +1 -0
- package/dist/connect/api.js +3 -0
- package/dist/connect/api.js.map +1 -0
- package/dist/connect/create.d.ts.map +1 -1
- package/dist/connect/create.js +4 -0
- package/dist/connect/create.js.map +1 -1
- package/dist/connect/create_common.d.ts +7 -0
- package/dist/connect/create_common.d.ts.map +1 -0
- package/dist/connect/create_common.js +19 -0
- package/dist/connect/create_common.js.map +1 -0
- package/dist/connect/external_types.d.ts +8 -0
- package/dist/connect/external_types.d.ts.map +1 -0
- package/dist/connect/external_types.js +31 -0
- package/dist/connect/external_types.js.map +1 -0
- package/dist/connect/figma_connect.d.ts +26 -0
- package/dist/connect/figma_connect.d.ts.map +1 -0
- package/dist/connect/figma_connect.js +3 -0
- package/dist/connect/figma_connect.js.map +1 -0
- package/dist/connect/figma_rest_api.d.ts +7 -0
- package/dist/connect/figma_rest_api.d.ts.map +1 -1
- package/dist/connect/figma_rest_api.js.map +1 -1
- package/dist/connect/index_common.d.ts +3 -0
- package/dist/connect/index_common.d.ts.map +1 -0
- package/dist/connect/index_common.js +23 -0
- package/dist/connect/index_common.js.map +1 -0
- package/dist/connect/intrinsics.d.ts +94 -0
- package/dist/connect/intrinsics.d.ts.map +1 -0
- package/dist/connect/intrinsics.js +401 -0
- package/dist/connect/intrinsics.js.map +1 -0
- package/dist/connect/parser_common.d.ts +144 -0
- package/dist/connect/parser_common.d.ts.map +1 -0
- package/dist/connect/parser_common.js +297 -0
- package/dist/connect/parser_common.js.map +1 -0
- package/dist/connect/parser_executable_types.d.ts +20 -23
- package/dist/connect/parser_executable_types.d.ts.map +1 -1
- package/dist/connect/parser_executable_types.js.map +1 -1
- package/dist/connect/parser_executables.js +1 -1
- package/dist/connect/parser_executables.js.map +1 -1
- package/dist/connect/project.d.ts +20 -5
- package/dist/connect/project.d.ts.map +1 -1
- package/dist/connect/project.js +79 -16
- package/dist/connect/project.js.map +1 -1
- package/dist/connect/upload.d.ts +1 -1
- package/dist/connect/upload.d.ts.map +1 -1
- package/dist/connect/validation.d.ts +1 -1
- package/dist/connect/validation.d.ts.map +1 -1
- package/dist/connect/wizard/helpers.d.ts +1 -0
- package/dist/connect/wizard/helpers.d.ts.map +1 -1
- package/dist/connect/wizard/helpers.js +27 -15
- package/dist/connect/wizard/helpers.js.map +1 -1
- package/dist/connect/wizard/prop_mapping.d.ts +12 -7
- package/dist/connect/wizard/prop_mapping.d.ts.map +1 -1
- package/dist/connect/wizard/prop_mapping.js +88 -89
- package/dist/connect/wizard/prop_mapping.js.map +1 -1
- package/dist/connect/wizard/run_wizard.d.ts.map +1 -1
- package/dist/connect/wizard/run_wizard.js +8 -3
- package/dist/connect/wizard/run_wizard.js.map +1 -1
- package/dist/connect/wizard/signature_extraction.d.ts +7 -0
- package/dist/connect/wizard/signature_extraction.d.ts.map +1 -0
- package/dist/connect/wizard/signature_extraction.js +46 -0
- package/dist/connect/wizard/signature_extraction.js.map +1 -0
- package/dist/html/__test__/parser/examples/NoConfigObject.figma.d.ts +2 -0
- package/dist/html/__test__/parser/examples/NoConfigObject.figma.d.ts.map +1 -0
- package/dist/html/__test__/parser/examples/NoConfigObject.figma.js +9 -0
- package/dist/html/__test__/parser/examples/NoConfigObject.figma.js.map +1 -0
- package/dist/html/__test__/parser/examples/NoExample.figma.d.ts +2 -0
- package/dist/html/__test__/parser/examples/NoExample.figma.d.ts.map +1 -0
- package/dist/html/__test__/parser/examples/NoExample.figma.js +9 -0
- package/dist/html/__test__/parser/examples/NoExample.figma.js.map +1 -0
- package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.d.ts +2 -0
- package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.d.ts.map +1 -0
- package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.js +33 -0
- package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.js.map +1 -0
- package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.d.ts +2 -0
- package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.d.ts.map +1 -0
- package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.js +15 -0
- package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.js.map +1 -0
- package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.d.ts +2 -0
- package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.d.ts.map +1 -0
- package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.js +15 -0
- package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.js.map +1 -0
- package/dist/html/__test__/parser/parser.test.d.ts +2 -0
- package/dist/html/__test__/parser/parser.test.d.ts.map +1 -0
- package/dist/html/__test__/parser/parser.test.js +50 -0
- package/dist/html/__test__/parser/parser.test.js.map +1 -0
- package/dist/html/create.d.ts +4 -0
- package/dist/html/create.d.ts.map +1 -0
- package/dist/html/create.js +81 -0
- package/dist/html/create.js.map +1 -0
- package/dist/html/external.d.ts +8 -0
- package/dist/html/external.d.ts.map +1 -0
- package/dist/html/external.js +25 -0
- package/dist/html/external.js.map +1 -0
- package/dist/html/index_html.d.ts +77 -0
- package/dist/html/index_html.d.ts.map +1 -0
- package/dist/html/index_html.js +42 -0
- package/dist/html/index_html.js.map +1 -0
- package/dist/html/parser.d.ts +19 -0
- package/dist/html/parser.d.ts.map +1 -0
- package/dist/html/parser.js +487 -0
- package/dist/html/parser.js.map +1 -0
- package/dist/html/parser_template_helpers.d.ts +2 -0
- package/dist/html/parser_template_helpers.d.ts.map +1 -0
- package/dist/html/parser_template_helpers.js +68 -0
- package/dist/html/parser_template_helpers.js.map +1 -0
- package/dist/html/template_literal.d.ts +5 -0
- package/dist/html/template_literal.d.ts.map +1 -0
- package/dist/html/template_literal.js +8 -0
- package/dist/html/template_literal.js.map +1 -0
- package/dist/parser_scripts/get_swift_parser_dir.d.ts +1 -1
- package/dist/parser_scripts/get_swift_parser_dir.d.ts.map +1 -1
- package/dist/parser_scripts/get_swift_parser_dir.js +38 -10
- package/dist/parser_scripts/get_swift_parser_dir.js.map +1 -1
- package/dist/react/create.d.ts +5 -0
- package/dist/react/create.d.ts.map +1 -1
- package/dist/react/create.js +144 -42
- package/dist/react/create.js.map +1 -1
- package/dist/react/external.d.ts +9 -0
- package/dist/react/external.d.ts.map +1 -0
- package/dist/react/external.js +45 -0
- package/dist/react/external.js.map +1 -0
- package/dist/react/index_react.d.ts +94 -0
- package/dist/react/index_react.d.ts.map +1 -0
- package/dist/react/index_react.js +39 -0
- package/dist/react/index_react.js.map +1 -0
- package/dist/react/parser.d.ts +6 -38
- package/dist/react/parser.d.ts.map +1 -1
- package/dist/react/parser.js +141 -298
- package/dist/react/parser.js.map +1 -1
- package/dist/react/parser_template_helpers.d.ts +15 -15
- package/dist/react/parser_template_helpers.d.ts.map +1 -1
- package/dist/react/parser_template_helpers.js +51 -35
- package/dist/react/parser_template_helpers.js.map +1 -1
- package/dist/storybook/convert.d.ts +1 -1
- package/dist/storybook/convert.d.ts.map +1 -1
- package/dist/storybook/convert.js +6 -4
- package/dist/storybook/convert.js.map +1 -1
- package/dist/storybook/external.d.ts +1 -1
- package/dist/storybook/external.d.ts.map +1 -1
- package/dist/typescript/compiler.d.ts +2 -2
- package/dist/typescript/compiler.d.ts.map +1 -1
- package/dist/typescript/compiler.js +51 -24
- package/dist/typescript/compiler.js.map +1 -1
- package/package.json +28 -8
|
@@ -18,6 +18,13 @@ export declare namespace FigmaRestApi {
|
|
|
18
18
|
* All possible values for this property. Only exists on VARIANT properties
|
|
19
19
|
*/
|
|
20
20
|
variantOptions?: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Only exists on INSTANCE_SWAP properties
|
|
23
|
+
*/
|
|
24
|
+
preferredValues?: {
|
|
25
|
+
type: string;
|
|
26
|
+
key: string;
|
|
27
|
+
}[];
|
|
21
28
|
}
|
|
22
29
|
interface Node {
|
|
23
30
|
type: 'COMPONENT' | 'COMPONENT_SET' | 'OTHER';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figma_rest_api.d.ts","sourceRoot":"","sources":["../../src/connect/figma_rest_api.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,UAE1C;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM;;;;EAM7C;AAGD,yBAAiB,YAAY,CAAC;IAC5B,KAAY,qBAAqB;QAC/B,OAAO,YAAY;QACnB,YAAY,kBAAkB;QAC9B,IAAI,SAAS;QACb,OAAO,YAAY;KACpB;IAED,UAAiB,2BAA2B;QAC1C,YAAY,EAAE,OAAO,GAAG,MAAM,CAAA;QAC9B,IAAI,EAAE,qBAAqB,CAAA;QAC3B;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"figma_rest_api.d.ts","sourceRoot":"","sources":["../../src/connect/figma_rest_api.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,UAE1C;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM;;;;EAM7C;AAGD,yBAAiB,YAAY,CAAC;IAC5B,KAAY,qBAAqB;QAC/B,OAAO,YAAY;QACnB,YAAY,kBAAkB;QAC9B,IAAI,SAAS;QACb,OAAO,YAAY;KACpB;IAED,UAAiB,2BAA2B;QAC1C,YAAY,EAAE,OAAO,GAAG,MAAM,CAAA;QAC9B,IAAI,EAAE,qBAAqB,CAAA;QAC3B;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;QACzB;;WAEG;QACH,eAAe,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAClD;IAED,UAAiB,IAAI;QAEnB,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,OAAO,CAAA;QAC7C,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,QAAQ,EAAE,IAAI,EAAE,CAAA;KACjB;IAED,UAAiB,SAAU,SAAQ,IAAI;QACrC,IAAI,EAAE,WAAW,GAAG,eAAe,CAAA;QACnC,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;KAC1E;CACF;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CA8B9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figma_rest_api.js","sourceRoot":"","sources":["../../src/connect/figma_rest_api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,+CAA0C;AAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAA;AAErD,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,0BAA0B,CAAA;AACnC,CAAC;AAFD,8BAEC;AAED,SAAgB,UAAU,CAAC,WAAmB;IAC5C,OAAO;QACL,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,kBAAkB;QAClC,YAAY,EAAE,oBAAoB,OAAO,EAAE;KAC5C,CAAA;AACH,CAAC;AAND,gCAMC;AAED,mDAAmD;AACnD,IAAiB,YAAY,
|
|
1
|
+
{"version":3,"file":"figma_rest_api.js","sourceRoot":"","sources":["../../src/connect/figma_rest_api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,+CAA0C;AAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAA;AAErD,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,0BAA0B,CAAA;AACnC,CAAC;AAFD,8BAEC;AAED,SAAgB,UAAU,CAAC,WAAmB;IAC5C,OAAO;QACL,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,kBAAkB;QAClC,YAAY,EAAE,oBAAoB,OAAO,EAAE;KAC5C,CAAA;AACH,CAAC;AAND,gCAMC;AAED,mDAAmD;AACnD,IAAiB,YAAY,CAiC5B;AAjCD,WAAiB,YAAY;IAC3B,IAAY,qBAKX;IALD,WAAY,qBAAqB;QAC/B,4CAAmB,CAAA;QACnB,uDAA8B,CAAA;QAC9B,sCAAa,CAAA;QACb,4CAAmB,CAAA;IACrB,CAAC,EALW,qBAAqB,GAArB,kCAAqB,KAArB,kCAAqB,QAKhC;AA2BH,CAAC,EAjCgB,YAAY,4BAAZ,YAAY,QAiC5B;AAEM,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,WAAmB;IAChE,IAAI,CAAC;QACH,gBAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACpC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;SACjC,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,gBAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;YACpE,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CAAC,0DAA0D,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;YACzF,gBAAM,CAAC,KAAK,CAAC,sDAAsD,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;YACnF,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAA,oBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,gBAAM,CAAC,KAAK,CACV,uCAAuC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CACtI,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,gBAAM,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YACpE,CAAC;YACD,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;IACzB,CAAC;AACH,CAAC;AA9BD,kCA8BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index_common.d.ts","sourceRoot":"","sources":["../../src/connect/index_common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAc3D,wBAAgB,SAAS,uBAMxB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getClient = void 0;
|
|
4
|
+
// `client/external`'s dependency chain ends up including code which is not safe
|
|
5
|
+
// in a browser context, e.g. `child_process`. This would mean that if you
|
|
6
|
+
// co-locate your Code Connect with React components, your app will be broken in
|
|
7
|
+
// a browser, because of this import chain.
|
|
8
|
+
//
|
|
9
|
+
// To get around this, we only import `client/external` if you are in a Node
|
|
10
|
+
// context – it is only used for the icon script, so none of the code which runs
|
|
11
|
+
// in the browser should touch it.
|
|
12
|
+
//
|
|
13
|
+
// Note that you may still see messages from the JS bundler about Node modules,
|
|
14
|
+
// but these won't be included at runtime.
|
|
15
|
+
function getClient() {
|
|
16
|
+
let client = {};
|
|
17
|
+
if (typeof process !== 'undefined' && process.versions && process.versions.node) {
|
|
18
|
+
client = require('./client/external');
|
|
19
|
+
}
|
|
20
|
+
return client;
|
|
21
|
+
}
|
|
22
|
+
exports.getClient = getClient;
|
|
23
|
+
//# sourceMappingURL=index_common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index_common.js","sourceRoot":"","sources":["../../src/connect/index_common.ts"],"names":[],"mappings":";;;AAEA,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAChF,2CAA2C;AAC3C,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,kCAAkC;AAClC,EAAE;AACF,+EAA+E;AAC/E,0CAA0C;AAE1C,SAAgB,SAAS;IACvB,IAAI,MAAM,GAAuB,EAAS,CAAA;IAC1C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChF,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAND,8BAMC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import * as ts from 'typescript';
|
|
2
|
+
import { ParserContext } from './parser_common';
|
|
3
|
+
import { FCCValue } from '../react/parser_template_helpers';
|
|
4
|
+
export declare const API_PREFIX = "figma";
|
|
5
|
+
export declare const FIGMA_CONNECT_CALL = "figma.connect";
|
|
6
|
+
export declare enum IntrinsicKind {
|
|
7
|
+
Enum = "enum",
|
|
8
|
+
String = "string",
|
|
9
|
+
Boolean = "boolean",
|
|
10
|
+
Instance = "instance",
|
|
11
|
+
Children = "children",
|
|
12
|
+
NestedProps = "nested-props",
|
|
13
|
+
ClassName = "className",
|
|
14
|
+
TextContent = "text-content"
|
|
15
|
+
}
|
|
16
|
+
export interface IntrinsicBase {
|
|
17
|
+
kind: IntrinsicKind;
|
|
18
|
+
args: {};
|
|
19
|
+
}
|
|
20
|
+
export type ValueMappingKind = FCCValue | Intrinsic;
|
|
21
|
+
export interface FigmaBoolean extends IntrinsicBase {
|
|
22
|
+
kind: IntrinsicKind.Boolean;
|
|
23
|
+
args: {
|
|
24
|
+
figmaPropName: string;
|
|
25
|
+
valueMapping?: Record<'true' | 'false', ValueMappingKind>;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export type ValueMapping = Record<string, ValueMappingKind>;
|
|
29
|
+
export interface FigmaEnum extends IntrinsicBase {
|
|
30
|
+
kind: IntrinsicKind.Enum;
|
|
31
|
+
args: {
|
|
32
|
+
figmaPropName: string;
|
|
33
|
+
valueMapping: ValueMapping;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface FigmaString extends IntrinsicBase {
|
|
37
|
+
kind: IntrinsicKind.String;
|
|
38
|
+
args: {
|
|
39
|
+
figmaPropName: string;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface FigmaInstance extends IntrinsicBase {
|
|
43
|
+
kind: IntrinsicKind.Instance;
|
|
44
|
+
args: {
|
|
45
|
+
figmaPropName: string;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export interface FigmaChildren extends IntrinsicBase {
|
|
49
|
+
kind: IntrinsicKind.Children;
|
|
50
|
+
args: {
|
|
51
|
+
layers: string[];
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export interface FigmaNestedProps extends IntrinsicBase {
|
|
55
|
+
kind: IntrinsicKind.NestedProps;
|
|
56
|
+
args: {
|
|
57
|
+
layer: string;
|
|
58
|
+
props: Record<string, Intrinsic>;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export interface FigmaClassName extends IntrinsicBase {
|
|
62
|
+
kind: IntrinsicKind.ClassName;
|
|
63
|
+
args: {
|
|
64
|
+
className: (string | Intrinsic)[];
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export interface FigmaTextContent extends IntrinsicBase {
|
|
68
|
+
kind: IntrinsicKind.TextContent;
|
|
69
|
+
args: {
|
|
70
|
+
layer: string;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export type Intrinsic = FigmaBoolean | FigmaEnum | FigmaString | FigmaInstance | FigmaChildren | FigmaNestedProps | FigmaClassName | FigmaTextContent;
|
|
74
|
+
/**
|
|
75
|
+
* Parses a call expression to an intrinsic
|
|
76
|
+
*
|
|
77
|
+
* @param exp Expression to parse
|
|
78
|
+
* @param parserContext parser context
|
|
79
|
+
* @returns
|
|
80
|
+
*/
|
|
81
|
+
export declare function parseIntrinsic(exp: ts.CallExpression, parserContext: ParserContext): Intrinsic;
|
|
82
|
+
export declare function valueMappingToString(valueMapping: ValueMapping, childLayer?: string): string;
|
|
83
|
+
export declare function intrinsicToString({ kind, args }: Intrinsic, childLayer?: string): string;
|
|
84
|
+
/**
|
|
85
|
+
* Parses the `props` field in a `figma.connect()` call, returning a mapping of
|
|
86
|
+
* prop names to their respective intrinsic types
|
|
87
|
+
*
|
|
88
|
+
* @param objectLiteral An object literal expression
|
|
89
|
+
* @param parserContext Parser context
|
|
90
|
+
* @returns
|
|
91
|
+
*/
|
|
92
|
+
export declare function parsePropsObject(objectLiteral: ts.ObjectLiteralExpression, parserContext: ParserContext): PropMappings;
|
|
93
|
+
export type PropMappings = Record<string, Intrinsic>;
|
|
94
|
+
//# sourceMappingURL=intrinsics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../../src/connect/intrinsics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.parsePropsObject = exports.intrinsicToString = exports.valueMappingToString = exports.parseIntrinsic = exports.IntrinsicKind = exports.FIGMA_CONNECT_CALL = exports.API_PREFIX = void 0;
|
|
27
|
+
const ts = __importStar(require("typescript"));
|
|
28
|
+
const parser_common_1 = require("./parser_common");
|
|
29
|
+
const compiler_1 = require("../typescript/compiler");
|
|
30
|
+
const compiler_2 = require("../typescript/compiler");
|
|
31
|
+
const compiler_3 = require("../typescript/compiler");
|
|
32
|
+
const parser_template_helpers_1 = require("../react/parser_template_helpers");
|
|
33
|
+
exports.API_PREFIX = 'figma';
|
|
34
|
+
exports.FIGMA_CONNECT_CALL = `${exports.API_PREFIX}.connect`;
|
|
35
|
+
var IntrinsicKind;
|
|
36
|
+
(function (IntrinsicKind) {
|
|
37
|
+
IntrinsicKind["Enum"] = "enum";
|
|
38
|
+
IntrinsicKind["String"] = "string";
|
|
39
|
+
IntrinsicKind["Boolean"] = "boolean";
|
|
40
|
+
IntrinsicKind["Instance"] = "instance";
|
|
41
|
+
IntrinsicKind["Children"] = "children";
|
|
42
|
+
IntrinsicKind["NestedProps"] = "nested-props";
|
|
43
|
+
IntrinsicKind["ClassName"] = "className";
|
|
44
|
+
IntrinsicKind["TextContent"] = "text-content";
|
|
45
|
+
})(IntrinsicKind || (exports.IntrinsicKind = IntrinsicKind = {}));
|
|
46
|
+
const Intrinsics = {};
|
|
47
|
+
/**
|
|
48
|
+
* These functions are used to convert "intrinsic" parser types (which are calls to helper functions
|
|
49
|
+
* like `Figma.boolean() in code)` to an object representing that intrinsic that we can serialize to JSON.
|
|
50
|
+
*
|
|
51
|
+
* Each call to `makeIntrinsic` should take a function from the {@link FigmaConnectAPI},
|
|
52
|
+
* ensuring that the name of the intrinsic that we're parsing matches the name of the function
|
|
53
|
+
*
|
|
54
|
+
* @param staticFunctionMember
|
|
55
|
+
* @param obj
|
|
56
|
+
*/
|
|
57
|
+
function makeIntrinsic(intrinsicName, obj) {
|
|
58
|
+
const name = `${exports.API_PREFIX}.${intrinsicName}`;
|
|
59
|
+
Intrinsics[name] = {
|
|
60
|
+
match: (exp) => {
|
|
61
|
+
return ts.isCallExpression(exp) && exp.getText().startsWith(name);
|
|
62
|
+
},
|
|
63
|
+
...obj(name),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
makeIntrinsic('boolean', (name) => {
|
|
67
|
+
return {
|
|
68
|
+
parse: (exp, ctx) => {
|
|
69
|
+
const figmaPropNameIdentifier = exp.arguments?.[0];
|
|
70
|
+
(0, compiler_1.assertIsStringLiteral)(figmaPropNameIdentifier, ctx.sourceFile, `${name} takes at least one argument, which is the Figma property name`);
|
|
71
|
+
const valueMappingArg = exp.arguments?.[1];
|
|
72
|
+
let valueMapping;
|
|
73
|
+
if (valueMappingArg) {
|
|
74
|
+
(0, compiler_3.assertIsObjectLiteralExpression)(valueMappingArg, ctx.sourceFile, `${name} second argument should be an object literal, that sets values for 'true' and 'false'`);
|
|
75
|
+
valueMapping = parsePropsObject(valueMappingArg, ctx);
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
kind: IntrinsicKind.Boolean,
|
|
79
|
+
args: {
|
|
80
|
+
figmaPropName: (0, compiler_1.stripQuotesFromNode)(figmaPropNameIdentifier),
|
|
81
|
+
valueMapping,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
makeIntrinsic('enum', (name) => {
|
|
88
|
+
return {
|
|
89
|
+
parse: (exp, ctx) => {
|
|
90
|
+
const { sourceFile } = ctx;
|
|
91
|
+
const figmaPropNameIdentifier = exp.arguments?.[0];
|
|
92
|
+
(0, compiler_1.assertIsStringLiteral)(figmaPropNameIdentifier, sourceFile, `${name} takes at least one argument, which is the Figma property name`);
|
|
93
|
+
const valueMapping = exp.arguments?.[1];
|
|
94
|
+
(0, compiler_3.assertIsObjectLiteralExpression)(valueMapping, sourceFile, `${name} second argument should be an object literal, that maps Figma prop values to code`);
|
|
95
|
+
return {
|
|
96
|
+
kind: IntrinsicKind.Enum,
|
|
97
|
+
args: {
|
|
98
|
+
figmaPropName: (0, compiler_1.stripQuotesFromNode)(figmaPropNameIdentifier),
|
|
99
|
+
valueMapping: parsePropsObject(valueMapping, ctx),
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
makeIntrinsic('string', (name) => {
|
|
106
|
+
return {
|
|
107
|
+
parse: (exp, ctx) => {
|
|
108
|
+
const { sourceFile } = ctx;
|
|
109
|
+
const figmaPropNameIdentifier = exp.arguments?.[0];
|
|
110
|
+
(0, compiler_1.assertIsStringLiteral)(figmaPropNameIdentifier, sourceFile, `${name} takes at least one argument, which is the Figma property name`);
|
|
111
|
+
return {
|
|
112
|
+
kind: IntrinsicKind.String,
|
|
113
|
+
args: {
|
|
114
|
+
figmaPropName: (0, compiler_1.stripQuotesFromNode)(figmaPropNameIdentifier),
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
});
|
|
120
|
+
makeIntrinsic('instance', (name) => {
|
|
121
|
+
return {
|
|
122
|
+
parse: (exp, ctx) => {
|
|
123
|
+
const { sourceFile } = ctx;
|
|
124
|
+
const figmaPropNameIdentifier = exp.arguments?.[0];
|
|
125
|
+
(0, compiler_1.assertIsStringLiteral)(figmaPropNameIdentifier, sourceFile, `${name} takes at least one argument, which is the Figma property name`);
|
|
126
|
+
return {
|
|
127
|
+
kind: IntrinsicKind.Instance,
|
|
128
|
+
args: {
|
|
129
|
+
figmaPropName: (0, compiler_1.stripQuotesFromNode)(figmaPropNameIdentifier),
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
});
|
|
135
|
+
makeIntrinsic('children', (name) => {
|
|
136
|
+
return {
|
|
137
|
+
parse: (exp, ctx) => {
|
|
138
|
+
const { sourceFile } = ctx;
|
|
139
|
+
const layerName = exp.arguments?.[0];
|
|
140
|
+
const layers = [];
|
|
141
|
+
if (ts.isStringLiteral(layerName)) {
|
|
142
|
+
layers.push((0, compiler_1.stripQuotesFromNode)(layerName));
|
|
143
|
+
}
|
|
144
|
+
else if (ts.isArrayLiteralExpression(layerName) && layerName.elements.length > 0) {
|
|
145
|
+
layerName.elements.forEach((el) => {
|
|
146
|
+
(0, compiler_1.assertIsStringLiteral)(el, sourceFile);
|
|
147
|
+
const name = (0, compiler_1.stripQuotesFromNode)(el);
|
|
148
|
+
if (name.includes('*')) {
|
|
149
|
+
throw new parser_common_1.ParserError(`Wildcards can not be used with an array of strings. Use a single string literal instead.`, {
|
|
150
|
+
node: layerName,
|
|
151
|
+
sourceFile,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
layers.push((0, compiler_1.stripQuotesFromNode)(el));
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
throw new parser_common_1.ParserError(`Invalid argument to ${name}, should be a string literal or an array of strings`, {
|
|
159
|
+
node: layerName,
|
|
160
|
+
sourceFile,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
kind: IntrinsicKind.Children,
|
|
165
|
+
args: {
|
|
166
|
+
layers,
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
});
|
|
172
|
+
makeIntrinsic('nestedProps', (name) => {
|
|
173
|
+
return {
|
|
174
|
+
parse: (exp, ctx) => {
|
|
175
|
+
const { sourceFile } = ctx;
|
|
176
|
+
const layerName = exp.arguments?.[0];
|
|
177
|
+
const mapping = exp.arguments?.[1];
|
|
178
|
+
(0, compiler_1.assertIsStringLiteral)(layerName, sourceFile, `Invalid argument to ${name}, \`layerName\` should be a string literal`);
|
|
179
|
+
(0, compiler_3.assertIsObjectLiteralExpression)(mapping, sourceFile, `Invalid argument to ${name}, \`props\` should be an object literal`);
|
|
180
|
+
ts.forEachChild(mapping, (node) => {
|
|
181
|
+
if (ts.isPropertyAssignment(node) &&
|
|
182
|
+
ts.isCallExpression(node.initializer) &&
|
|
183
|
+
node.initializer.getText().startsWith('figma.nestedProps')) {
|
|
184
|
+
throw new parser_common_1.ParserError(`nestedProps can not be nested inside another nestedProps call, instead, pass the deeply nested layer name at the top level`);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
return {
|
|
188
|
+
kind: IntrinsicKind.NestedProps,
|
|
189
|
+
args: {
|
|
190
|
+
layer: (0, compiler_1.stripQuotesFromNode)(layerName),
|
|
191
|
+
props: parsePropsObject(mapping, ctx),
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
});
|
|
197
|
+
makeIntrinsic('className', (name) => {
|
|
198
|
+
return {
|
|
199
|
+
parse: (exp, ctx) => {
|
|
200
|
+
const { sourceFile } = ctx;
|
|
201
|
+
const classNameArg = exp.arguments?.[0];
|
|
202
|
+
const className = [];
|
|
203
|
+
(0, compiler_1.assertIsArrayLiteralExpression)(classNameArg, sourceFile, `${name} takes an array of strings`);
|
|
204
|
+
classNameArg.elements.forEach((el) => {
|
|
205
|
+
if (ts.isStringLiteral(el)) {
|
|
206
|
+
className.push((0, compiler_1.stripQuotesFromNode)(el));
|
|
207
|
+
}
|
|
208
|
+
else if (ts.isCallExpression(el)) {
|
|
209
|
+
className.push(parseIntrinsic(el, ctx));
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
return {
|
|
213
|
+
kind: IntrinsicKind.ClassName,
|
|
214
|
+
args: {
|
|
215
|
+
className,
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
});
|
|
221
|
+
makeIntrinsic('textContent', (name) => {
|
|
222
|
+
return {
|
|
223
|
+
parse: (exp, ctx) => {
|
|
224
|
+
const { sourceFile } = ctx;
|
|
225
|
+
const layerNameArg = exp.arguments?.[0];
|
|
226
|
+
(0, compiler_1.assertIsStringLiteral)(layerNameArg, sourceFile, `${name} takes a single argument which is the Figma layer name`);
|
|
227
|
+
return {
|
|
228
|
+
kind: IntrinsicKind.TextContent,
|
|
229
|
+
args: {
|
|
230
|
+
layer: (0, compiler_1.stripQuotesFromNode)(layerNameArg),
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
});
|
|
236
|
+
/**
|
|
237
|
+
* Parses a call expression to an intrinsic
|
|
238
|
+
*
|
|
239
|
+
* @param exp Expression to parse
|
|
240
|
+
* @param parserContext parser context
|
|
241
|
+
* @returns
|
|
242
|
+
*/
|
|
243
|
+
function parseIntrinsic(exp, parserContext) {
|
|
244
|
+
for (const key in Intrinsics) {
|
|
245
|
+
if (Intrinsics[key].match(exp)) {
|
|
246
|
+
return Intrinsics[key].parse(exp, parserContext);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
throw new parser_common_1.ParserError(`Unknown intrinsic: ${exp.getText()}`, {
|
|
250
|
+
node: exp,
|
|
251
|
+
sourceFile: parserContext.sourceFile,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
exports.parseIntrinsic = parseIntrinsic;
|
|
255
|
+
/**
|
|
256
|
+
* Replace newlines in enum values with \\n so that we don't output
|
|
257
|
+
* broken JS with newlines inside the string
|
|
258
|
+
*/
|
|
259
|
+
function replaceNewlines(str) {
|
|
260
|
+
return str.toString().replaceAll('\n', '\\n').replaceAll("'", "\\'");
|
|
261
|
+
}
|
|
262
|
+
function valueMappingToString(valueMapping, childLayer) {
|
|
263
|
+
// For enums (and booleans with a valueMapping provided), convert the
|
|
264
|
+
// value mapping to an object.
|
|
265
|
+
return ('{\n' +
|
|
266
|
+
Object.entries(valueMapping)
|
|
267
|
+
.map(([key, value]) => {
|
|
268
|
+
if (typeof value === 'boolean' ||
|
|
269
|
+
typeof value === 'number' ||
|
|
270
|
+
typeof value === 'undefined') {
|
|
271
|
+
return `"${key}": ${value}`;
|
|
272
|
+
}
|
|
273
|
+
if (typeof value === 'string') {
|
|
274
|
+
return `"${key}": '${replaceNewlines(value)}'`;
|
|
275
|
+
}
|
|
276
|
+
if ('kind' in value) {
|
|
277
|
+
// Mappings can be nested, e.g. an enum value can be figma.instance(...)
|
|
278
|
+
return `"${key}": ${intrinsicToString(value, childLayer)}`;
|
|
279
|
+
}
|
|
280
|
+
// Convert objects to strings
|
|
281
|
+
const str = typeof value.$value === 'string' ? value.$value : `${JSON.stringify(value.$value)}`;
|
|
282
|
+
const v = replaceNewlines(str);
|
|
283
|
+
switch (value.$type) {
|
|
284
|
+
case 'function':
|
|
285
|
+
return `"${key}": _fcc_function('${v}')`;
|
|
286
|
+
case 'identifier':
|
|
287
|
+
return `"${key}": _fcc_identifier('${v}')`;
|
|
288
|
+
case 'object':
|
|
289
|
+
// Don't pass the object itself wrapped in quotes - this helper needs to instantiate the actual
|
|
290
|
+
// object, as it may be used in the snippet code
|
|
291
|
+
return `"${key}": _fcc_object(${v})`;
|
|
292
|
+
case 'template-string':
|
|
293
|
+
return `"${key}": _fcc_templateString('${v}')`;
|
|
294
|
+
case 'jsx-element':
|
|
295
|
+
return `"${key}": _fcc_jsxElement('${v}')`;
|
|
296
|
+
default:
|
|
297
|
+
throw new parser_common_1.InternalError(`Unknown helper type: ${value}`);
|
|
298
|
+
}
|
|
299
|
+
})
|
|
300
|
+
.join(',\n') +
|
|
301
|
+
'}');
|
|
302
|
+
}
|
|
303
|
+
exports.valueMappingToString = valueMappingToString;
|
|
304
|
+
let nestedLayerCount = 0;
|
|
305
|
+
function intrinsicToString({ kind, args }, childLayer) {
|
|
306
|
+
const selector = childLayer ?? `figma.currentLayer`;
|
|
307
|
+
switch (kind) {
|
|
308
|
+
case IntrinsicKind.String:
|
|
309
|
+
case IntrinsicKind.Instance: {
|
|
310
|
+
// Outputs:
|
|
311
|
+
// `const propName = figma.properties.string('propName')`, or
|
|
312
|
+
// `const propName = figma.properties.boolean('propName')`, or
|
|
313
|
+
// `const propName = figma.properties.instance('propName')`
|
|
314
|
+
return `${selector}.__properties__.${kind}('${args.figmaPropName}')`;
|
|
315
|
+
}
|
|
316
|
+
case IntrinsicKind.Boolean: {
|
|
317
|
+
if (args.valueMapping) {
|
|
318
|
+
const mappingString = valueMappingToString(args.valueMapping, childLayer);
|
|
319
|
+
// Outputs: `const propName = figma.properties.boolean('propName', { ... mapping object from above ... })`
|
|
320
|
+
return `${selector}.__properties__.boolean('${args.figmaPropName}', ${mappingString})`;
|
|
321
|
+
}
|
|
322
|
+
return `${selector}.__properties__.boolean('${args.figmaPropName}')`;
|
|
323
|
+
}
|
|
324
|
+
case IntrinsicKind.Enum: {
|
|
325
|
+
const mappingString = valueMappingToString(args.valueMapping, childLayer);
|
|
326
|
+
// Outputs: `const propName = figma.properties.enum('propName', { ... mapping object from above ... })`
|
|
327
|
+
return `${selector}.__properties__.enum('${args.figmaPropName}', ${mappingString})`;
|
|
328
|
+
}
|
|
329
|
+
case IntrinsicKind.Children: {
|
|
330
|
+
// Outputs: `const propName = figma.properties.children(["Layer 1", "Layer 2"])`
|
|
331
|
+
return `${selector}.__properties__.children([${args.layers.map((layerName) => `"${layerName}"`).join(',')}])`;
|
|
332
|
+
}
|
|
333
|
+
case IntrinsicKind.ClassName: {
|
|
334
|
+
// Outputs: `const propName = ['btn-base', figma.currentLayer.__properties__.enum('Size, { Large: 'btn-large' })].join(" ")`
|
|
335
|
+
return `[${args.className.map((className) => (typeof className === 'string' ? `"${className}"` : `${intrinsicToString(className, childLayer)}`)).join(', ')}].filter(v => !!v).join(' ')`;
|
|
336
|
+
}
|
|
337
|
+
case IntrinsicKind.TextContent: {
|
|
338
|
+
return `${selector}.__findChildWithCriteria__({ name: '${args.layer}', type: "TEXT" }).__render__()`;
|
|
339
|
+
}
|
|
340
|
+
case IntrinsicKind.NestedProps: {
|
|
341
|
+
let body = '';
|
|
342
|
+
// the actual layer name in figma could have a bunch of special characters in it,
|
|
343
|
+
// and if we try to normalize it to a valid JS identifier, it could conflict with
|
|
344
|
+
// other variables in the template code. So we generate a unique variable name
|
|
345
|
+
// for each nested layer reference instead. The only reason it's wrapped in a funciton
|
|
346
|
+
// currently is to keep the error checking out of global scope
|
|
347
|
+
const nestedLayerRef = `nestedLayer${nestedLayerCount++}`;
|
|
348
|
+
body += `const ${nestedLayerRef} = figma.currentLayer.__find__("${args.layer}")\n`;
|
|
349
|
+
body += `return ${nestedLayerRef}.type === "ERROR" ? ${nestedLayerRef} : {
|
|
350
|
+
${Object.entries(args.props).map(([key, intrinsic]) => `${key}: ${intrinsicToString(intrinsic, nestedLayerRef)}\n`)}
|
|
351
|
+
}\n`;
|
|
352
|
+
return `(function () {${body}})()`;
|
|
353
|
+
}
|
|
354
|
+
default:
|
|
355
|
+
throw new parser_common_1.InternalError(`Unknown intrinsic: ${kind}`);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
exports.intrinsicToString = intrinsicToString;
|
|
359
|
+
function expressionToFccEnumValue(valueNode, parserContext) {
|
|
360
|
+
if (ts.isParenthesizedExpression(valueNode)) {
|
|
361
|
+
return expressionToFccEnumValue(valueNode.expression, parserContext);
|
|
362
|
+
}
|
|
363
|
+
if (ts.isJsxElement(valueNode) || ts.isJsxSelfClosingElement(valueNode)) {
|
|
364
|
+
return (0, parser_template_helpers_1._fcc_jsxElement)(valueNode.getText());
|
|
365
|
+
}
|
|
366
|
+
if (ts.isArrowFunction(valueNode) || ts.isFunctionExpression(valueNode)) {
|
|
367
|
+
return (0, parser_template_helpers_1._fcc_function)(valueNode.getText());
|
|
368
|
+
}
|
|
369
|
+
if (ts.isObjectLiteralExpression(valueNode)) {
|
|
370
|
+
// should recursively convert to FCC
|
|
371
|
+
return (0, parser_template_helpers_1._fcc_object)(parsePropsObject(valueNode, parserContext));
|
|
372
|
+
}
|
|
373
|
+
if (ts.isTemplateLiteral(valueNode)) {
|
|
374
|
+
const str = valueNode.getText().replaceAll('`', '');
|
|
375
|
+
return (0, parser_template_helpers_1._fcc_templateString)(str);
|
|
376
|
+
}
|
|
377
|
+
if (ts.isPropertyAccessExpression(valueNode)) {
|
|
378
|
+
return (0, parser_template_helpers_1._fcc_identifier)(valueNode.getText());
|
|
379
|
+
}
|
|
380
|
+
// Fall back to the default conversion in `convertObjectLiteralToJs`
|
|
381
|
+
return undefined;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Parses the `props` field in a `figma.connect()` call, returning a mapping of
|
|
385
|
+
* prop names to their respective intrinsic types
|
|
386
|
+
*
|
|
387
|
+
* @param objectLiteral An object literal expression
|
|
388
|
+
* @param parserContext Parser context
|
|
389
|
+
* @returns
|
|
390
|
+
*/
|
|
391
|
+
function parsePropsObject(objectLiteral, parserContext) {
|
|
392
|
+
const { sourceFile, checker } = parserContext;
|
|
393
|
+
return (0, compiler_2.convertObjectLiteralToJs)(objectLiteral, sourceFile, checker, (valueNode) => {
|
|
394
|
+
if (ts.isCallExpression(valueNode)) {
|
|
395
|
+
return parseIntrinsic(valueNode, parserContext);
|
|
396
|
+
}
|
|
397
|
+
return expressionToFccEnumValue(valueNode, parserContext);
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
exports.parsePropsObject = parsePropsObject;
|
|
401
|
+
//# sourceMappingURL=intrinsics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intrinsics.js","sourceRoot":"","sources":["../../src/connect/intrinsics.ts"],"names":[],"mappings":"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"}
|