@figma/code-connect 0.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 +449 -0
- package/bin/figma +5 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +41 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/connect.d.ts +3 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +214 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/common/api.d.ts +146 -0
- package/dist/common/api.d.ts.map +1 -0
- package/dist/common/api.js +3 -0
- package/dist/common/api.js.map +1 -0
- package/dist/common/compiler.d.ts +96 -0
- package/dist/common/compiler.d.ts.map +1 -0
- package/dist/common/compiler.js +281 -0
- package/dist/common/compiler.js.map +1 -0
- package/dist/common/external.d.ts +10 -0
- package/dist/common/external.d.ts.map +1 -0
- package/dist/common/external.js +53 -0
- package/dist/common/external.js.map +1 -0
- package/dist/common/figma_connect.d.ts +24 -0
- package/dist/common/figma_connect.d.ts.map +1 -0
- package/dist/common/figma_connect.js +3 -0
- package/dist/common/figma_connect.js.map +1 -0
- package/dist/common/intrinsics.d.ts +61 -0
- package/dist/common/intrinsics.d.ts.map +1 -0
- package/dist/common/intrinsics.js +239 -0
- package/dist/common/intrinsics.js.map +1 -0
- package/dist/common/logging.d.ts +25 -0
- package/dist/common/logging.d.ts.map +1 -0
- package/dist/common/logging.js +47 -0
- package/dist/common/logging.js.map +1 -0
- package/dist/common/parser.d.ts +77 -0
- package/dist/common/parser.d.ts.map +1 -0
- package/dist/common/parser.js +736 -0
- package/dist/common/parser.js.map +1 -0
- package/dist/common/parser_template_helpers.d.ts +2 -0
- package/dist/common/parser_template_helpers.d.ts.map +1 -0
- package/dist/common/parser_template_helpers.js +53 -0
- package/dist/common/parser_template_helpers.js.map +1 -0
- package/dist/common/project.d.ts +79 -0
- package/dist/common/project.d.ts.map +1 -0
- package/dist/common/project.js +171 -0
- package/dist/common/project.js.map +1 -0
- package/dist/connect/create.d.ts +8 -0
- package/dist/connect/create.d.ts.map +1 -0
- package/dist/connect/create.js +162 -0
- package/dist/connect/create.js.map +1 -0
- package/dist/connect/delete_docs.d.ts +11 -0
- package/dist/connect/delete_docs.d.ts.map +1 -0
- package/dist/connect/delete_docs.js +60 -0
- package/dist/connect/delete_docs.js.map +1 -0
- package/dist/connect/figma_rest_api.d.ts +28 -0
- package/dist/connect/figma_rest_api.d.ts.map +1 -0
- package/dist/connect/figma_rest_api.js +19 -0
- package/dist/connect/figma_rest_api.js.map +1 -0
- package/dist/connect/helpers.d.ts +13 -0
- package/dist/connect/helpers.d.ts.map +1 -0
- package/dist/connect/helpers.js +87 -0
- package/dist/connect/helpers.js.map +1 -0
- package/dist/connect/upload.d.ts +8 -0
- package/dist/connect/upload.d.ts.map +1 -0
- package/dist/connect/upload.js +62 -0
- package/dist/connect/upload.js.map +1 -0
- package/dist/connect/validation.d.ts +3 -0
- package/dist/connect/validation.d.ts.map +1 -0
- package/dist/connect/validation.js +241 -0
- package/dist/connect/validation.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/storybook/convert.d.ts +24 -0
- package/dist/storybook/convert.d.ts.map +1 -0
- package/dist/storybook/convert.js +280 -0
- package/dist/storybook/convert.js.map +1 -0
- package/dist/storybook/external.d.ts +32 -0
- package/dist/storybook/external.d.ts.map +1 -0
- package/dist/storybook/external.js +3 -0
- package/dist/storybook/external.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,239 @@
|
|
|
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.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_1 = require("./parser");
|
|
29
|
+
const compiler_1 = require("./compiler");
|
|
30
|
+
const compiler_2 = require("./compiler");
|
|
31
|
+
const compiler_3 = require("./compiler");
|
|
32
|
+
exports.API_PREFIX = 'figma';
|
|
33
|
+
exports.FIGMA_CONNECT_CALL = `${exports.API_PREFIX}.connect`;
|
|
34
|
+
var IntrinsicKind;
|
|
35
|
+
(function (IntrinsicKind) {
|
|
36
|
+
IntrinsicKind["Enum"] = "enum";
|
|
37
|
+
IntrinsicKind["String"] = "string";
|
|
38
|
+
IntrinsicKind["Boolean"] = "boolean";
|
|
39
|
+
IntrinsicKind["Instance"] = "instance";
|
|
40
|
+
IntrinsicKind["Children"] = "children";
|
|
41
|
+
})(IntrinsicKind || (exports.IntrinsicKind = IntrinsicKind = {}));
|
|
42
|
+
const Intrinsics = {};
|
|
43
|
+
/**
|
|
44
|
+
* These functions are used to convert "intrinsic" parser types (which are calls to helper functions
|
|
45
|
+
* like `Figma.boolean() in code)` to an object representing that intrinsic that we can serialize to JSON.
|
|
46
|
+
*
|
|
47
|
+
* Each call to `makeIntrinsic` should take a function from the {@link FigmaConnectAPI},
|
|
48
|
+
* ensuring that the name of the intrinsic that we're parsing matches the name of the function
|
|
49
|
+
*
|
|
50
|
+
* @param staticFunctionMember
|
|
51
|
+
* @param obj
|
|
52
|
+
*/
|
|
53
|
+
function makeIntrinsic(intrinsicName, obj) {
|
|
54
|
+
const name = `${exports.API_PREFIX}.${intrinsicName}`;
|
|
55
|
+
Intrinsics[name] = {
|
|
56
|
+
match: (exp) => ts.isCallExpression(exp) && exp.getText().includes(name),
|
|
57
|
+
...obj(name),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
makeIntrinsic('boolean', (name) => {
|
|
61
|
+
return {
|
|
62
|
+
parse: (exp, ctx) => {
|
|
63
|
+
const figmaPropNameIdentifier = exp.arguments?.[0];
|
|
64
|
+
(0, compiler_1.assertIsStringLiteral)(figmaPropNameIdentifier, ctx.sourceFile, `${name} takes at least one argument, which is the Figma property name`);
|
|
65
|
+
const valueMappingArg = exp.arguments?.[1];
|
|
66
|
+
let valueMapping;
|
|
67
|
+
if (valueMappingArg) {
|
|
68
|
+
(0, compiler_3.assertIsObjectLiteralExpression)(valueMappingArg, ctx.sourceFile, `${name} second argument should be an object literal, that sets values for 'true' and 'false'`);
|
|
69
|
+
valueMapping = (0, compiler_2.convertObjectLiteralToJs)(valueMappingArg, ctx.sourceFile, ctx.checker, (valueNode) => {
|
|
70
|
+
if (ts.isCallExpression(valueNode)) {
|
|
71
|
+
return parseIntrinsic(valueNode, ctx);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
kind: IntrinsicKind.Boolean,
|
|
77
|
+
args: {
|
|
78
|
+
figmaPropName: (0, compiler_1.stripQuotes)(figmaPropNameIdentifier),
|
|
79
|
+
valueMapping,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
makeIntrinsic('enum', (name) => {
|
|
86
|
+
return {
|
|
87
|
+
parse: (exp, ctx) => {
|
|
88
|
+
const { sourceFile, checker } = ctx;
|
|
89
|
+
const figmaPropNameIdentifier = exp.arguments?.[0];
|
|
90
|
+
(0, compiler_1.assertIsStringLiteral)(figmaPropNameIdentifier, sourceFile, `${name} takes at least one argument, which is the Figma property name`);
|
|
91
|
+
const valueMapping = exp.arguments?.[1];
|
|
92
|
+
(0, compiler_3.assertIsObjectLiteralExpression)(valueMapping, sourceFile, `${name} second argument should be an object literal, that maps Figma prop values to code`);
|
|
93
|
+
return {
|
|
94
|
+
kind: IntrinsicKind.Enum,
|
|
95
|
+
args: {
|
|
96
|
+
figmaPropName: (0, compiler_1.stripQuotes)(figmaPropNameIdentifier),
|
|
97
|
+
valueMapping: (0, compiler_2.convertObjectLiteralToJs)(valueMapping, sourceFile, checker, (valueNode) => {
|
|
98
|
+
if (ts.isCallExpression(valueNode)) {
|
|
99
|
+
return parseIntrinsic(valueNode, ctx);
|
|
100
|
+
}
|
|
101
|
+
}),
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
makeIntrinsic('string', (name) => {
|
|
108
|
+
return {
|
|
109
|
+
parse: (exp, ctx) => {
|
|
110
|
+
const { sourceFile } = ctx;
|
|
111
|
+
const figmaPropNameIdentifier = exp.arguments?.[0];
|
|
112
|
+
(0, compiler_1.assertIsStringLiteral)(figmaPropNameIdentifier, sourceFile, `${name} takes at least one argument, which is the Figma property name`);
|
|
113
|
+
return {
|
|
114
|
+
kind: IntrinsicKind.String,
|
|
115
|
+
args: {
|
|
116
|
+
figmaPropName: (0, compiler_1.stripQuotes)(figmaPropNameIdentifier),
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
});
|
|
122
|
+
makeIntrinsic('instance', (name) => {
|
|
123
|
+
return {
|
|
124
|
+
parse: (exp, ctx) => {
|
|
125
|
+
const { sourceFile } = ctx;
|
|
126
|
+
const figmaPropNameIdentifier = exp.arguments?.[0];
|
|
127
|
+
(0, compiler_1.assertIsStringLiteral)(figmaPropNameIdentifier, sourceFile, `${name} takes at least one argument, which is the Figma property name`);
|
|
128
|
+
return {
|
|
129
|
+
kind: IntrinsicKind.Instance,
|
|
130
|
+
args: {
|
|
131
|
+
figmaPropName: (0, compiler_1.stripQuotes)(figmaPropNameIdentifier),
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
});
|
|
137
|
+
makeIntrinsic('children', (name) => {
|
|
138
|
+
return {
|
|
139
|
+
parse: (exp, ctx) => {
|
|
140
|
+
const { sourceFile } = ctx;
|
|
141
|
+
const layerName = exp.arguments?.[0];
|
|
142
|
+
const layers = [];
|
|
143
|
+
if (ts.isStringLiteral(layerName)) {
|
|
144
|
+
layers.push((0, compiler_1.stripQuotes)(layerName));
|
|
145
|
+
}
|
|
146
|
+
else if (ts.isArrayLiteralExpression(layerName) && layerName.elements.length > 0) {
|
|
147
|
+
layerName.elements.forEach((el) => {
|
|
148
|
+
(0, compiler_1.assertIsStringLiteral)(el, sourceFile);
|
|
149
|
+
layers.push((0, compiler_1.stripQuotes)(el));
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
throw new parser_1.ParserError(`Invalid argument to ${name}, should be a string literal or an array of strings`, {
|
|
154
|
+
node: layerName,
|
|
155
|
+
sourceFile,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
kind: IntrinsicKind.Children,
|
|
160
|
+
args: {
|
|
161
|
+
layers,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
});
|
|
167
|
+
/**
|
|
168
|
+
* Parses a call expression to an intrinsic
|
|
169
|
+
*
|
|
170
|
+
* @param exp Expression to parse
|
|
171
|
+
* @param parserContext parser context
|
|
172
|
+
* @returns
|
|
173
|
+
*/
|
|
174
|
+
function parseIntrinsic(exp, parserContext) {
|
|
175
|
+
for (const key in Intrinsics) {
|
|
176
|
+
if (Intrinsics[key].match(exp)) {
|
|
177
|
+
return Intrinsics[key].parse(exp, parserContext);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
throw new parser_1.ParserError(`Unknown intrinsic: ${exp.getText()}`, {
|
|
181
|
+
node: exp,
|
|
182
|
+
sourceFile: parserContext.sourceFile,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
exports.parseIntrinsic = parseIntrinsic;
|
|
186
|
+
function valueMappingToString(valueMapping) {
|
|
187
|
+
// For enums (and booleans with a valueMapping provided), convert the
|
|
188
|
+
// value mapping to an object.
|
|
189
|
+
return ('{\n' +
|
|
190
|
+
Object.entries(valueMapping)
|
|
191
|
+
.map(([key, value]) => {
|
|
192
|
+
if (typeof value === 'object' && 'kind' in value) {
|
|
193
|
+
// Mappings can be nested, e.g. an enum value can be figma.instance(...)
|
|
194
|
+
return `"${key}": ${intrinsicToString(value)}`;
|
|
195
|
+
}
|
|
196
|
+
else if (typeof value === 'boolean' || typeof value === 'undefined') {
|
|
197
|
+
return `"${key}": ${value}`;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
return `"${key}": '${value}'`;
|
|
201
|
+
}
|
|
202
|
+
})
|
|
203
|
+
.join(',\n') +
|
|
204
|
+
'}');
|
|
205
|
+
}
|
|
206
|
+
exports.valueMappingToString = valueMappingToString;
|
|
207
|
+
function intrinsicToString({ kind, args }) {
|
|
208
|
+
switch (kind) {
|
|
209
|
+
case IntrinsicKind.String:
|
|
210
|
+
case IntrinsicKind.Instance: {
|
|
211
|
+
// Outputs:
|
|
212
|
+
// `const propName = figma.properties.string('propName')`, or
|
|
213
|
+
// `const propName = figma.properties.boolean('propName')`, or
|
|
214
|
+
// `const propName = figma.properties.instance('propName')`
|
|
215
|
+
return `figma.properties.${kind}('${args.figmaPropName}')`;
|
|
216
|
+
}
|
|
217
|
+
case IntrinsicKind.Boolean: {
|
|
218
|
+
if (args.valueMapping) {
|
|
219
|
+
const mappingString = valueMappingToString(args.valueMapping);
|
|
220
|
+
// Outputs: `const propName = figma.properties.boolean('propName', { ... mapping object from above ... })`
|
|
221
|
+
return `figma.properties.boolean('${args.figmaPropName}', ${mappingString})`;
|
|
222
|
+
}
|
|
223
|
+
return `figma.properties.boolean('${args.figmaPropName}')`;
|
|
224
|
+
}
|
|
225
|
+
case IntrinsicKind.Enum: {
|
|
226
|
+
const mappingString = valueMappingToString(args.valueMapping);
|
|
227
|
+
// Outputs: `const propName = figma.properties.enum('propName', { ... mapping object from above ... })`
|
|
228
|
+
return `figma.properties.enum('${args.figmaPropName}', ${mappingString})`;
|
|
229
|
+
}
|
|
230
|
+
case IntrinsicKind.Children: {
|
|
231
|
+
// Outputs: `const propName = figma.properties.children(["Layer 1", "Layer 2"])`
|
|
232
|
+
return `figma.properties.children([${args.layers.map((layerName) => `"${layerName}"`).join(',')}])`;
|
|
233
|
+
}
|
|
234
|
+
default:
|
|
235
|
+
throw new parser_1.InternalError(`Unknown intrinsic: ${kind}`);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
exports.intrinsicToString = intrinsicToString;
|
|
239
|
+
//# sourceMappingURL=intrinsics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intrinsics.js","sourceRoot":"","sources":["../../src/common/intrinsics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export declare const error: chalk.Chalk;
|
|
3
|
+
export declare const success: chalk.Chalk;
|
|
4
|
+
export declare const info: chalk.Chalk;
|
|
5
|
+
export declare const warn: chalk.Chalk;
|
|
6
|
+
export declare const debug: chalk.Chalk;
|
|
7
|
+
export declare const verbose: chalk.Chalk;
|
|
8
|
+
export declare const highlight: chalk.Chalk;
|
|
9
|
+
export declare const reset: chalk.Chalk;
|
|
10
|
+
export declare const underline: chalk.Chalk;
|
|
11
|
+
export declare enum LogLevel {
|
|
12
|
+
Nothing = 0,
|
|
13
|
+
Error = 1,
|
|
14
|
+
Warn = 2,
|
|
15
|
+
Info = 3,
|
|
16
|
+
Debug = 4
|
|
17
|
+
}
|
|
18
|
+
export declare const logger: {
|
|
19
|
+
setLogLevel: (level: LogLevel) => void;
|
|
20
|
+
error: (...msgs: unknown[]) => void;
|
|
21
|
+
warn: (...msgs: unknown[]) => void;
|
|
22
|
+
info: (...msgs: unknown[]) => void;
|
|
23
|
+
debug: (...msgs: unknown[]) => void;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/common/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,KAAK,aAAY,CAAA;AAC9B,eAAO,MAAM,OAAO,aAAc,CAAA;AAClC,eAAO,MAAM,IAAI,aAAc,CAAA;AAC/B,eAAO,MAAM,IAAI,aAAe,CAAA;AAChC,eAAO,MAAM,KAAK,aAAa,CAAA;AAC/B,eAAO,MAAM,OAAO,aAAa,CAAA;AACjC,eAAO,MAAM,SAAS,aAAa,CAAA;AACnC,eAAO,MAAM,KAAK,aAAc,CAAA;AAChC,eAAO,MAAM,SAAS,aAAkB,CAAA;AAExC,oBAAY,QAAQ;IAClB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAID,eAAO,MAAM,MAAM;yBACI,QAAQ;qBAGZ,OAAO,EAAE;oBAGV,OAAO,EAAE;oBAGT,OAAO,EAAE;qBAGR,OAAO,EAAE;CAG3B,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logger = exports.LogLevel = exports.underline = exports.reset = exports.highlight = exports.verbose = exports.debug = exports.warn = exports.info = exports.success = exports.error = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
exports.error = chalk_1.default.red;
|
|
9
|
+
exports.success = chalk_1.default.green;
|
|
10
|
+
exports.info = chalk_1.default.white;
|
|
11
|
+
exports.warn = chalk_1.default.yellow;
|
|
12
|
+
exports.debug = chalk_1.default.gray;
|
|
13
|
+
exports.verbose = chalk_1.default.cyan;
|
|
14
|
+
exports.highlight = chalk_1.default.bold;
|
|
15
|
+
exports.reset = chalk_1.default.reset;
|
|
16
|
+
exports.underline = chalk_1.default.underline;
|
|
17
|
+
var LogLevel;
|
|
18
|
+
(function (LogLevel) {
|
|
19
|
+
LogLevel[LogLevel["Nothing"] = 0] = "Nothing";
|
|
20
|
+
LogLevel[LogLevel["Error"] = 1] = "Error";
|
|
21
|
+
LogLevel[LogLevel["Warn"] = 2] = "Warn";
|
|
22
|
+
LogLevel[LogLevel["Info"] = 3] = "Info";
|
|
23
|
+
LogLevel[LogLevel["Debug"] = 4] = "Debug";
|
|
24
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
25
|
+
let logLevel = LogLevel.Info;
|
|
26
|
+
exports.logger = {
|
|
27
|
+
setLogLevel: (level) => {
|
|
28
|
+
logLevel = level;
|
|
29
|
+
},
|
|
30
|
+
error: (...msgs) => {
|
|
31
|
+
if (logLevel >= LogLevel.Error)
|
|
32
|
+
console.error((0, exports.error)(...msgs));
|
|
33
|
+
},
|
|
34
|
+
warn: (...msgs) => {
|
|
35
|
+
if (logLevel >= LogLevel.Warn)
|
|
36
|
+
console.warn((0, exports.warn)(...msgs));
|
|
37
|
+
},
|
|
38
|
+
info: (...msgs) => {
|
|
39
|
+
if (logLevel >= LogLevel.Info)
|
|
40
|
+
console.info((0, exports.info)(...msgs));
|
|
41
|
+
},
|
|
42
|
+
debug: (...msgs) => {
|
|
43
|
+
if (logLevel >= LogLevel.Debug)
|
|
44
|
+
console.debug((0, exports.debug)(...msgs));
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/common/logging.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAEZ,QAAA,KAAK,GAAG,eAAK,CAAC,GAAG,CAAA;AACjB,QAAA,OAAO,GAAG,eAAK,CAAC,KAAK,CAAA;AACrB,QAAA,IAAI,GAAG,eAAK,CAAC,KAAK,CAAA;AAClB,QAAA,IAAI,GAAG,eAAK,CAAC,MAAM,CAAA;AACnB,QAAA,KAAK,GAAG,eAAK,CAAC,IAAI,CAAA;AAClB,QAAA,OAAO,GAAG,eAAK,CAAC,IAAI,CAAA;AACpB,QAAA,SAAS,GAAG,eAAK,CAAC,IAAI,CAAA;AACtB,QAAA,KAAK,GAAG,eAAK,CAAC,KAAK,CAAA;AACnB,QAAA,SAAS,GAAG,eAAK,CAAC,SAAS,CAAA;AAExC,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,6CAAW,CAAA;IACX,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;AACX,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB;AAED,IAAI,QAAQ,GAAa,QAAQ,CAAC,IAAI,CAAA;AAEzB,QAAA,MAAM,GAAG;IACpB,WAAW,EAAE,CAAC,KAAe,EAAE,EAAE;QAC/B,QAAQ,GAAG,KAAK,CAAA;IAClB,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAC/D,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC3B,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAA,YAAI,EAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAC5D,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC3B,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAA,YAAI,EAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAC5D,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAC/D,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { FigmaConnectConfig } from './project';
|
|
3
|
+
import { Intrinsic } from './intrinsics';
|
|
4
|
+
interface ParserErrorContext {
|
|
5
|
+
sourceFile: ts.SourceFile;
|
|
6
|
+
node: ts.Node | undefined;
|
|
7
|
+
}
|
|
8
|
+
export declare class ParserError extends Error {
|
|
9
|
+
sourceFilePosition: ts.LineAndCharacter | null;
|
|
10
|
+
sourceFileName: string;
|
|
11
|
+
constructor(message: string, context?: ParserErrorContext);
|
|
12
|
+
toString(): string;
|
|
13
|
+
toDebugString(): string;
|
|
14
|
+
}
|
|
15
|
+
export declare class InternalError extends ParserError {
|
|
16
|
+
constructor(message: string);
|
|
17
|
+
}
|
|
18
|
+
export interface ParserContext {
|
|
19
|
+
checker: ts.TypeChecker;
|
|
20
|
+
sourceFile: ts.SourceFile;
|
|
21
|
+
config: FigmaConnectConfig | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Parsers the `props` field of a `Figma.connect()` call, returning a mapping of
|
|
25
|
+
* prop names to their respective intrinsic types
|
|
26
|
+
*
|
|
27
|
+
* @param objectLiteral An object literal expression
|
|
28
|
+
* @param parserContext Parser context
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
export declare function parsePropsObject(objectLiteral: ts.ObjectLiteralExpression, parserContext: ParserContext): PropMappings;
|
|
32
|
+
export type PropMappings = Record<string, Intrinsic>;
|
|
33
|
+
/**
|
|
34
|
+
* Extract metadata about the referenced React component. Used by both the
|
|
35
|
+
* Figmadoc and Storybook commands.
|
|
36
|
+
*
|
|
37
|
+
* @param parserContext Parser context
|
|
38
|
+
* @param componentSymbol The ts.Symbol from the metadata referencing the
|
|
39
|
+
* component being documented
|
|
40
|
+
* @param node The node being parsed. Used for error logging.
|
|
41
|
+
* @returns Metadata object
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseComponentMetadata(node: ts.PropertyAccessExpression | ts.Identifier | ts.Expression, { checker, sourceFile }: ParserContext): Promise<{
|
|
44
|
+
source: string;
|
|
45
|
+
line: number;
|
|
46
|
+
component: string;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Checks if a file contains figmadoc by looking for the `Figma.connect()` function call
|
|
50
|
+
*
|
|
51
|
+
* @param program
|
|
52
|
+
* @param file
|
|
53
|
+
* @returns
|
|
54
|
+
*/
|
|
55
|
+
export declare function isFigmaConnectFile(program: ts.Program, file: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Parses the render function passed to `Figma.connect()`, extracting the code and
|
|
58
|
+
* any import statements matching the JSX elements used in the function body
|
|
59
|
+
*
|
|
60
|
+
* @param exp A function or arrow function expression
|
|
61
|
+
* @param parserContext Parser context
|
|
62
|
+
* @param propMappings Prop mappings object as returned by parseProps
|
|
63
|
+
*
|
|
64
|
+
* @returns The code of the render function and a list of imports
|
|
65
|
+
*/
|
|
66
|
+
export declare function parseRenderFunction(exp: ts.ArrowFunction | ts.FunctionExpression | ts.FunctionDeclaration, parserContext: ParserContext, propMappings?: PropMappings): {
|
|
67
|
+
code: string;
|
|
68
|
+
imports: {
|
|
69
|
+
statement: string;
|
|
70
|
+
file: string;
|
|
71
|
+
}[];
|
|
72
|
+
nestable: boolean;
|
|
73
|
+
};
|
|
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[]>;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +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"}
|