@subsocial/api
Version:
JavaScript API for Subsocial blockchain.
84 lines (83 loc) • 3.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.asCommentStruct = exports.asSharedPostStruct = exports.convertToDerivedContent = exports.isPublic = exports.isUnlisted = exports.convertToNewPostWithAllDetails = exports.convertToNewPostWithSomeDetails = exports.convertToNewPostWithAllDetailsArray = exports.convertToNewPostWithSomeDetailsArray = exports.convertToNewPostDataArray = exports.convertToNewPostData = exports.convertToNewSpaceDataArray = exports.convertToNewSpaceData = exports.asCommentData = void 0;
const _1 = require(".");
const utils_1 = require("@subsocial/utils");
function asCommentData(postData) {
return postData;
}
exports.asCommentData = asCommentData;
function convertToNewSpaceData(Raw) {
const struct = (0, _1.flattenSpaceStruct)(Raw.struct);
return { id: struct.id, struct, content: convertToDerivedContent(Raw.content) };
}
exports.convertToNewSpaceData = convertToNewSpaceData;
function convertToNewSpaceDataArray(Raw) {
return Raw.map(convertToNewSpaceData);
}
exports.convertToNewSpaceDataArray = convertToNewSpaceDataArray;
function convertToNewPostData(Raw) {
const struct = (0, _1.flattenPostStruct)(Raw.struct);
return { id: struct.id, struct, content: convertToDerivedContent(Raw.content) };
}
exports.convertToNewPostData = convertToNewPostData;
function convertToNewPostDataArray(Raw) {
return Raw.map(convertToNewPostData);
}
exports.convertToNewPostDataArray = convertToNewPostDataArray;
function convertToNewPostWithSomeDetailsArray(RawDataArr) {
return RawDataArr.map(x => {
const post = convertToNewPostData(x.post);
return {
id: post.id,
post,
ext: x.ext && convertToNewPostWithSomeDetails(x.ext),
space: x.space && convertToNewSpaceData(x.space),
};
});
}
exports.convertToNewPostWithSomeDetailsArray = convertToNewPostWithSomeDetailsArray;
function convertToNewPostWithAllDetailsArray(RawDataArr) {
return convertToNewPostWithSomeDetailsArray(RawDataArr);
}
exports.convertToNewPostWithAllDetailsArray = convertToNewPostWithAllDetailsArray;
function convertToNewPostWithSomeDetails(RawData) {
return !RawData ? undefined : convertToNewPostWithSomeDetailsArray([RawData])[0];
}
exports.convertToNewPostWithSomeDetails = convertToNewPostWithSomeDetails;
function convertToNewPostWithAllDetails(RawData) {
return !RawData ? undefined : convertToNewPostWithAllDetailsArray([RawData])[0];
}
exports.convertToNewPostWithAllDetails = convertToNewPostWithAllDetails;
function isUnlisted(data) {
if (!data)
return true;
const { struct, content } = data;
return struct.hidden || !content;
}
exports.isUnlisted = isUnlisted;
function isPublic(data) {
return !isUnlisted(data);
}
exports.isPublic = isPublic;
function convertToDerivedContent(content) {
if (!content)
return undefined;
const maybeSpace = content;
const aboutPost = content;
const md = maybeSpace.about || aboutPost.body || aboutPost.title;
return Object.assign(Object.assign({}, content), (0, utils_1.summarizeMd)(md));
}
exports.convertToDerivedContent = convertToDerivedContent;
function asSharedPostStruct(post) {
if (!post.isSharedPost)
throw new Error('Not a shared post');
return post;
}
exports.asSharedPostStruct = asSharedPostStruct;
function asCommentStruct(post) {
if (!post.isComment)
throw new Error('Not a comment');
return post;
}
exports.asCommentStruct = asCommentStruct;