weck/src/helpers.js

34 lines
968 B
JavaScript

import { fileURLToPath } from 'url';
import fs from 'fs';
import path, { dirname } from 'path';
import nhp from 'node-html-parser';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
export const getFilenames = async (directory, files = []) => {
const dirs = fs.opendirSync(directory);
for await (const dirent of dirs) {
const dirOrFilePath = path.join(directory, dirent.name);
if (dirent.isDirectory()) {
files = await getFilenames(dirOrFilePath, files)
} else if (dirent.isFile()) {
files = [...files, ...[dirOrFilePath]]
}
}
return files
}
export const extensionFilter = (filenames, extension) => {
return filenames.filter(filename => filename.match(new RegExp(`.*\.(${extension})`, 'ig')));
}
export const getContent = (filename) => {
return fs.readFileSync(filename).toString()
}
export const getTitle = (html) => {
return nhp.parse(html).querySelector('title').toString();
}