UNPKG

@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
"use strict"; 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