@prismicio/client
Version:
The official JavaScript + TypeScript client library for Prismic
54 lines (53 loc) • 1.88 kB
JavaScript
import { LinkType } from "../types/value/link.js";
import { RichTextNodeType } from "../types/value/richText.js";
const filledLinkToMedia = (value) => {
if (value && typeof value === "object" && !("version" in value)) {
if ("link_type" in value && value.link_type === LinkType.Media && "id" in value && "name" in value && "kind" in value && "url" in value && "size" in value) {
return true;
}
}
return false;
};
const imageLike = (value) => {
if (value && typeof value === "object" && (!("version" in value) || typeof value.version === "object")) {
if ("id" in value && "url" in value && typeof value.url === "string" && "dimensions" in value && "edit" in value && "alt" in value && "copyright" in value) {
return true;
}
}
return false;
};
const filledImage = (value) => {
if (imageLike(value) && (!("type" in value) || value.type !== RichTextNodeType.image)) {
return true;
}
return false;
};
const rtImageNode = (value) => {
if (imageLike(value) && "type" in value && value.type === RichTextNodeType.image) {
return true;
}
return false;
};
const filledContentRelationship = (value) => {
if (value && typeof value === "object" && !("version" in value)) {
if ("link_type" in value && value.link_type === LinkType.Document && "id" in value && "type" in value && "tags" in value && "lang" in value) {
return true;
}
}
return false;
};
const prismicDocument = (value) => {
try {
return typeof value === "object" && value !== null && "id" in value && "href" in value && typeof value.href === "string" && new URL(value.href) && "type" in value && "lang" in value && "tags" in value && Array.isArray(value.tags);
} catch {
return false;
}
};
export {
filledContentRelationship,
filledImage,
filledLinkToMedia,
prismicDocument,
rtImageNode
};
//# sourceMappingURL=isValue.js.map