fix
This commit is contained in:
41
dist/server/chunks/publisher_Dj_UvF8J.mjs
vendored
Normal file
41
dist/server/chunks/publisher_Dj_UvF8J.mjs
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
import { r as readCms, s as slugify, w as writeCms } from './cms_CRTVymfB.mjs';
|
||||
|
||||
const publishPost = async (input) => {
|
||||
const cms = await readCms();
|
||||
const title = input.title.trim();
|
||||
const slug = slugify(input.slug || title);
|
||||
if (!title || !slug) {
|
||||
throw new Error("title is required");
|
||||
}
|
||||
const body = Array.isArray(input.body) ? input.body : String(input.body ?? "").split(/\n\s*\n/).map((item) => item.trim()).filter(Boolean);
|
||||
const existingIndex = cms.posts.findIndex((item) => item.slug === slug);
|
||||
const existing = existingIndex >= 0 ? cms.posts[existingIndex] : void 0;
|
||||
const post = {
|
||||
slug,
|
||||
title,
|
||||
category: input.category || cms.categories[0] || "عمومی",
|
||||
time: input.time || "هماکنون",
|
||||
readTime: input.readTime || "۳ دقیقه",
|
||||
excerpt: input.excerpt || body[0] || "",
|
||||
body,
|
||||
status: input.status || "pending",
|
||||
image: input.image || void 0,
|
||||
thumbnail: input.thumbnail || void 0,
|
||||
urgent: input.urgent ?? false,
|
||||
sidebar: input.sidebar ?? false,
|
||||
sourceUrl: input.sourceUrl || void 0,
|
||||
publishedAt: input.publishedAt || existing?.publishedAt || (/* @__PURE__ */ new Date()).toISOString()
|
||||
};
|
||||
if (existingIndex >= 0) {
|
||||
cms.posts[existingIndex] = post;
|
||||
} else {
|
||||
cms.posts.unshift(post);
|
||||
}
|
||||
if (!cms.categories.includes(post.category)) {
|
||||
cms.categories.push(post.category);
|
||||
}
|
||||
await writeCms(cms);
|
||||
return post;
|
||||
};
|
||||
|
||||
export { publishPost as p };
|
||||
Reference in New Issue
Block a user