@platformos/pos-cli
Version:
Manage your platformOS application
32 lines (26 loc) • 1.09 kB
JavaScript
import fs from 'fs';
import normalize from 'normalize-path';
import dir from '../directories.js';
import files from '../files.js';
const serializerManifestEntry = file => {
const appDirectory = dir.currentApp();
const fileProperties = fs.statSync(file);
const fileUpdatedAt = Math.floor(new Date(fileProperties['mtime']) / 1000);
const fileSize = fileProperties['size'];
return { physical_file_path: file.replace(new RegExp(`^${appDirectory}/`), ''), updated_at: fileUpdatedAt, file_size: fileSize };
};
const manifestGenerate = async () => {
const assets = await files.getAssets();
return manifestGenerateForAssets(assets);
};
const manifestGenerateForAssets = (assets) => {
const appDirectory = dir.currentApp();
let manifest = {};
for (const file of assets) {
const normalizedFile = normalize(file);
const path = normalizedFile.replace(new RegExp(`(public|private)/assets/|(${appDirectory})/assets/`), '');
manifest[path] = serializerManifestEntry(normalizedFile);
}
return manifest;
};
export { manifestGenerate, manifestGenerateForAssets };