| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 'use strict';
- const fs = require('fs');
- const path = require('path');
- const glob = require('glob');
- const ncp = require('ncp');
- const SRC_DIR = 'src/public/lib';
- const aliases = {
- CodeMirror: 'codemirror',
- };
- function getFiles(pattern, cwd) {
- return new Promise((resolve, reject) => {
- glob(pattern, {nodir: true, cwd: cwd || '.'}, (err, files) => {
- err ? reject(err) : resolve(files);
- });
- });
- }
- function readdir(dir) {
- return new Promise((resolve, reject) => {
- fs.readdir(dir, (err, files) => {
- err ? reject(err) : resolve(files);
- });
- });
- }
- function copyFile(src, dest) {
- return new Promise((resolve, reject) => {
- ncp(src, dest, err => err ? reject(err) : resolve());
- }).then(() => {
- console.log(src + ' => ' + dest);
- });
- }
- function update(lib, files) {
- let alias = aliases[lib];
- if (typeof alias === 'string') alias = {
- lib: alias,
- };
- alias.lib = alias.lib || lib;
- const libdir = `node_modules/${alias.lib}`;
- const srcdir = `${SRC_DIR}/${lib}`
- return Promise.all(files.map(file => {
- let aliasFile = alias.files && alias.files[file] || file;
- if (aliasFile.endsWith('/')) aliasFile += file;
- const libfile = path.join(libdir, aliasFile);
- return copyFile(libfile, path.join(srcdir, file));
- })).catch(function (err) {
- console.log(err);
- });
- }
- readdir(SRC_DIR).then(data => data.forEach(name => {
- if (!aliases[name]) return;
- getFiles('**', `${SRC_DIR}/${name}`)
- .then(files => update(name, files));
- }));
|