import { Url } from './Url.js';
import { TextTrimmer } from './TextTrimmer.js';
import { ImageUrlNormalizer } from './ImageUrlNormalizer.js';
export class Page {
constructor(
public readonly url: Url,
public readonly title: string,
public readonly text: string,
public readonly images: string[]
) {}
static create(url: Url, title: string, text: string, images: string[], maxChars?: number): Page {
const trimmedText = maxChars ? TextTrimmer.trimAtWordBoundary(text, maxChars) : text;
const normalizedImages = ImageUrlNormalizer.normalizeImageUrls(images, url);
const validImages = ImageUrlNormalizer.filterValidImageUrls(normalizedImages);
return new Page(url, title, trimmedText, validImages);
}
}