Skip to content

Commit

Permalink
refactor: use Post.findById if postAsset exists
Browse files Browse the repository at this point in the history
  • Loading branch information
yoshinorin committed Apr 19, 2024
1 parent 9385c81 commit 2790445
Showing 1 changed file with 23 additions and 12 deletions.
35 changes: 23 additions & 12 deletions lib/plugins/processor/post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import { magenta } from 'picocolors';
import type { _File } from '../../box';
import type Hexo from '../../hexo';
import type { Stats } from 'fs';
import { PostSchema } from '../../types';
import { sep } from 'path/posix';

Check failure on line 12 in lib/plugins/processor/post.ts

View workflow job for this annotation

GitHub Actions / linter

"path/posix" is not found

const postDir = '_posts/';
const draftDir = '_drafts/';
Expand Down Expand Up @@ -270,28 +272,37 @@ function processAsset(ctx: Hexo, file: _File) {
const id = file.source.substring(ctx.base_dir.length);
const doc = PostAsset.findById(id);

if (file.type === 'delete') {
if (file.type === 'delete' || Post.length === 0) {
if (doc) {
return doc.remove();
}

return;
}

if (Post.length > 0) {
const assetDir = id.slice(0, id.lastIndexOf('/'));
const post = Post.findOne(p => p.asset_dir.endsWith(posix.join(assetDir, '/')));
const savePostAsset = (post: PostSchema) => {
return PostAsset.save({
_id: id,
slug: file.source.substring(post.asset_dir.length),
post: post._id,
modified: file.type !== 'skip',
renderable: file.params.renderable
});
}

Check failure on line 290 in lib/plugins/processor/post.ts

View workflow job for this annotation

GitHub Actions / linter

Missing semicolon

if (doc) {
// `doc.post` is `Post.id`.
const post = Post.findById(doc.post);
if (post != null && (post.published || ctx._showDrafts())) {
return PostAsset.save({
_id: id,
slug: file.source.substring(post.asset_dir.length),
post: post._id,
modified: file.type !== 'skip',
renderable: file.params.renderable
});
return savePostAsset(post);
}
}

const assetDir = id.slice(0, id.lastIndexOf(sep));
const post = Post.findOne(p => p.asset_dir.endsWith(posix.join(assetDir, '/')));
if (post != null && (post.published || ctx._showDrafts())) {
return savePostAsset(post);
}

if (doc) {
return doc.remove();
}
Expand Down

0 comments on commit 2790445

Please sign in to comment.