@figma/code-connect
Version:
A tool for connecting your design system components in code with your design system in Figma
63 lines • 3.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.delete_docs = delete_docs;
const fetch_1 = require("../common/fetch");
const logging_1 = require("../common/logging");
const figma_rest_api_1 = require("./figma_rest_api");
const helpers_1 = require("./helpers");
async function delete_docs({ accessToken, docs, apiUrl: apiUrlOverride }) {
const apiUrl = (0, figma_rest_api_1.getApiUrl)(docs?.[0]?.figmaNode ?? '', apiUrlOverride) + '/code_connect';
try {
logging_1.logger.info(`Unpublishing Code Connect files from Figma...`);
const response = await fetch_1.request.delete(apiUrl, { nodes_to_delete: docs }, {
headers: (0, figma_rest_api_1.getHeaders)(accessToken),
});
const responseData = response.data;
const result = responseData.meta ?? response.data;
if (result.deleted_count > 0) {
logging_1.logger.info(`\nSuccessfully deleted ${result.deleted_count} Code Connect mapping(s):\n${result.deleted_nodes
.map((doc) => `${doc.figmaNode} (${doc.label})`)
.join('\n')}`);
}
if (result.failed_count > 0) {
logging_1.logger.error(`\nFailed to delete ${result.failed_count} Code Connect mapping(s):\n${result.failed_nodes
.map((doc) => `✗ ${doc.figmaNode} (${doc.label}): ${doc.reason}`)
.join('\n')}`);
(0, helpers_1.exitWithFeedbackMessage)(1);
}
if (result.deleted_count === 0 && result.failed_count === 0) {
logging_1.logger.warn('No Code Connect mappings were found to delete.');
}
}
catch (err) {
if ((0, fetch_1.isFetchError)(err)) {
if (err.response) {
// Provide more specific error message based on status code
if (err.response.status === 400) {
const errorMsg = err.data?.err ?? err.data?.message ?? 'Bad request';
if (errorMsg.includes('insufficient permissions')) {
logging_1.logger.error(`Insufficient permissions to unpublish Code Connect for this file.`);
}
else if (errorMsg.includes('Failed to parse')) {
logging_1.logger.error(`Invalid Figma URL format in the request.`);
}
else {
logging_1.logger.error(`Failed to unpublish from Figma: ${errorMsg}`);
}
}
else {
logging_1.logger.error(`Failed to unpublish from Figma (${err.response.status}): ${err.data?.err ?? err.data?.message ?? 'Unknown error'}`);
}
}
else {
logging_1.logger.error(`Failed to unpublish from Figma: ${err.message}`);
}
logging_1.logger.debug(JSON.stringify(err.data));
}
else {
logging_1.logger.error(`Failed to delete docs: ${err}`);
}
(0, helpers_1.exitWithFeedbackMessage)(1);
}
}
//# sourceMappingURL=delete_docs.js.map