@figma/code-connect 1.0.6 → 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/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/common/project.d.ts +86 -0
- package/dist/common/project.d.ts.map +1 -0
- package/dist/common/project.js +138 -0
- package/dist/common/project.js.map +1 -0
- 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.map +1 -1
- package/dist/connect/wizard/helpers.js +18 -14
- 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 +137 -295
- 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 +50 -23
- package/dist/typescript/compiler.js.map +1 -1
- package/package.json +27 -7
package/dist/commands/connect.js
CHANGED
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getCodeConnectObjects = exports.getDir = exports.getAccessToken = exports.addConnectCommandToProgram = void 0;
|
|
7
|
-
const parser_1 = require("../react/parser");
|
|
8
7
|
const fs_1 = __importDefault(require("fs"));
|
|
9
8
|
const upload_1 = require("../connect/upload");
|
|
10
9
|
const validation_1 = require("../connect/validation");
|
|
@@ -19,6 +18,9 @@ const zod_validation_error_1 = require("zod-validation-error");
|
|
|
19
18
|
const parser_executable_types_1 = require("../connect/parser_executable_types");
|
|
20
19
|
const updates_1 = require("../common/updates");
|
|
21
20
|
const helpers_1 = require("../connect/helpers");
|
|
21
|
+
const parser_1 = require("../html/parser");
|
|
22
|
+
const parser_common_1 = require("../connect/parser_common");
|
|
23
|
+
const parser_2 = require("../react/parser");
|
|
22
24
|
function addBaseCommand(command, name, description) {
|
|
23
25
|
return command
|
|
24
26
|
.command(name)
|
|
@@ -51,7 +53,9 @@ function addConnectCommandToProgram(program) {
|
|
|
51
53
|
.option('--node <link_to_node>', 'specify the node to unpublish. This will unpublish for both React and Storybook.')
|
|
52
54
|
.option('-l --label <label>', 'label to unpublish for')
|
|
53
55
|
.action((0, updates_1.withUpdateCheck)(handleUnpublish));
|
|
54
|
-
addBaseCommand(connectCommand, 'parse', 'Run Code Connect locally to find any files that have figma connections, then converts them to JSON and outputs to stdout.')
|
|
56
|
+
addBaseCommand(connectCommand, 'parse', 'Run Code Connect locally to find any files that have figma connections, then converts them to JSON and outputs to stdout.')
|
|
57
|
+
.option('-l --label <label>', 'label to apply to the parsed files')
|
|
58
|
+
.action((0, updates_1.withUpdateCheck)(handleParse));
|
|
55
59
|
addBaseCommand(connectCommand, 'create', 'Generate a Code Connect file with boilerplate in the current directory for a Figma node URL')
|
|
56
60
|
.argument('<figma-node-url>', 'Figma node URL to create the Code Connect file from')
|
|
57
61
|
.action((0, updates_1.withUpdateCheck)(handleCreate));
|
|
@@ -103,7 +107,7 @@ function transformDocFromParser(doc, remoteUrl, config) {
|
|
|
103
107
|
figmaNode,
|
|
104
108
|
};
|
|
105
109
|
}
|
|
106
|
-
async function getCodeConnectObjects(
|
|
110
|
+
async function getCodeConnectObjects(cmd, projectInfo, silent = false) {
|
|
107
111
|
if (cmd.jsonFile) {
|
|
108
112
|
try {
|
|
109
113
|
return JSON.parse(fs_1.default.readFileSync(cmd.jsonFile, 'utf8'));
|
|
@@ -112,50 +116,89 @@ async function getCodeConnectObjects(dir, cmd, projectInfo, silent = false) {
|
|
|
112
116
|
logging_1.logger.error('Failed to parse JSON file:', e);
|
|
113
117
|
}
|
|
114
118
|
}
|
|
119
|
+
let codeConnectObjects = [];
|
|
115
120
|
if (projectInfo.config.parser === 'react') {
|
|
116
|
-
|
|
121
|
+
codeConnectObjects = await getReactCodeConnectObjects(projectInfo, cmd, silent);
|
|
117
122
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
123
|
+
else if (projectInfo.config.parser === 'html') {
|
|
124
|
+
codeConnectObjects = await getCodeConnectObjectsFromParseFn({
|
|
125
|
+
parseFn: parser_1.parseHtmlDoc,
|
|
126
|
+
fileExtension: 'ts',
|
|
127
|
+
projectInfo,
|
|
128
|
+
cmd,
|
|
129
|
+
silent,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const payload = {
|
|
134
|
+
mode: 'PARSE',
|
|
135
|
+
paths: projectInfo.files,
|
|
136
|
+
config: projectInfo.config,
|
|
137
|
+
};
|
|
138
|
+
try {
|
|
139
|
+
const stdout = await (0, parser_executables_1.callParser)(
|
|
140
|
+
// We use `as` because the React parser makes the types difficult
|
|
141
|
+
// TODO remove once React is an executable parser
|
|
142
|
+
projectInfo.config, payload, projectInfo.absPath);
|
|
143
|
+
const parsed = parser_executable_types_1.ParseResponsePayload.parse(stdout);
|
|
144
|
+
const { hasErrors } = (0, parser_executables_1.handleMessages)(parsed.messages);
|
|
145
|
+
if (hasErrors) {
|
|
146
|
+
(0, logging_1.exitWithError)('Errors encountered calling parser, exiting');
|
|
147
|
+
}
|
|
148
|
+
codeConnectObjects = parsed.docs.map((doc) => ({
|
|
149
|
+
...transformDocFromParser(doc, projectInfo.remoteUrl, projectInfo.config),
|
|
150
|
+
metadata: {
|
|
151
|
+
cliVersion: require('../../package.json').version,
|
|
152
|
+
},
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
// zod-validation-error formats the error message into a readable format
|
|
157
|
+
(0, logging_1.exitWithError)(`Error returned from parser: ${(0, zod_validation_error_1.fromError)(e)}. Try re-running the command with --verbose for more information.`);
|
|
132
158
|
}
|
|
133
|
-
return parsed.docs.map((doc) => ({
|
|
134
|
-
...transformDocFromParser(doc, projectInfo.remoteUrl, projectInfo.config),
|
|
135
|
-
metadata: {
|
|
136
|
-
cliVersion: require('../../package.json').version,
|
|
137
|
-
},
|
|
138
|
-
}));
|
|
139
159
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
160
|
+
if (cmd.label || projectInfo.config.label) {
|
|
161
|
+
logging_1.logger.info(`Using label "${cmd.label || projectInfo.config.label}"`);
|
|
162
|
+
codeConnectObjects.forEach((doc) => {
|
|
163
|
+
doc.label = cmd.label || projectInfo.config.label || doc.label;
|
|
164
|
+
});
|
|
143
165
|
}
|
|
166
|
+
return codeConnectObjects;
|
|
144
167
|
}
|
|
145
168
|
exports.getCodeConnectObjects = getCodeConnectObjects;
|
|
146
|
-
//
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
async function
|
|
169
|
+
// React/Storybook and HTML parsers are handled as special cases for now, they
|
|
170
|
+
// do not use the parser executable model but instead directly call a function
|
|
171
|
+
// in the code base. We may want to transition them to that model in future.
|
|
172
|
+
async function getCodeConnectObjectsFromParseFn({
|
|
173
|
+
/** The function used to parse a source file into a Code Connect object */
|
|
174
|
+
parseFn,
|
|
175
|
+
/** Optional function used to resolve imports in a source file */
|
|
176
|
+
resolveImportsFn,
|
|
177
|
+
/** The file extension to filter for when checking if files should be parsed */
|
|
178
|
+
fileExtension,
|
|
179
|
+
/** Project info */
|
|
180
|
+
projectInfo,
|
|
181
|
+
/** The commander command object */
|
|
182
|
+
cmd,
|
|
183
|
+
/** Silences console output */
|
|
184
|
+
silent = false, }) {
|
|
150
185
|
const codeConnectObjects = [];
|
|
151
|
-
const
|
|
152
|
-
const { files, remoteUrl, config,
|
|
153
|
-
for (const file of files.filter((f) => (0,
|
|
186
|
+
const tsProgram = (0, project_1.getTsProgram)(projectInfo);
|
|
187
|
+
const { files, remoteUrl, config, absPath } = projectInfo;
|
|
188
|
+
for (const file of files.filter((f) => (0, parser_common_1.isFigmaConnectFile)(tsProgram, f, fileExtension))) {
|
|
154
189
|
try {
|
|
155
|
-
const docs = await (0,
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
190
|
+
const docs = await (0, parser_common_1.parseCodeConnect)({
|
|
191
|
+
program: tsProgram,
|
|
192
|
+
file,
|
|
193
|
+
config,
|
|
194
|
+
parseFn,
|
|
195
|
+
resolveImportsFn,
|
|
196
|
+
absPath,
|
|
197
|
+
parseOptions: {
|
|
198
|
+
repoUrl: remoteUrl,
|
|
199
|
+
debug: cmd.verbose,
|
|
200
|
+
silent,
|
|
201
|
+
},
|
|
159
202
|
});
|
|
160
203
|
codeConnectObjects.push(...docs);
|
|
161
204
|
if (!silent || cmd.verbose) {
|
|
@@ -165,7 +208,7 @@ async function getReactCodeConnectObjects(dir, projectInfo, cmd, silent = false)
|
|
|
165
208
|
catch (e) {
|
|
166
209
|
if (!silent || cmd.verbose) {
|
|
167
210
|
logging_1.logger.error(`❌ ${file}`);
|
|
168
|
-
if (e instanceof
|
|
211
|
+
if (e instanceof parser_common_1.ParserError) {
|
|
169
212
|
if (cmd.verbose) {
|
|
170
213
|
console.trace(e);
|
|
171
214
|
}
|
|
@@ -178,12 +221,23 @@ async function getReactCodeConnectObjects(dir, projectInfo, cmd, silent = false)
|
|
|
178
221
|
console.trace(e);
|
|
179
222
|
}
|
|
180
223
|
else {
|
|
181
|
-
logging_1.logger.error(new
|
|
224
|
+
logging_1.logger.error(new parser_common_1.InternalError(String(e)).toString());
|
|
182
225
|
}
|
|
183
226
|
}
|
|
184
227
|
}
|
|
185
228
|
}
|
|
186
229
|
}
|
|
230
|
+
return codeConnectObjects;
|
|
231
|
+
}
|
|
232
|
+
async function getReactCodeConnectObjects(projectInfo, cmd, silent = false) {
|
|
233
|
+
const codeConnectObjects = await getCodeConnectObjectsFromParseFn({
|
|
234
|
+
parseFn: parser_2.parseReactDoc,
|
|
235
|
+
resolveImportsFn: parser_2.findAndResolveImports,
|
|
236
|
+
fileExtension: 'tsx',
|
|
237
|
+
projectInfo,
|
|
238
|
+
cmd,
|
|
239
|
+
silent,
|
|
240
|
+
});
|
|
187
241
|
const storybookCodeConnectObjects = await (0, convert_1.convertStorybookFiles)({
|
|
188
242
|
projectInfo: (0, project_1.getReactProjectInfo)(projectInfo),
|
|
189
243
|
});
|
|
@@ -194,7 +248,7 @@ async function handlePublish(cmd) {
|
|
|
194
248
|
setupHandler(cmd);
|
|
195
249
|
let dir = getDir(cmd);
|
|
196
250
|
const projectInfo = await (0, project_1.getProjectInfo)(dir, cmd.config);
|
|
197
|
-
const codeConnectObjects = await getCodeConnectObjects(
|
|
251
|
+
const codeConnectObjects = await getCodeConnectObjects(cmd, projectInfo);
|
|
198
252
|
if (codeConnectObjects.length === 0) {
|
|
199
253
|
logging_1.logger.warn(`No Code Connect files found in ${dir} - Make sure you have configured \`include\` and \`exclude\` in your figma.config.json file correctly, or that you are running in a directory that contains Code Connect files.`);
|
|
200
254
|
process.exit(0);
|
|
@@ -220,12 +274,6 @@ async function handlePublish(cmd) {
|
|
|
220
274
|
logging_1.logger.info(`All Code Connect files are valid (${time}ms)`);
|
|
221
275
|
}
|
|
222
276
|
}
|
|
223
|
-
if (cmd.label || projectInfo.config.label) {
|
|
224
|
-
logging_1.logger.info(`Using label ${cmd.label || projectInfo.config.label}`);
|
|
225
|
-
codeConnectObjects.forEach((doc) => {
|
|
226
|
-
doc.label = cmd.label || projectInfo.config.label || doc.label;
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
277
|
if (cmd.dryRun) {
|
|
230
278
|
logging_1.logger.info(`Dry run complete`);
|
|
231
279
|
process.exit(0);
|
|
@@ -255,7 +303,7 @@ async function handleUnpublish(cmd) {
|
|
|
255
303
|
}
|
|
256
304
|
else {
|
|
257
305
|
const projectInfo = await (0, project_1.getProjectInfo)(dir, cmd.config);
|
|
258
|
-
const codeConnectObjects = await getCodeConnectObjects(
|
|
306
|
+
const codeConnectObjects = await getCodeConnectObjects(cmd, projectInfo);
|
|
259
307
|
nodesToDeleteRelevantInfo = codeConnectObjects.map((doc) => ({
|
|
260
308
|
figmaNode: doc.figmaNode,
|
|
261
309
|
label: cmd.label || projectInfo.config.label || doc.label,
|
|
@@ -278,7 +326,7 @@ async function handleParse(cmd) {
|
|
|
278
326
|
setupHandler(cmd);
|
|
279
327
|
const dir = cmd.dir ?? process.cwd();
|
|
280
328
|
const projectInfo = await (0, project_1.getProjectInfo)(dir, cmd.config);
|
|
281
|
-
const codeConnectObjects = await getCodeConnectObjects(
|
|
329
|
+
const codeConnectObjects = await getCodeConnectObjects(cmd, projectInfo);
|
|
282
330
|
if (cmd.dryRun) {
|
|
283
331
|
logging_1.logger.info(`Dry run complete`);
|
|
284
332
|
process.exit(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export interface CodeConnectConfig {
|
|
3
|
+
/**
|
|
4
|
+
* Specify glob patterns for files (relative to the project root) to be
|
|
5
|
+
* included when looking for source files. If not specified, all files
|
|
6
|
+
* (except any specified in `exclude`) will be included.
|
|
7
|
+
*/
|
|
8
|
+
include?: string[];
|
|
9
|
+
/**
|
|
10
|
+
* Specify glob patterns for files (relative to the project root) to be
|
|
11
|
+
* excluded when looking for source files. If not specified, only
|
|
12
|
+
* `node_modules` will be excluded.
|
|
13
|
+
*/
|
|
14
|
+
exclude?: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Optional object of substitutions applied to document URLs (in the format {
|
|
17
|
+
* fromString, toString }) for testing (e.g. remapping a production URL to a
|
|
18
|
+
* staging URL). Not publicly documented.
|
|
19
|
+
*/
|
|
20
|
+
documentUrlSubstitutions?: Record<string, string>;
|
|
21
|
+
/**
|
|
22
|
+
* React specific configuration
|
|
23
|
+
*/
|
|
24
|
+
react?: {
|
|
25
|
+
/**
|
|
26
|
+
* Maps imports from their path on disk to the specified path.
|
|
27
|
+
* This will rewrite the imports in generated code examples, so it works with
|
|
28
|
+
* relative imports such as `import { Button } from "./"`.
|
|
29
|
+
*
|
|
30
|
+
* Example: { "src/components/*": "@ui/components" }
|
|
31
|
+
* Would rewrite imports for components located in `src/components` to `@ui/components` in
|
|
32
|
+
* generated code examples.
|
|
33
|
+
* `import { Button } from "./"` -> `import { Button } from "@ui/components/Button"`
|
|
34
|
+
*/
|
|
35
|
+
importPaths?: Record<string, string>;
|
|
36
|
+
/**
|
|
37
|
+
* For import resolution - this is a temporary solution to support projects that use
|
|
38
|
+
* pnpm workspaces, as the compiler doesn't seem to be able to resolve imports when
|
|
39
|
+
* the package in node_modules is a symlink. Need to look into this more and find a
|
|
40
|
+
* better solution.
|
|
41
|
+
*/
|
|
42
|
+
paths?: Record<string, string[]>;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Storybook specific configuration
|
|
46
|
+
*/
|
|
47
|
+
storybook?: {
|
|
48
|
+
/**
|
|
49
|
+
* The URL of the Storybook instance for the project
|
|
50
|
+
*/
|
|
51
|
+
url: string;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export declare function getGitRemoteURL(repoPath: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Finds the URL of a remote file
|
|
57
|
+
* @param filePath absolute file path on disk
|
|
58
|
+
* @param repoURL remote URL
|
|
59
|
+
* @returns
|
|
60
|
+
*/
|
|
61
|
+
export declare function getRemoteFileUrl(filePath: string, repoURL?: string): string;
|
|
62
|
+
export declare function getStorybookUrl(filePath: string, storybookUrl: string): string;
|
|
63
|
+
export interface ProjectInfo {
|
|
64
|
+
/**
|
|
65
|
+
* Absolute path of the project directory
|
|
66
|
+
*/
|
|
67
|
+
absPath: string;
|
|
68
|
+
/**
|
|
69
|
+
* An array of all tsx files in the project
|
|
70
|
+
*/
|
|
71
|
+
files: string[];
|
|
72
|
+
/**
|
|
73
|
+
* The git remote URL of the project
|
|
74
|
+
*/
|
|
75
|
+
remoteUrl: string;
|
|
76
|
+
/**
|
|
77
|
+
* The parsed Code Connect config file
|
|
78
|
+
*/
|
|
79
|
+
config?: CodeConnectConfig;
|
|
80
|
+
/**
|
|
81
|
+
* TS program containing all tsx files in the project
|
|
82
|
+
*/
|
|
83
|
+
tsProgram: ts.Program;
|
|
84
|
+
}
|
|
85
|
+
export declare function resolveImportPath(filePath: string, config: CodeConnectConfig): string | null;
|
|
86
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["project.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,YAAY,CAAA;AAI3B,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjD;;OAEG;IACH,KAAK,CAAC,EAAE;QACN;;;;;;;;;WASG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACpC;;;;;WAKG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;KACjC,CAAA;IACD;;OAEG;IACH,SAAS,CAAC,EAAE;QACV;;WAEG;QACH,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;AAqBD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,UAW/C;AAkBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,UAqBlE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAkBrE;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,EAAE,CAAA;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B;;OAEG;IACH,SAAS,EAAE,EAAE,CAAC,OAAO,CAAA;CACtB;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CA0B5F"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
getGitRemoteURL: function() {
|
|
13
|
+
return getGitRemoteURL;
|
|
14
|
+
},
|
|
15
|
+
getRemoteFileUrl: function() {
|
|
16
|
+
return getRemoteFileUrl;
|
|
17
|
+
},
|
|
18
|
+
getStorybookUrl: function() {
|
|
19
|
+
return getStorybookUrl;
|
|
20
|
+
},
|
|
21
|
+
resolveImportPath: function() {
|
|
22
|
+
return resolveImportPath;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const _child_process = require("child_process");
|
|
26
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
27
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
28
|
+
function _interop_require_default(obj) {
|
|
29
|
+
return obj && obj.__esModule ? obj : {
|
|
30
|
+
default: obj
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const DEFAULT_CONFIG_FILE_NAME = 'figma.config.json';
|
|
34
|
+
function parseConfig(configFilePath) {
|
|
35
|
+
if (!_fs.default.existsSync(configFilePath)) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const rawData = _fs.default.readFileSync(configFilePath, 'utf-8');
|
|
40
|
+
const config = JSON.parse(rawData);
|
|
41
|
+
return config;
|
|
42
|
+
} catch (error) {
|
|
43
|
+
console.error('Error parsing config file:', error);
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function getGitRemoteURL(repoPath) {
|
|
48
|
+
try {
|
|
49
|
+
const spawn = (0, _child_process.spawnSync)('git', [
|
|
50
|
+
'config',
|
|
51
|
+
'--get',
|
|
52
|
+
'remote.origin.url'
|
|
53
|
+
], {
|
|
54
|
+
cwd: repoPath
|
|
55
|
+
});
|
|
56
|
+
const output = spawn.stdout;
|
|
57
|
+
return (output || '').toString().trim();
|
|
58
|
+
} catch (error) {
|
|
59
|
+
console.error('Error getting git remote URL:', error);
|
|
60
|
+
return '';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Uses `git rev-parse` to find absolute path to the root of the git repository
|
|
65
|
+
*/ function getGitRepoAbsolutePath(filePath) {
|
|
66
|
+
try {
|
|
67
|
+
const spawn = (0, _child_process.spawnSync)('git', [
|
|
68
|
+
'rev-parse',
|
|
69
|
+
'--show-toplevel'
|
|
70
|
+
], {
|
|
71
|
+
cwd: _path.default.dirname(filePath)
|
|
72
|
+
});
|
|
73
|
+
const output = spawn.stdout;
|
|
74
|
+
return (output || '').toString().trim();
|
|
75
|
+
} catch (error) {
|
|
76
|
+
console.error('Error running `git rev-parse`:', error);
|
|
77
|
+
return '';
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function getRemoteFileUrl(filePath, repoURL) {
|
|
81
|
+
if (!repoURL) {
|
|
82
|
+
return '';
|
|
83
|
+
}
|
|
84
|
+
let url = repoURL.trim();
|
|
85
|
+
url = url.replace(':', '/');
|
|
86
|
+
url = url.replace('git@', 'https://');
|
|
87
|
+
url = url.replace(/\.git$/, '');
|
|
88
|
+
// the folder of the git repo on disk could be named differently,
|
|
89
|
+
// so we need to find the relative path of the file to the root of the repo
|
|
90
|
+
// and append that to the remote URL
|
|
91
|
+
const repoAbsPath = getGitRepoAbsolutePath(filePath);
|
|
92
|
+
const index = filePath.indexOf(repoAbsPath);
|
|
93
|
+
if (index === -1) {
|
|
94
|
+
return '';
|
|
95
|
+
}
|
|
96
|
+
const relativeFilePath = filePath.substring(index + repoAbsPath.length);
|
|
97
|
+
return `${url}/tree/master${relativeFilePath}`;
|
|
98
|
+
}
|
|
99
|
+
function getStorybookUrl(filePath, storybookUrl) {
|
|
100
|
+
// the folder of the git repo on disk could be named differently,
|
|
101
|
+
// so we need to find the relative path of the file to the root of the repo
|
|
102
|
+
// and append that to the remote URL
|
|
103
|
+
const repoAbsPath = getGitRepoAbsolutePath(filePath);
|
|
104
|
+
const index = filePath.indexOf(repoAbsPath);
|
|
105
|
+
if (index === -1) {
|
|
106
|
+
return '';
|
|
107
|
+
}
|
|
108
|
+
const relativeFilePath = filePath.substring(index + repoAbsPath.length + 1) // +1 to remove the leading slash
|
|
109
|
+
;
|
|
110
|
+
const storybookComponentPath = relativeFilePath.trim().replace(/[\s|_]/g, '-').replace(/\.[jt]sx?$/, '').split('/').join('-');
|
|
111
|
+
return `${storybookUrl}/?path=/docs/${storybookComponentPath}`;
|
|
112
|
+
}
|
|
113
|
+
function resolveImportPath(filePath, config) {
|
|
114
|
+
function isMatch(patternParts, pathParts) {
|
|
115
|
+
for(let i = 0; i < patternParts.length; i++){
|
|
116
|
+
if (patternParts[i] !== '*' && patternParts[i] !== pathParts[i]) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
for (const [key, value] of Object.entries(config.react?.importPaths || {})){
|
|
123
|
+
// Do a partial match from the end of the path
|
|
124
|
+
const patternParts = key.split('/').reverse();
|
|
125
|
+
const pathParts = filePath.split('/').reverse();
|
|
126
|
+
if (pathParts.length < patternParts.length) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
// If the mapped path ends with a wildcard we want to keep the filename in
|
|
130
|
+
// the final path (for non-index imports)
|
|
131
|
+
if (isMatch(patternParts, pathParts)) {
|
|
132
|
+
return value.endsWith('*') ? `${value.slice(0, -1)}${pathParts[0].split('.')[0]}` : value;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["project.ts"],"sourcesContent":["import { spawnSync } from 'child_process'\nimport { globSync } from 'glob'\nimport path from 'path'\nimport fs from 'fs'\nimport ts from 'typescript'\nimport { logger } from './logging'\n\nconst DEFAULT_CONFIG_FILE_NAME = 'figma.config.json'\nexport interface CodeConnectConfig {\n /**\n * Specify glob patterns for files (relative to the project root) to be\n * included when looking for source files. If not specified, all files\n * (except any specified in `exclude`) will be included.\n */\n include?: string[]\n /**\n * Specify glob patterns for files (relative to the project root) to be\n * excluded when looking for source files. If not specified, only\n * `node_modules` will be excluded.\n */\n exclude?: string[]\n /**\n * Optional object of substitutions applied to document URLs (in the format {\n * fromString, toString }) for testing (e.g. remapping a production URL to a\n * staging URL). Not publicly documented.\n */\n documentUrlSubstitutions?: Record<string, string>\n /**\n * React specific configuration\n */\n react?: {\n /**\n * Maps imports from their path on disk to the specified path.\n * This will rewrite the imports in generated code examples, so it works with\n * relative imports such as `import { Button } from \"./\"`.\n *\n * Example: { \"src/components/*\": \"@ui/components\" }\n * Would rewrite imports for components located in `src/components` to `@ui/components` in\n * generated code examples.\n * `import { Button } from \"./\"` -> `import { Button } from \"@ui/components/Button\"`\n */\n importPaths?: Record<string, string>\n /**\n * For import resolution - this is a temporary solution to support projects that use\n * pnpm workspaces, as the compiler doesn't seem to be able to resolve imports when\n * the package in node_modules is a symlink. Need to look into this more and find a\n * better solution.\n */\n paths?: Record<string, string[]>\n }\n /**\n * Storybook specific configuration\n */\n storybook?: {\n /**\n * The URL of the Storybook instance for the project\n */\n url: string\n }\n}\n\ninterface FigmaConfig {\n codeConnect?: CodeConnectConfig\n}\n\nfunction parseConfig(configFilePath: string): FigmaConfig | undefined {\n if (!fs.existsSync(configFilePath)) {\n return undefined\n }\n\n try {\n const rawData = fs.readFileSync(configFilePath, 'utf-8')\n const config = JSON.parse(rawData)\n return config\n } catch (error) {\n console.error('Error parsing config file:', error)\n return undefined\n }\n}\n\nexport function getGitRemoteURL(repoPath: string) {\n try {\n const spawn = spawnSync('git', ['config', '--get', 'remote.origin.url'], {\n cwd: repoPath,\n })\n const output = spawn.stdout\n return (output || '').toString().trim()\n } catch (error) {\n console.error('Error getting git remote URL:', error)\n return ''\n }\n}\n\n/**\n * Uses `git rev-parse` to find absolute path to the root of the git repository\n */\nfunction getGitRepoAbsolutePath(filePath: string) {\n try {\n const spawn = spawnSync('git', ['rev-parse', '--show-toplevel'], {\n cwd: path.dirname(filePath),\n })\n const output = spawn.stdout\n return (output || '').toString().trim()\n } catch (error) {\n console.error('Error running `git rev-parse`:', error)\n return ''\n }\n}\n\n/**\n * Finds the URL of a remote file\n * @param filePath absolute file path on disk\n * @param repoURL remote URL\n * @returns\n */\nexport function getRemoteFileUrl(filePath: string, repoURL?: string) {\n if (!repoURL) {\n return ''\n }\n\n let url = repoURL.trim()\n url = url.replace(':', '/')\n url = url.replace('git@', 'https://')\n url = url.replace(/\\.git$/, '')\n\n // the folder of the git repo on disk could be named differently,\n // so we need to find the relative path of the file to the root of the repo\n // and append that to the remote URL\n const repoAbsPath = getGitRepoAbsolutePath(filePath)\n const index = filePath.indexOf(repoAbsPath)\n if (index === -1) {\n return ''\n }\n const relativeFilePath = filePath.substring(index + repoAbsPath.length)\n\n return `${url}/tree/master${relativeFilePath}`\n}\n\nexport function getStorybookUrl(filePath: string, storybookUrl: string) {\n // the folder of the git repo on disk could be named differently,\n // so we need to find the relative path of the file to the root of the repo\n // and append that to the remote URL\n const repoAbsPath = getGitRepoAbsolutePath(filePath)\n const index = filePath.indexOf(repoAbsPath)\n if (index === -1) {\n return ''\n }\n const relativeFilePath = filePath.substring(index + repoAbsPath.length + 1) // +1 to remove the leading slash\n const storybookComponentPath = relativeFilePath\n .trim()\n .replace(/[\\s|_]/g, '-')\n .replace(/\\.[jt]sx?$/, '')\n .split('/')\n .join('-')\n\n return `${storybookUrl}/?path=/docs/${storybookComponentPath}`\n}\n\nexport interface ProjectInfo {\n /**\n * Absolute path of the project directory\n */\n absPath: string\n /**\n * An array of all tsx files in the project\n */\n files: string[]\n /**\n * The git remote URL of the project\n */\n remoteUrl: string\n /**\n * The parsed Code Connect config file\n */\n config?: CodeConnectConfig\n /**\n * TS program containing all tsx files in the project\n */\n tsProgram: ts.Program\n}\n\nexport function resolveImportPath(filePath: string, config: CodeConnectConfig): string | null {\n function isMatch(patternParts: string[], pathParts: string[]) {\n for (let i = 0; i < patternParts.length; i++) {\n if (patternParts[i] !== '*' && patternParts[i] !== pathParts[i]) {\n return false\n }\n }\n return true\n }\n\n for (const [key, value] of Object.entries(config.react?.importPaths || {})) {\n // Do a partial match from the end of the path\n const patternParts = key.split('/').reverse()\n const pathParts = filePath.split('/').reverse()\n if (pathParts.length < patternParts.length) {\n continue\n }\n\n // If the mapped path ends with a wildcard we want to keep the filename in\n // the final path (for non-index imports)\n if (isMatch(patternParts, pathParts)) {\n return value.endsWith('*') ? `${value.slice(0, -1)}${pathParts[0].split('.')[0]}` : value\n }\n }\n\n return null\n}\n"],"names":["getGitRemoteURL","getRemoteFileUrl","getStorybookUrl","resolveImportPath","DEFAULT_CONFIG_FILE_NAME","parseConfig","configFilePath","fs","existsSync","undefined","rawData","readFileSync","config","JSON","parse","error","console","repoPath","spawn","spawnSync","cwd","output","stdout","toString","trim","getGitRepoAbsolutePath","filePath","path","dirname","repoURL","url","replace","repoAbsPath","index","indexOf","relativeFilePath","substring","length","storybookUrl","storybookComponentPath","split","join","isMatch","patternParts","pathParts","i","key","value","Object","entries","react","importPaths","reverse","endsWith","slice"],"mappings":"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"}
|