@figma/code-connect 0.1.1 → 0.2.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 +123 -25
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/connect.d.ts +15 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +140 -79
- package/dist/commands/connect.js.map +1 -1
- package/dist/common/__test__/project.test.d.ts +2 -0
- package/dist/common/__test__/project.test.d.ts.map +1 -0
- package/dist/common/__test__/project.test.js +14 -0
- package/dist/common/__test__/project.test.js.map +1 -0
- package/dist/common/api.d.ts +77 -5
- package/dist/common/api.d.ts.map +1 -1
- package/dist/common/external.d.ts +7 -3
- package/dist/common/external.d.ts.map +1 -1
- package/dist/common/external.js +13 -1
- package/dist/common/external.js.map +1 -1
- package/dist/common/figma_connect.d.ts +12 -10
- package/dist/common/figma_connect.d.ts.map +1 -1
- package/dist/common/intrinsics.d.ts +39 -7
- package/dist/common/intrinsics.d.ts.map +1 -1
- package/dist/common/intrinsics.js +166 -30
- package/dist/common/intrinsics.js.map +1 -1
- package/dist/common/logging.d.ts +9 -0
- package/dist/common/logging.d.ts.map +1 -1
- package/dist/common/logging.js +21 -1
- package/dist/common/logging.js.map +1 -1
- package/dist/common/updates.d.ts +4 -0
- package/dist/common/updates.d.ts.map +1 -0
- package/dist/common/updates.js +87 -0
- package/dist/common/updates.js.map +1 -0
- package/dist/connect/create.d.ts +5 -1
- package/dist/connect/create.d.ts.map +1 -1
- package/dist/connect/create.js +55 -69
- package/dist/connect/create.js.map +1 -1
- package/dist/connect/delete_docs.d.ts.map +1 -1
- package/dist/connect/delete_docs.js +1 -4
- package/dist/connect/delete_docs.js.map +1 -1
- package/dist/connect/figma_rest_api.d.ts +5 -0
- package/dist/connect/figma_rest_api.d.ts.map +1 -1
- package/dist/connect/figma_rest_api.js +10 -1
- package/dist/connect/figma_rest_api.js.map +1 -1
- package/dist/connect/helpers.d.ts +1 -1
- package/dist/connect/helpers.d.ts.map +1 -1
- package/dist/connect/helpers.js +6 -5
- package/dist/connect/helpers.js.map +1 -1
- package/dist/connect/parser_executable_types.d.ts +298 -0
- package/dist/connect/parser_executable_types.d.ts.map +1 -0
- package/dist/connect/parser_executable_types.js +108 -0
- package/dist/connect/parser_executable_types.js.map +1 -0
- package/dist/connect/parser_executables.d.ts +8 -0
- package/dist/connect/parser_executables.d.ts.map +1 -0
- package/dist/connect/parser_executables.js +132 -0
- package/dist/connect/parser_executables.js.map +1 -0
- package/dist/connect/project.d.ts +137 -0
- package/dist/connect/project.d.ts.map +1 -0
- package/dist/connect/project.js +411 -0
- package/dist/connect/project.js.map +1 -0
- package/dist/connect/upload.d.ts.map +1 -1
- package/dist/connect/upload.js +2 -5
- package/dist/connect/upload.js.map +1 -1
- package/dist/connect/validation.d.ts +6 -1
- package/dist/connect/validation.d.ts.map +1 -1
- package/dist/connect/validation.js +12 -12
- package/dist/connect/validation.js.map +1 -1
- package/dist/connect/wizard/helpers.d.ts +7 -0
- package/dist/connect/wizard/helpers.d.ts.map +1 -0
- package/dist/connect/wizard/helpers.js +55 -0
- package/dist/connect/wizard/helpers.js.map +1 -0
- package/dist/connect/wizard/run_wizard.d.ts +3 -0
- package/dist/connect/wizard/run_wizard.d.ts.map +1 -0
- package/dist/connect/wizard/run_wizard.js +479 -0
- package/dist/connect/wizard/run_wizard.js.map +1 -0
- package/dist/parser_scripts/get_file_if_exists.d.ts +2 -0
- package/dist/parser_scripts/get_file_if_exists.d.ts.map +1 -0
- package/dist/parser_scripts/get_file_if_exists.js +10 -0
- package/dist/parser_scripts/get_file_if_exists.js.map +1 -0
- package/dist/parser_scripts/get_gradlew_path.d.ts +3 -0
- package/dist/parser_scripts/get_gradlew_path.d.ts.map +1 -0
- package/dist/parser_scripts/get_gradlew_path.js +24 -0
- package/dist/parser_scripts/get_gradlew_path.js.map +1 -0
- package/dist/parser_scripts/get_swift_parser_dir.d.ts +2 -0
- package/dist/parser_scripts/get_swift_parser_dir.d.ts.map +1 -0
- package/dist/parser_scripts/get_swift_parser_dir.js +93 -0
- package/dist/parser_scripts/get_swift_parser_dir.js.map +1 -0
- package/dist/react/create.d.ts +4 -0
- package/dist/react/create.d.ts.map +1 -0
- package/dist/react/create.js +132 -0
- package/dist/react/create.js.map +1 -0
- package/dist/{common → react}/parser.d.ts +6 -15
- package/dist/react/parser.d.ts.map +1 -0
- package/dist/{common → react}/parser.js +223 -172
- package/dist/react/parser.js.map +1 -0
- package/dist/react/parser_template_helpers.d.ts +23 -0
- package/dist/react/parser_template_helpers.d.ts.map +1 -0
- package/dist/react/parser_template_helpers.js +126 -0
- package/dist/react/parser_template_helpers.js.map +1 -0
- package/dist/storybook/convert.d.ts +2 -2
- package/dist/storybook/convert.d.ts.map +1 -1
- package/dist/storybook/convert.js +11 -7
- package/dist/storybook/convert.js.map +1 -1
- package/dist/{common → typescript}/compiler.d.ts +1 -1
- package/dist/typescript/compiler.d.ts.map +1 -0
- package/dist/{common → typescript}/compiler.js +21 -2
- package/dist/typescript/compiler.js.map +1 -0
- package/package.json +36 -11
- package/dist/common/compiler.d.ts.map +0 -1
- package/dist/common/compiler.js.map +0 -1
- package/dist/common/parser.d.ts.map +0 -1
- package/dist/common/parser.js.map +0 -1
- package/dist/common/parser_template_helpers.d.ts +0 -2
- package/dist/common/parser_template_helpers.d.ts.map +0 -1
- package/dist/common/parser_template_helpers.js +0 -58
- package/dist/common/parser_template_helpers.js.map +0 -1
- package/dist/common/project.d.ts +0 -84
- package/dist/common/project.d.ts.map +0 -1
- package/dist/common/project.js +0 -179
- package/dist/common/project.js.map +0 -1
|
@@ -3,13 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.parse = exports.getDefaultTemplate = exports.parseRenderFunction = exports.isFigmaConnectFile = exports.parseComponentMetadata = exports.
|
|
6
|
+
exports.parse = exports.getDefaultTemplate = exports.parseRenderFunction = exports.isFigmaConnectFile = exports.parseComponentMetadata = exports.InternalError = exports.ParserError = void 0;
|
|
7
7
|
const typescript_1 = __importDefault(require("typescript"));
|
|
8
|
-
const project_1 = require("
|
|
9
|
-
const logging_1 = require("
|
|
10
|
-
const compiler_1 = require("
|
|
11
|
-
const intrinsics_1 = require("
|
|
8
|
+
const project_1 = require("../connect/project");
|
|
9
|
+
const logging_1 = require("../common/logging");
|
|
10
|
+
const compiler_1 = require("../typescript/compiler");
|
|
11
|
+
const intrinsics_1 = require("../common/intrinsics");
|
|
12
12
|
const parser_template_helpers_1 = require("./parser_template_helpers");
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
13
14
|
class ParserError extends Error {
|
|
14
15
|
constructor(message, context) {
|
|
15
16
|
super(message);
|
|
@@ -152,23 +153,6 @@ function getImportsForIdentifiers({ sourceFile }, _identifiers) {
|
|
|
152
153
|
}
|
|
153
154
|
return imports;
|
|
154
155
|
}
|
|
155
|
-
/**
|
|
156
|
-
* Parsers the `props` field of a `figma.connect()` call, returning a mapping of
|
|
157
|
-
* prop names to their respective intrinsic types
|
|
158
|
-
*
|
|
159
|
-
* @param objectLiteral An object literal expression
|
|
160
|
-
* @param parserContext Parser context
|
|
161
|
-
* @returns
|
|
162
|
-
*/
|
|
163
|
-
function parsePropsObject(objectLiteral, parserContext) {
|
|
164
|
-
const { sourceFile, checker } = parserContext;
|
|
165
|
-
return (0, compiler_1.convertObjectLiteralToJs)(objectLiteral, sourceFile, checker, (valueNode) => {
|
|
166
|
-
if (typescript_1.default.isCallExpression(valueNode)) {
|
|
167
|
-
return (0, intrinsics_1.parseIntrinsic)(valueNode, parserContext);
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
exports.parsePropsObject = parsePropsObject;
|
|
172
156
|
/**
|
|
173
157
|
* Extract metadata about the referenced React component. Used by both the
|
|
174
158
|
* Code Connect and Storybook commands.
|
|
@@ -179,7 +163,7 @@ exports.parsePropsObject = parsePropsObject;
|
|
|
179
163
|
* @param node The node being parsed. Used for error logging.
|
|
180
164
|
* @returns Metadata object
|
|
181
165
|
*/
|
|
182
|
-
async function parseComponentMetadata(node, { checker, sourceFile }) {
|
|
166
|
+
async function parseComponentMetadata(node, { checker, sourceFile, absPath }) {
|
|
183
167
|
let componentSymbol = checker.getSymbolAtLocation(node);
|
|
184
168
|
let componentSourceFile = sourceFile;
|
|
185
169
|
let component = '';
|
|
@@ -241,7 +225,9 @@ async function parseComponentMetadata(node, { checker, sourceFile }) {
|
|
|
241
225
|
else {
|
|
242
226
|
componentDeclaration = componentSymbol?.declarations?.[0];
|
|
243
227
|
}
|
|
244
|
-
|
|
228
|
+
// On Windows, fileName is relative whereas on Mac it's absolute, so we need
|
|
229
|
+
// to use path.resolve to build an absolute path
|
|
230
|
+
const source = path_1.default.join(path_1.default.resolve(componentSourceFile.fileName, absPath), path_1.default.basename(componentSourceFile.fileName));
|
|
245
231
|
if (!source) {
|
|
246
232
|
throw new InternalError(`Could not find source file for component ${component} - is this file included in the directory passed to \`figma connect <dir>\`?`);
|
|
247
233
|
}
|
|
@@ -381,15 +367,22 @@ function parseRenderFunction(exp, parserContext, propMappings) {
|
|
|
381
367
|
// Keep track of any props which are referenced in the example so that we can
|
|
382
368
|
// insert the appropriate `figma.properties` call in the JS template
|
|
383
369
|
const referencedProps = new Set();
|
|
384
|
-
function createPropPlaceholder(name, node, wrapInJsxExpression = false) {
|
|
385
|
-
|
|
370
|
+
function createPropPlaceholder({ name, node, wrapInJsxExpression = false, }) {
|
|
371
|
+
let propReferenceName = name;
|
|
372
|
+
// for nested prop references like `nested.prop`, we only want to look for
|
|
373
|
+
// the prop mapping of `nested`, but include the full `nested.prop` in the
|
|
374
|
+
// __PROP__ call
|
|
375
|
+
if (name.includes('.')) {
|
|
376
|
+
propReferenceName = name.split('.')[0];
|
|
377
|
+
}
|
|
378
|
+
const mappedProp = propMappings && propMappings[propReferenceName];
|
|
386
379
|
if (!mappedProp) {
|
|
387
|
-
throw new ParserError(`Could not find prop mapping for ${
|
|
380
|
+
throw new ParserError(`Could not find prop mapping for ${propReferenceName} in the props object`, {
|
|
388
381
|
sourceFile,
|
|
389
382
|
node,
|
|
390
383
|
});
|
|
391
384
|
}
|
|
392
|
-
referencedProps.add(
|
|
385
|
+
referencedProps.add(propReferenceName);
|
|
393
386
|
const callExpression = typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier('__PROP__'), undefined, [typescript_1.default.factory.createStringLiteral(name)]);
|
|
394
387
|
if (wrapInJsxExpression) {
|
|
395
388
|
return typescript_1.default.factory.createJsxExpression(undefined, callExpression);
|
|
@@ -415,8 +408,13 @@ function parseRenderFunction(exp, parserContext, propMappings) {
|
|
|
415
408
|
if (typescript_1.default.isIdentifier(propsParameter.name) &&
|
|
416
409
|
typescript_1.default.isPropertyAccessExpression(node) &&
|
|
417
410
|
node.expression.getText().startsWith(propsParameter.name.getText())) {
|
|
411
|
+
// nested notation e.g `props.nested.prop`
|
|
412
|
+
if (typescript_1.default.isPropertyAccessExpression(node.expression)) {
|
|
413
|
+
const name = `${node.expression.name.getText()}.${node.name.getText()}`;
|
|
414
|
+
return createPropPlaceholder({ name, node });
|
|
415
|
+
}
|
|
418
416
|
const name = node.name.getText();
|
|
419
|
-
return createPropPlaceholder(name, node);
|
|
417
|
+
return createPropPlaceholder({ name, node });
|
|
420
418
|
}
|
|
421
419
|
// `props[""]` notation
|
|
422
420
|
if (typescript_1.default.isIdentifier(propsParameter.name) &&
|
|
@@ -424,15 +422,15 @@ function parseRenderFunction(exp, parserContext, propMappings) {
|
|
|
424
422
|
node.expression.getText().startsWith(propsParameter.name.getText()) &&
|
|
425
423
|
typescript_1.default.isStringLiteral(node.argumentExpression)) {
|
|
426
424
|
const name = (0, compiler_1.stripQuotes)(node.argumentExpression);
|
|
427
|
-
return createPropPlaceholder(name, node);
|
|
425
|
+
return createPropPlaceholder({ name, node });
|
|
428
426
|
}
|
|
429
427
|
// object destructuring references
|
|
430
428
|
if (typescript_1.default.isObjectBindingPattern(propsParameter.name) &&
|
|
431
429
|
typescript_1.default.isJsxExpression(node) &&
|
|
432
430
|
node.expression &&
|
|
433
|
-
propsParameter.name.elements.find((el) =>
|
|
431
|
+
propsParameter.name.elements.find((el) => node.expression?.getText().startsWith(el.name.getText()))) {
|
|
434
432
|
const name = node.expression.getText();
|
|
435
|
-
return createPropPlaceholder(name, node, true);
|
|
433
|
+
return createPropPlaceholder({ name, node, wrapInJsxExpression: true });
|
|
436
434
|
}
|
|
437
435
|
// Replaces {...props} with all the prop mapped props we know about,
|
|
438
436
|
// e.g. <Button {...props} /> becomes:
|
|
@@ -455,7 +453,11 @@ function parseRenderFunction(exp, parserContext, propMappings) {
|
|
|
455
453
|
? Object.keys(propMappings)
|
|
456
454
|
.filter((prop) => !propsToExclude.includes(prop))
|
|
457
455
|
.map((prop) => {
|
|
458
|
-
return typescript_1.default.factory.createJsxAttribute(typescript_1.default.factory.createIdentifier(prop), createPropPlaceholder(
|
|
456
|
+
return typescript_1.default.factory.createJsxAttribute(typescript_1.default.factory.createIdentifier(prop), createPropPlaceholder({
|
|
457
|
+
name: prop,
|
|
458
|
+
node,
|
|
459
|
+
wrapInJsxExpression: true,
|
|
460
|
+
}));
|
|
459
461
|
})
|
|
460
462
|
: [];
|
|
461
463
|
if (propMappings) {
|
|
@@ -502,17 +504,26 @@ function parseRenderFunction(exp, parserContext, propMappings) {
|
|
|
502
504
|
// parser_template_helpers.ts)
|
|
503
505
|
exampleCode = exampleCode.replace(
|
|
504
506
|
// match " reactPropName={__PROP__("figmaPropName")}" and extract the names
|
|
505
|
-
/ ([A-Za-z0-9]+)=\{__PROP__\("([A-Za-z0-
|
|
507
|
+
/ ([A-Za-z0-9]+)=\{__PROP__\("([A-Za-z0-9_\.]+)"\)\}/g, (_match, reactPropName, figmaPropName) => {
|
|
506
508
|
return `\${_fcc_renderReactProp('${reactPropName}', ${figmaPropName})}`;
|
|
507
509
|
});
|
|
508
510
|
// Replace React children placeholders like `${__PROP__("propName")}` with
|
|
509
|
-
//
|
|
510
|
-
|
|
511
|
+
// calls to _fcc_renderReactChildren, which renders them correctly (see
|
|
512
|
+
// parser_template_helpers.ts)
|
|
513
|
+
exampleCode = exampleCode.replace(/\{__PROP__\("([A-Za-z_\.]+)"\)\}/g, (_match, figmaPropName) => {
|
|
514
|
+
return `\${_fcc_renderReactChildren(${figmaPropName})}`;
|
|
515
|
+
});
|
|
516
|
+
// Replace object values like `{ prop: __PROP__("propName") }` with
|
|
517
|
+
// `{ prop: ${propName} }`. These never need special treatment based on their type.
|
|
518
|
+
exampleCode = exampleCode.replace(/([A-Za-z0-9]+):\s+__PROP__\("([A-Za-z_\.]+)"\)/g, (_match, objectKey, figmaPropName) => {
|
|
519
|
+
return `${objectKey}: \${${figmaPropName}}`;
|
|
520
|
+
});
|
|
511
521
|
// Generate the template code
|
|
512
522
|
// Inject React-specific template helper functions
|
|
513
523
|
templateCode = (0, parser_template_helpers_1.getParsedTemplateHelpersString)() + '\n\n';
|
|
514
524
|
// Require the template API
|
|
515
525
|
templateCode += `const figma = require('figma')\n\n`;
|
|
526
|
+
let nestedLayerCount = 0;
|
|
516
527
|
// Then we output `const propName = figma.properties.<kind>('propName')` calls
|
|
517
528
|
// for each referenced prop, so these are accessible to the template code.
|
|
518
529
|
if (propMappings && referencedProps.size > 0) {
|
|
@@ -524,7 +535,20 @@ function parseRenderFunction(exp, parserContext, propMappings) {
|
|
|
524
535
|
node: exp,
|
|
525
536
|
});
|
|
526
537
|
}
|
|
527
|
-
|
|
538
|
+
if (propMapping.kind === intrinsics_1.IntrinsicKind.NestedProps) {
|
|
539
|
+
// the actual layer name in figma could have a bunch of special characters in it,
|
|
540
|
+
// and if we try to normalize it to a valid JS identifier, it could conflict with
|
|
541
|
+
// other variables in the template code. So we generate a unique variable name
|
|
542
|
+
// for each nested layer reference instead.
|
|
543
|
+
const nestedLayerRef = `nestedLayer${nestedLayerCount++}`;
|
|
544
|
+
templateCode += `const ${nestedLayerRef} = figma.currentLayer.__find__("${propMapping.args.layer}")\n`;
|
|
545
|
+
templateCode += `const ${prop} = {
|
|
546
|
+
${Object.entries(propMapping.args.props).map(([key, intrinsic]) => `${key}: ${(0, intrinsics_1.intrinsicToString)(intrinsic, nestedLayerRef)}\n`)}
|
|
547
|
+
}\n`;
|
|
548
|
+
}
|
|
549
|
+
else {
|
|
550
|
+
templateCode += `const ${prop} = ${(0, intrinsics_1.intrinsicToString)(propMapping)}\n`;
|
|
551
|
+
}
|
|
528
552
|
});
|
|
529
553
|
templateCode += '\n';
|
|
530
554
|
}
|
|
@@ -541,122 +565,141 @@ function parseRenderFunction(exp, parserContext, propMappings) {
|
|
|
541
565
|
};
|
|
542
566
|
}
|
|
543
567
|
exports.parseRenderFunction = parseRenderFunction;
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
568
|
+
function followIdentifierToStringLiteralDeclaration(node, parserContext, errMessage) {
|
|
569
|
+
const { checker } = parserContext;
|
|
570
|
+
let result = node;
|
|
571
|
+
if (node && typescript_1.default.isIdentifier(node)) {
|
|
572
|
+
const symbol = checker.getSymbolAtLocation(node);
|
|
573
|
+
if (symbol) {
|
|
574
|
+
const decl = symbol.valueDeclaration;
|
|
575
|
+
if (decl &&
|
|
576
|
+
typescript_1.default.isVariableDeclaration(decl) &&
|
|
577
|
+
decl.initializer &&
|
|
578
|
+
typescript_1.default.isStringLiteral(decl.initializer)) {
|
|
579
|
+
result = decl.initializer;
|
|
580
|
+
}
|
|
552
581
|
}
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
582
|
+
}
|
|
583
|
+
// If we followed the identifier to its declaration and it's not a string literal,
|
|
584
|
+
// throw an error
|
|
585
|
+
if (!result || !typescript_1.default.isStringLiteral(result)) {
|
|
586
|
+
throw new ParserError(errMessage, {
|
|
587
|
+
node: result,
|
|
588
|
+
sourceFile: parserContext.sourceFile,
|
|
560
589
|
});
|
|
561
|
-
}
|
|
590
|
+
}
|
|
591
|
+
return result;
|
|
562
592
|
}
|
|
563
|
-
function
|
|
564
|
-
|
|
565
|
-
|
|
593
|
+
function parseFigmaConnectArgs(node, parserContext) {
|
|
594
|
+
const required = true;
|
|
595
|
+
const first = (0, compiler_1.parseFunctionArgument)(node, parserContext, 0, (0, compiler_1.isOneOf)([typescript_1.default.isIdentifier, typescript_1.default.isPropertyAccessExpression, typescript_1.default.isStringLiteral]), required, `\`${intrinsics_1.FIGMA_CONNECT_CALL}\` must be called with a reference to a Component or a Figma Component URL as the first argument. Example usage:
|
|
596
|
+
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1')\``);
|
|
597
|
+
let figmaNodeUrlArg;
|
|
598
|
+
let componentArg;
|
|
599
|
+
let configObjArgIndex;
|
|
600
|
+
// This function has two signatures. If the first arg is a string literal, it's the Figma node URL, and
|
|
601
|
+
// it won't have a component reference.
|
|
602
|
+
if (typescript_1.default.isStringLiteral(first)) {
|
|
603
|
+
figmaNodeUrlArg = first;
|
|
604
|
+
componentArg = undefined;
|
|
605
|
+
configObjArgIndex = 1;
|
|
606
|
+
}
|
|
607
|
+
else {
|
|
608
|
+
// If the first argument is not a string literal, it must be a component reference,
|
|
609
|
+
// and the second argument must be the Figma node URL
|
|
610
|
+
componentArg = first;
|
|
611
|
+
configObjArgIndex = 2;
|
|
612
|
+
const invalidTypeErrorMsg = `The second argument to ${intrinsics_1.FIGMA_CONNECT_CALL}() must be a string literal (the URL of the Figma node). Example usage:
|
|
613
|
+
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1')\``;
|
|
614
|
+
let arg = (0, compiler_1.parseFunctionArgument)(node, parserContext, 1, (0, compiler_1.isOneOf)([typescript_1.default.isIdentifier, typescript_1.default.isStringLiteral]), required, invalidTypeErrorMsg);
|
|
615
|
+
figmaNodeUrlArg = followIdentifierToStringLiteralDeclaration(arg, parserContext, invalidTypeErrorMsg);
|
|
616
|
+
}
|
|
617
|
+
const configObjArg = (0, compiler_1.parseFunctionArgument)(node, parserContext, configObjArgIndex, typescript_1.default.isObjectLiteralExpression, false /* not required */, `The third argument to ${intrinsics_1.FIGMA_CONNECT_CALL}() must be an object literal. Example usage:
|
|
618
|
+
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', { render: () => <Button /> })\``);
|
|
619
|
+
return {
|
|
620
|
+
componentArg,
|
|
621
|
+
figmaNodeUrlArg,
|
|
622
|
+
configObjArg,
|
|
566
623
|
};
|
|
567
624
|
}
|
|
568
|
-
function
|
|
625
|
+
function parseConfigObjectArg(configArg, parserContext) {
|
|
626
|
+
if (!configArg) {
|
|
627
|
+
return {
|
|
628
|
+
propsArg: undefined,
|
|
629
|
+
exampleArg: undefined,
|
|
630
|
+
variantArg: undefined,
|
|
631
|
+
importsArg: undefined,
|
|
632
|
+
linksArg: undefined,
|
|
633
|
+
};
|
|
634
|
+
}
|
|
635
|
+
const propsArg = (0, compiler_1.parsePropertyOfType)({
|
|
636
|
+
objectLiteralNode: configArg,
|
|
637
|
+
propertyName: 'props',
|
|
638
|
+
predicate: typescript_1.default.isObjectLiteralExpression,
|
|
639
|
+
parserContext,
|
|
640
|
+
required: false,
|
|
641
|
+
errorMessage: `The 'props' property must be an object literal. Example usage:
|
|
642
|
+
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
|
|
643
|
+
props: {
|
|
644
|
+
disabled: figma.boolean('Disabled'),
|
|
645
|
+
text: figma.string('TextContent'),
|
|
646
|
+
}
|
|
647
|
+
})\``,
|
|
648
|
+
});
|
|
649
|
+
const exampleArg = (0, compiler_1.parsePropertyOfType)({
|
|
650
|
+
objectLiteralNode: configArg,
|
|
651
|
+
propertyName: 'example',
|
|
652
|
+
predicate: (0, compiler_1.isOneOf)([typescript_1.default.isArrowFunction, typescript_1.default.isFunctionExpression]),
|
|
653
|
+
parserContext,
|
|
654
|
+
required: false,
|
|
655
|
+
errorMessage: `The 'example' property must be an inline function or arrow function. Example usage:
|
|
656
|
+
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
|
|
657
|
+
example: () => <Button />
|
|
658
|
+
})\``,
|
|
659
|
+
});
|
|
660
|
+
const variantArg = (0, compiler_1.parsePropertyOfType)({
|
|
661
|
+
objectLiteralNode: configArg,
|
|
662
|
+
propertyName: 'variant',
|
|
663
|
+
predicate: typescript_1.default.isObjectLiteralExpression,
|
|
664
|
+
parserContext,
|
|
665
|
+
required: false,
|
|
666
|
+
errorMessage: `The 'variant' property must be an object literal. Example usage:
|
|
667
|
+
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
|
|
668
|
+
variant: {
|
|
669
|
+
"Has Icon": true
|
|
670
|
+
}
|
|
671
|
+
})\``,
|
|
672
|
+
});
|
|
673
|
+
const linksArg = (0, compiler_1.parsePropertyOfType)({
|
|
674
|
+
objectLiteralNode: configArg,
|
|
675
|
+
propertyName: 'links',
|
|
676
|
+
predicate: typescript_1.default.isArrayLiteralExpression,
|
|
677
|
+
parserContext,
|
|
678
|
+
required: false,
|
|
679
|
+
errorMessage: `The 'links' property must be an array literal. Example usage:
|
|
680
|
+
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
|
|
681
|
+
links: [
|
|
682
|
+
{ name: 'Storybook', url: 'https://storybook.com' }
|
|
683
|
+
]
|
|
684
|
+
})\``,
|
|
685
|
+
});
|
|
686
|
+
const importsArg = (0, compiler_1.parsePropertyOfType)({
|
|
687
|
+
objectLiteralNode: configArg,
|
|
688
|
+
propertyName: 'imports',
|
|
689
|
+
predicate: typescript_1.default.isArrayLiteralExpression,
|
|
690
|
+
parserContext,
|
|
691
|
+
required: false,
|
|
692
|
+
errorMessage: `The 'imports' property must be an array literal. Example usage:
|
|
693
|
+
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
|
|
694
|
+
imports: ['import { Button } from "./Button"']
|
|
695
|
+
})\``,
|
|
696
|
+
});
|
|
569
697
|
return {
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1')\``,
|
|
576
|
-
}),
|
|
577
|
-
parseFigmaNodeUrl: (node, parserContext) => {
|
|
578
|
-
const { checker } = parserContext;
|
|
579
|
-
const invalidTypeErrorMsg = `The second argument to ${intrinsics_1.FIGMA_CONNECT_CALL}() must be a string literal (the URL of the Figma node). Example usage:
|
|
580
|
-
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1')\``;
|
|
581
|
-
const index = 1;
|
|
582
|
-
const required = true;
|
|
583
|
-
let arg = (0, compiler_1.parseFunctionArgument)(node, parserContext, index, (0, compiler_1.isOneOf)([typescript_1.default.isIdentifier, typescript_1.default.isStringLiteral]), required, invalidTypeErrorMsg);
|
|
584
|
-
if (arg && typescript_1.default.isIdentifier(arg)) {
|
|
585
|
-
const symbol = checker.getSymbolAtLocation(arg);
|
|
586
|
-
if (symbol) {
|
|
587
|
-
const decl = symbol.valueDeclaration;
|
|
588
|
-
if (decl &&
|
|
589
|
-
typescript_1.default.isVariableDeclaration(decl) &&
|
|
590
|
-
decl.initializer &&
|
|
591
|
-
typescript_1.default.isStringLiteral(decl.initializer)) {
|
|
592
|
-
arg = decl.initializer;
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
// If we followed the identifier to its declaration and it's not a string literal,
|
|
597
|
-
// throw an error
|
|
598
|
-
if (!arg || !typescript_1.default.isStringLiteral(arg)) {
|
|
599
|
-
throw new ParserError(invalidTypeErrorMsg, {
|
|
600
|
-
node: arg,
|
|
601
|
-
sourceFile: parserContext.sourceFile,
|
|
602
|
-
});
|
|
603
|
-
}
|
|
604
|
-
return arg;
|
|
605
|
-
},
|
|
606
|
-
parseConfig: makeFunctionArgumentParser({
|
|
607
|
-
index: 2,
|
|
608
|
-
predicate: typescript_1.default.isObjectLiteralExpression,
|
|
609
|
-
required: false,
|
|
610
|
-
errorMessage: `The third argument to ${intrinsics_1.FIGMA_CONNECT_CALL}() must be an object literal. Example usage:
|
|
611
|
-
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', { render: () => <Button /> })\``,
|
|
612
|
-
}),
|
|
613
|
-
parseProps: makeConfigPropertyParser({
|
|
614
|
-
key: 'props',
|
|
615
|
-
predicate: typescript_1.default.isObjectLiteralExpression,
|
|
616
|
-
errorMessage: `The 'props' property must be an object literal. Example usage:
|
|
617
|
-
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
|
|
618
|
-
props: {
|
|
619
|
-
disabled: Figma.boolean('Disabled'),
|
|
620
|
-
text: Figma.string('TextContent'),
|
|
621
|
-
}
|
|
622
|
-
})\``,
|
|
623
|
-
}),
|
|
624
|
-
parseExample: makeConfigPropertyParser({
|
|
625
|
-
key: 'example',
|
|
626
|
-
predicate: (0, compiler_1.isOneOf)([typescript_1.default.isArrowFunction, typescript_1.default.isFunctionExpression]),
|
|
627
|
-
errorMessage: `The 'example' property must be an inline function or arrow function. Example usage:
|
|
628
|
-
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
|
|
629
|
-
render: () => <Button />
|
|
630
|
-
})\``,
|
|
631
|
-
}),
|
|
632
|
-
parseVariant: makeConfigPropertyParser({
|
|
633
|
-
key: 'variant',
|
|
634
|
-
predicate: typescript_1.default.isObjectLiteralExpression,
|
|
635
|
-
errorMessage: `The 'variant' property must be an object literal. Example usage:
|
|
636
|
-
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
|
|
637
|
-
variant: {
|
|
638
|
-
"Has Icon": true
|
|
639
|
-
}
|
|
640
|
-
})\``,
|
|
641
|
-
}),
|
|
642
|
-
parseLinks: makeConfigPropertyParser({
|
|
643
|
-
key: 'links',
|
|
644
|
-
predicate: typescript_1.default.isArrayLiteralExpression,
|
|
645
|
-
errorMessage: `The 'links' property must be an array literal. Example usage:
|
|
646
|
-
\`${intrinsics_1.FIGMA_CONNECT_CALL}(Button, 'https://www.figma.com/file/123?node-id=1-1', {
|
|
647
|
-
links: [
|
|
648
|
-
{ name: 'Storybook', url: 'https://storybook.com' }
|
|
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"']
|
|
658
|
-
})\``,
|
|
659
|
-
}),
|
|
698
|
+
propsArg,
|
|
699
|
+
exampleArg,
|
|
700
|
+
variantArg,
|
|
701
|
+
linksArg,
|
|
702
|
+
importsArg,
|
|
660
703
|
};
|
|
661
704
|
}
|
|
662
705
|
function getDefaultTemplate(componentMetadata) {
|
|
@@ -666,26 +709,21 @@ function getDefaultTemplate(componentMetadata) {
|
|
|
666
709
|
exports.getDefaultTemplate = getDefaultTemplate;
|
|
667
710
|
async function parseDoc(node, parserContext, repoUrl) {
|
|
668
711
|
const { checker, sourceFile, config } = parserContext;
|
|
669
|
-
// Parse the arguments to the `
|
|
670
|
-
const
|
|
712
|
+
// Parse the arguments to the `Figma.connect()` call
|
|
713
|
+
const { componentArg, figmaNodeUrlArg, configObjArg } = parseFigmaConnectArgs(node, parserContext);
|
|
671
714
|
// The ones with ! are definitely defined because their parser fn has required: true,
|
|
672
715
|
// but I couldn't work out how to model that in TypeScript
|
|
673
|
-
const
|
|
674
|
-
const figmaNodeUrlArg = args.parseFigmaNodeUrl(node, parserContext);
|
|
675
|
-
const configObjArg = args.parseConfig(node, parserContext);
|
|
676
|
-
const propsArg = configObjArg && args.parseProps(configObjArg, parserContext);
|
|
677
|
-
const exampleArg = configObjArg && args.parseExample(configObjArg, parserContext);
|
|
678
|
-
const variantArg = configObjArg && args.parseVariant(configObjArg, parserContext);
|
|
679
|
-
const linksArg = configObjArg && args.parseLinks(configObjArg, parserContext);
|
|
680
|
-
const importsArg = configObjArg && args.parseImports(configObjArg, parserContext);
|
|
716
|
+
const { propsArg, exampleArg, variantArg, linksArg, importsArg } = parseConfigObjectArg(configObjArg, parserContext);
|
|
681
717
|
let figmaNode = (0, compiler_1.stripQuotes)(figmaNodeUrlArg);
|
|
682
|
-
if (config
|
|
718
|
+
if (config.documentUrlSubstitutions) {
|
|
683
719
|
Object.entries(config.documentUrlSubstitutions).forEach(([from, to]) => {
|
|
684
720
|
figmaNode = figmaNode.replace(from, to);
|
|
685
721
|
});
|
|
686
722
|
}
|
|
687
|
-
const metadata =
|
|
688
|
-
|
|
723
|
+
const metadata = componentArg
|
|
724
|
+
? await parseComponentMetadata(componentArg, parserContext)
|
|
725
|
+
: undefined;
|
|
726
|
+
const props = propsArg ? (0, intrinsics_1.parsePropsObject)(propsArg, parserContext) : undefined;
|
|
689
727
|
const render = exampleArg ? parseRenderFunction(exampleArg, parserContext, props) : undefined;
|
|
690
728
|
const variant = variantArg ? parseVariant(variantArg, sourceFile, checker) : undefined;
|
|
691
729
|
const links = linksArg ? parseLinks(linksArg, parserContext) : undefined;
|
|
@@ -694,15 +732,18 @@ async function parseDoc(node, parserContext, repoUrl) {
|
|
|
694
732
|
resolvedImports = parseImports(importsArg, parserContext);
|
|
695
733
|
}
|
|
696
734
|
else {
|
|
697
|
-
// Use auto-generated imports
|
|
698
735
|
// If no template function was provided, construct one and add the import
|
|
699
736
|
// statement for the component
|
|
700
|
-
let imports = render?.imports
|
|
701
|
-
|
|
737
|
+
let imports = render?.imports
|
|
738
|
+
? render.imports
|
|
739
|
+
: metadata !== undefined
|
|
740
|
+
? getImportsForIdentifiers(parserContext, [metadata.component])
|
|
741
|
+
: [];
|
|
742
|
+
if (imports.length === 0 && metadata?.component) {
|
|
702
743
|
// If no imports were found, it might mean that the component is not imported, or
|
|
703
744
|
// that the `figma.connect` call is in the same file as the component. In the latter
|
|
704
745
|
// case - we'll want to generate one
|
|
705
|
-
const fileName = metadata.source.split(
|
|
746
|
+
const fileName = metadata.source.split(path_1.default.sep).pop()?.split('.')[0];
|
|
706
747
|
imports = [
|
|
707
748
|
{
|
|
708
749
|
statement: `import { ${metadata.component} } from './${fileName}'`,
|
|
@@ -720,18 +761,27 @@ async function parseDoc(node, parserContext, repoUrl) {
|
|
|
720
761
|
}
|
|
721
762
|
return imp.statement;
|
|
722
763
|
}) ?? [];
|
|
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`);
|
|
725
|
-
}
|
|
726
764
|
}
|
|
727
|
-
|
|
765
|
+
if (resolvedImports.length === 0 && metadata?.component) {
|
|
766
|
+
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`);
|
|
767
|
+
}
|
|
768
|
+
let template;
|
|
769
|
+
if (render?.code) {
|
|
770
|
+
template = render.code;
|
|
771
|
+
}
|
|
772
|
+
else if (metadata) {
|
|
773
|
+
template = getDefaultTemplate(metadata);
|
|
774
|
+
}
|
|
775
|
+
else {
|
|
776
|
+
throw new ParserError(`${intrinsics_1.FIGMA_CONNECT_CALL}() requires either a component argument or an example function`, { sourceFile, node });
|
|
777
|
+
}
|
|
728
778
|
return {
|
|
729
779
|
figmaNode,
|
|
730
780
|
label: 'React',
|
|
731
781
|
language: 'typescript',
|
|
732
|
-
component: metadata
|
|
733
|
-
source: (0, project_1.getRemoteFileUrl)(metadata.source, repoUrl),
|
|
734
|
-
sourceLocation: { line: metadata.line },
|
|
782
|
+
component: metadata?.component,
|
|
783
|
+
source: metadata?.source ? (0, project_1.getRemoteFileUrl)(metadata.source, repoUrl) : '',
|
|
784
|
+
sourceLocation: metadata?.line ? { line: metadata.line } : { line: -1 },
|
|
735
785
|
variant,
|
|
736
786
|
template,
|
|
737
787
|
templateData: {
|
|
@@ -748,7 +798,7 @@ async function parseDoc(node, parserContext, repoUrl) {
|
|
|
748
798
|
},
|
|
749
799
|
};
|
|
750
800
|
}
|
|
751
|
-
async function parse(program, file,
|
|
801
|
+
async function parse(program, file, config, absPath, repoUrl, debug) {
|
|
752
802
|
const sourceFile = program.getSourceFile(file);
|
|
753
803
|
if (!sourceFile) {
|
|
754
804
|
throw new InternalError(`Could not find source file for ${file}`);
|
|
@@ -757,6 +807,7 @@ async function parse(program, file, repoUrl, config, debug) {
|
|
|
757
807
|
checker: program.getTypeChecker(),
|
|
758
808
|
sourceFile,
|
|
759
809
|
config,
|
|
810
|
+
absPath,
|
|
760
811
|
};
|
|
761
812
|
const codeConnectObjects = [];
|
|
762
813
|
const nodes = [parserContext.sourceFile];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/react/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type FCCValue = string | number | boolean | undefined | ReturnType<typeof _fcc_jsxElement | typeof _fcc_function | typeof _fcc_identifier | typeof _fcc_object | typeof _fcc_templateString>;
|
|
2
|
+
export declare function _fcc_jsxElement(value: string): {
|
|
3
|
+
readonly value: string;
|
|
4
|
+
readonly type: "jsx-element";
|
|
5
|
+
};
|
|
6
|
+
export declare function _fcc_function(value: string): {
|
|
7
|
+
readonly value: string;
|
|
8
|
+
readonly type: "function";
|
|
9
|
+
};
|
|
10
|
+
export declare function _fcc_identifier(value: string): {
|
|
11
|
+
readonly value: string;
|
|
12
|
+
readonly type: "identifier";
|
|
13
|
+
};
|
|
14
|
+
export declare function _fcc_object(value: string): {
|
|
15
|
+
readonly value: string;
|
|
16
|
+
readonly type: "object";
|
|
17
|
+
};
|
|
18
|
+
export declare function _fcc_templateString(value: string): {
|
|
19
|
+
readonly value: string;
|
|
20
|
+
readonly type: "template-string";
|
|
21
|
+
};
|
|
22
|
+
export declare function getParsedTemplateHelpersString(): string;
|
|
23
|
+
//# sourceMappingURL=parser_template_helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser_template_helpers.d.ts","sourceRoot":"","sources":["../../src/react/parser_template_helpers.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT,UAAU,CACN,OAAO,eAAe,GACtB,OAAO,aAAa,GACpB,OAAO,eAAe,GACtB,OAAO,WAAW,GAClB,OAAO,mBAAmB,CAC7B,CAAA;AAEL,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM;;;EAK5C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM;;;EAK1C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM;;;EAK5C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM;;;EAKxC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM;;;EAKhD;AAqFD,wBAAgB,8BAA8B,WAY7C"}
|