@design-sdk/figma-remote-api
Version:
Light-weight Figma Remote api wrapper with types & authentication
64 lines • 3.34 kB
JavaScript
;
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