22 lines
550 B
TypeScript
22 lines
550 B
TypeScript
export type LocalDraft = Readonly<{
|
|
draftId: string;
|
|
title: string;
|
|
body: string;
|
|
}>;
|
|
|
|
export function createLocalDraft(values: LocalDraft): LocalDraft {
|
|
const draftId = values.draftId.trim();
|
|
const title = values.title.trim();
|
|
if (!draftId || !title) {
|
|
throw new TypeError("Local draft requires draftId and title");
|
|
}
|
|
if (title.length > 160 || values.body.length > 100_000) {
|
|
throw new TypeError("Local draft exceeds bounded field limits");
|
|
}
|
|
return Object.freeze({
|
|
draftId,
|
|
title,
|
|
body: values.body,
|
|
});
|
|
}
|