Metadata Structure by Content Type
Content: Metadata Structure by Content Type
User Intent
Operation
Metadata Fields Overview
TypeScript (Canonical)
import { Graphlit } from 'graphlit-client';
import { ContentTypes, FileTypes } from 'graphlit-client/dist/generated/graphql-types';
const graphlit = new Graphlit();
const content = await graphlit.getContent('content-id');
// Access metadata based on content type
if (content.content.type === ContentTypes.Email && content.content.email) {
const email = content.content.email;
console.log(`Subject: ${email.subject}`);
console.log(`From: ${email.from[0].email}`);
console.log(`To: ${email.to?.map(p => p.email).join(', ')}`);
console.log(`Labels: ${email.labels?.join(', ')}`);
console.log(`Attachments: ${email.attachmentCount}`);
}
if (content.content.type === ContentTypes.Message && content.content.message) {
const msg = content.content.message;
console.log(`Channel: ${msg.channelName}`);
console.log(`Author: ${msg.author?.name} (${msg.author?.email})`);
console.log(`Mentions: ${msg.mentions?.map(p => p.name).join(', ')}`);
}
if (content.content.fileType === FileTypes.Document && content.content.document) {
const doc = content.content.document;
console.log(`Pages: ${doc.pageCount}`);
console.log(`Author: ${doc.author}`);
console.log(`Words: ${doc.wordCount}`);
console.log(`Encrypted: ${doc.isEncrypted}`);
}Email Metadata (ContentTypes.Email)
Message Metadata (ContentTypes.Message)
Document Metadata (FileDocument)
Image Metadata (FileImage)
Audio Metadata (FileAudio)
Video Metadata (FileVideo)
Event Metadata (ContentEvent)
Issue Metadata (ContentTypes.Issue)
Post Metadata (ContentPost)
Access email metadata (snake_case fields)
Access message metadata
Access document metadata
Developer Hints
Always Check Type First
Null-Safe Access
PersonReference Pattern
Common Issues & Solutions
Production Example
Last updated