UNPKG

3.52 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5var __importStar = (this && this.__importStar) || function (mod) {
6 if (mod && mod.__esModule) return mod;
7 var result = {};
8 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
9 result["default"] = mod;
10 return result;
11};
12Object.defineProperty(exports, "__esModule", { value: true });
13const fs_extra_1 = __importDefault(require("fs-extra"));
14const glob_1 = __importDefault(require("glob"));
15const path = __importStar(require("path"));
16const cwd = process.cwd();
17const downLoadDir = path.join(cwd, '.CACHE/download');
18const mergeDir = path.join(cwd, '.CACHE/nanachi');
19const mergeFilesQueue = require('./mergeFilesQueue');
20const ignoreFiles = [
21 'package-lock.json',
22];
23const docFilesReg = /\.md$/;
24const configFileReg = /\w+Config\.json$/;
25const reactFileReg = /React\w+\.js$/;
26const mergeFiles = [
27 'app.json',
28 'app.js',
29 'package.json'
30];
31const lockFiles = [
32 'project.config.json'
33];
34function isIgnoreFile(fileName) {
35 return ignoreFiles.includes(fileName)
36 || mergeFiles.includes(fileName)
37 || lockFiles.includes(fileName)
38 || configFileReg.test(fileName)
39 || reactFileReg.test(fileName)
40 || docFilesReg.test(fileName);
41}
42function isMergeFile(fileName) {
43 return mergeFiles.includes(fileName)
44 || configFileReg.test(fileName);
45}
46function isLockFile(fileName) {
47 return lockFiles.includes(fileName);
48}
49function copyCurrentProject() {
50 let projectDirName = cwd.replace(/\\/g, '/').split('/').pop();
51 let files = glob_1.default.sync('./!(node_modules|dist)', {});
52 let allPromiseCopy = files.map(function (el) {
53 let src = path.join(cwd, el);
54 let dist = path.join(downLoadDir, projectDirName, el);
55 if (/\.\w+$/.test(el)) {
56 fs_extra_1.default.ensureFileSync(dist);
57 return fs_extra_1.default.copyFile(src, dist);
58 }
59 else {
60 fs_extra_1.default.ensureDirSync(dist);
61 return fs_extra_1.default.copy(src, dist);
62 }
63 });
64 return Promise.all(allPromiseCopy);
65}
66function copyOtherProject() {
67 let files = glob_1.default.sync(downLoadDir + '/**', { nodir: true });
68 files = files.filter((file) => {
69 let fileName = path.parse(file).base;
70 if (isIgnoreFile(fileName)) {
71 if (isMergeFile(fileName) || isLockFile(fileName)) {
72 mergeFilesQueue.add(file);
73 }
74 return false;
75 }
76 else {
77 return true;
78 }
79 });
80 let allPromiseCopy = files.map(function (file) {
81 let dist = '';
82 file = file.replace(/\\/g, '/');
83 if (/\/source\//.test(file)) {
84 dist = path.join(mergeDir, 'source', file.split('/source/').pop());
85 }
86 else {
87 dist = path.join(mergeDir, file.split('/').pop());
88 }
89 fs_extra_1.default.ensureFileSync(dist);
90 return fs_extra_1.default.copyFile(file, dist);
91 });
92 return Promise.all(allPromiseCopy);
93}
94function default_1() {
95 fs_extra_1.default.emptyDirSync(mergeDir);
96 return copyCurrentProject()
97 .then(function () {
98 return copyOtherProject();
99 })
100 .then(function () {
101 return Promise.resolve(1);
102 })
103 .catch(function (err) {
104 return Promise.reject(err);
105 });
106}
107exports.default = default_1;
108;