UNPKG

@design-sdk/figma-remote-api

Version:

Light-weight Figma Remote api wrapper with types & authentication

64 lines 3.34 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Client = void 0; __exportStar(require("@design-sdk/figma-remote-types"), exports); const axios_1 = __importDefault(require("axios")); const Client = (opts) => { const headers = opts.accessToken ? { Authorization: `Bearer ${opts.accessToken}`, } : { "X-Figma-Token": opts.personalAccessToken, }; const client = axios_1.default.create({ baseURL: `https://${opts.apiRoot || "api.figma.com"}/v1/`, headers, }); return { client, file: (fileId, params = {}) => client.get(`files/${fileId}`, { params: Object.assign(Object.assign({}, params), { ids: params.ids ? params.ids.join(",") : "" }), }), fileVersions: (fileId) => client.get(`files/${fileId}/versions`), fileNodes: (fileId, params) => client.get(`files/${fileId}/nodes`, { params: Object.assign(Object.assign({}, params), { ids: params.ids.join(",") }), }), fileImages: (fileId, params) => client.get(`images/${fileId}`, { params: Object.assign(Object.assign({}, params), { ids: params.ids.join(",") }), }), fileImageFills: (fileId) => client.get(`files/${fileId}/images`), comments: (fileId) => client.get(`files/${fileId}/comments`), postComment: (fileId, params) => client.post(`files/${fileId}/comments`, params), deleteComment: (fileId, commentId) => client.delete(`files/${fileId}/comments/${commentId}`), commentReactions: (fileId, commentId) => client.get(`files/${fileId}/comments/${commentId}/reactions`), postCommentReaction: (fileId, commentId, params) => client.post(`files/${fileId}/comments/${commentId}/reactions`, params), deleteCommentReaction: (fileId, commentId, params) => client.delete(`files/${fileId}/comments/${commentId}/reactions`, { params, }), me: () => client.get(`me`), teamProjects: (teamId) => client.get(`teams/${teamId}/projects`), projectFiles: (projectId) => client.get(`projects/${projectId}/files`), teamComponents: (teamId, params = {}) => client.get(`teams/${teamId}/components`, { params }), fileComponents: (fileId) => client.get(`files/${fileId}/components`), component: (key) => client.get(`components/${key}`), teamStyles: (teamId, params = {}) => client.get(`teams/${teamId}/styles`, { params }), fileStyles: (fileId) => client.get(`files/${fileId}/styles`), style: (key) => client.get(`styles/${key}`), }; }; exports.Client = Client; //# sourceMappingURL=index.js.map