Files
win32.run/gen/assets.js
2023-02-13 19:32:10 +07:00

58 lines
1.9 KiB
JavaScript

import path from 'path';
import dir from 'node-dir';
import fs from 'fs';
let excluded_source_files = ['src/routes/xp/starting.svelte'];
let source_files = [
...dir.files('./src/', {sync: true}),
'static/json/hard_drive.json',
'svelte.config.js',
'tailwind.config.cjs',
'vite.config.js'
]
.filter(el => ['.js', '.json', '.svelte', '.css', '.cjs', '.html'].includes(path.extname(el)))
.filter(el => !excluded_source_files.includes(el));
(async () => {
let remote_files = dir.files('./static/files/', {sync: true})
.filter(file => ['.png', '.jpg', '.mp3'].includes(path.extname(file)))
.filter(file => included(file))
.map(file => file.replace(/^static/i, ''));
let images = dir.files('./static/images/', {sync: true})
.filter(file => ['.png', '.jpg', '.svg', '.gif'].includes(path.extname(file)))
.filter(file => included(file))
.map(file => file.replace(/^static/i, ''));
let fonts = dir.files('./static/fonts/', {sync: true})
.filter(file => ['.ttf'].includes(path.extname(file)))
.filter(file => included(file))
.map(file => file.replace(/^static/i, ''));
let audios = dir.files('./static/audio/', {sync: true})
.filter(file => ['.mp3', '.wav'].includes(path.extname(file)))
.filter(file => included(file))
.map(file => file.replace(/^static/i, ''));
let empties = dir.files('./static/empty/', {sync: true})
.filter(file => included(file))
.map(file => file.replace(/^static/i, ''));
let assets = {remote_files, images, audios, fonts, empties};
for(let key of Object.keys(assets)){
console.log('let ' + key + ' = ' + JSON.stringify(assets[key]) + ';\n');
}
})()
function included(asset){
let basename = path.basename(asset);
for(let file of source_files){
let content = fs.readFileSync(file, 'utf-8');
if(content.includes(basename)) return true;
}
return false;
}