naystack
Version:
A stack built with tight Next + Drizzle + GraphQL
88 lines (84 loc) • 2.72 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/socials/threads/setters.ts
var setters_exports = {};
__export(setters_exports, {
createContainer: () => createContainer,
createThread: () => createThread,
createThreadsPost: () => createThreadsPost,
publishContainer: () => publishContainer
});
module.exports = __toCommonJS(setters_exports);
// src/socials/threads/utils.ts
function getThreadsURL(token, path, params) {
return `https://graph.threads.net/v1.0/${path}?${Object.keys(params).map((key) => `${key}=${params[key]}`).join("&")}&access_token=${token}`;
}
function getThreadsData(token, path, params, method) {
return fetch(getThreadsURL(token, path, params), {
method: method || "GET"
}).then((res) => res.json());
}
// src/socials/threads/setters.ts
function createContainer(token, text, reply_to_id) {
return getThreadsData(
token,
"me/threads",
{
media_type: "TEXT",
text,
...reply_to_id ? { reply_to_id } : {}
},
"POST"
).then((res) => res?.id);
}
function publishContainer(token, creation_id) {
return getThreadsData(
token,
"me/threads_publish",
{
creation_id
},
"POST"
).then((res) => res?.id);
}
var createThreadsPost = async (token, text, reply_to_id) => {
const containerID = await createContainer(token, text, reply_to_id);
if (!containerID) return null;
await new Promise((resolve) => setTimeout(resolve, 2e3));
return publishContainer(token, containerID);
};
var createThread = async (token, threads) => {
const publishedIDs = [];
for (const thread of threads) {
const postID = await createThreadsPost(
token,
thread.split("\n").join("%0A"),
publishedIDs.at(-1)
);
if (postID) publishedIDs.push(postID);
}
return publishedIDs[0];
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
createContainer,
createThread,
createThreadsPost,
publishContainer
});