+++ /dev/null
-'use strict';
-
-const { access, rm } = require('fs/promises');
-const { ncp } = require('ncp');
-const { join } = require('path');
-const { debuglog, promisify } = require('util');
-
-const internals = {
- ncp: promisify(ncp),
- debuglog: debuglog('blog'),
-
- kAssetsDirectoryName: 'assets'
-};
-
-/**
- * Generates the static assets required for the blog
- *
- * @name StaticGenerator
- * @param {string} source the source directory
- * @param {string} target the target directory
- * @param {Array.<Blog.tPost>} posts the list of posts
- */
-module.exports = async function StaticGenerator(source, target, posts) {
-
- const assetsTarget = join(target, internals.kAssetsDirectoryName);
-
- internals.debuglog(`Removing ${assetsTarget}`);
- await rm(assetsTarget, { recursive: true, force: true });
-
- for (let i = 0; i < posts.length; ++i) {
- const postSourcePath = join(source, `${i}`);
-
- try {
- await access(postSourcePath);
-
- const assetsSource = join(postSourcePath, internals.kAssetsDirectoryName);
-
- internals.debuglog(`Copying ${assetsSource} to ${assetsTarget}`);
- await internals.ncp(assetsSource, assetsTarget);
- }
- catch (error) {
- if (error.code === internals.kFileNotFoundError) {
- internals.debuglog(`Skipping ${i}`);
- continue;
- }
-
- throw error;
- }
- }
-};