Files
nhgooi.nl/scripts/setup-vendor.js
T
2026-09-07 11:11:17 +02:00

55 lines
1.7 KiB
JavaScript
Vendored

#!/usr/bin/env node
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
// Map of npm package names to vendor folder names and their dist paths
const packages = {
'jquery': { folder: 'jquery', subdir: 'dist' },
'jquery-ui': { folder: 'jquery-ui', subdir: 'dist' },
'moment': { folder: 'moment', subdir: '.' },
'daterangepicker': { folder: 'daterangepicker', subdir: '' },
'wavesurfer.js': { folder: 'wavesurfer', subdir: 'dist' },
'air-datepicker': { folder: 'air-datepicker', subdir: '' },
};
const vendorDir = path.join(__dirname, '..', 'public', 'assets', 'vendor');
// Create vendor directory if it doesn't exist
if (!fs.existsSync(vendorDir)) {
fs.mkdirSync(vendorDir, { recursive: true });
}
// Copy each package
Object.entries(packages).forEach(([npmPkg, config]) => {
const { folder, subdir } = config;
const nodeModulesPkg = path.join(__dirname, '..', 'node_modules', npmPkg);
const vendorPkg = path.join(vendorDir, folder);
if (!fs.existsSync(nodeModulesPkg)) {
console.warn(`Warning: ${npmPkg} not found in node_modules`);
return;
}
// Remove existing vendor directory for this package
if (fs.existsSync(vendorPkg)) {
fs.rmSync(vendorPkg, { recursive: true });
}
// Copy the appropriate files
const source = subdir ? path.join(nodeModulesPkg, subdir) : nodeModulesPkg;
if (!fs.existsSync(source)) {
console.warn(`Warning: Source directory ${source} not found for ${npmPkg}`);
return;
}
fs.cpSync(source, vendorPkg, { recursive: true });
console.log(`✓ Copied ${npmPkg}${folder}`);
});
console.log(`✓ Vendor setup complete`);