1 | import path from 'path' |
||
2 | import mkdirp from 'mkdirp' |
||
3 | import fse from 'fs-extra' |
||
4 | import moment from 'moment' |
||
5 | |||
6 | import {abeExtend, coreUtils, cmsData, config, Manager} from '../../' |
||
7 | |||
8 | export function getAbeMeta(fileObject, json) { |
||
9 | if (json.name != null) { |
||
10 | fileObject.name = json.name |
||
11 | } |
||
12 | |||
13 | if (json.abe_meta != null) { |
||
14 | var date = null |
||
15 | |||
16 | if (json.abe_meta.updatedDate != null) { |
||
17 | fileObject.date = json.abe_meta.updatedDate |
||
18 | date = json.abe_meta.updatedDate |
||
19 | } else if ( |
||
20 | json.abe_meta.latest != null && |
||
21 | json.abe_meta.latest.date != null |
||
22 | ) { |
||
23 | fileObject.date = json.abe_meta.latest.date |
||
24 | date = json.abe_meta.latest.date |
||
25 | } else if (json.abe_meta.date !== null) { |
||
26 | date = json.abe_meta.date |
||
27 | } |
||
28 | |||
29 | fileObject.abe_meta = { |
||
30 | date: date, |
||
31 | link: json.abe_meta.link != null ? json.abe_meta.link : null, |
||
32 | template: json.abe_meta.template != null ? json.abe_meta.template : null, |
||
33 | status: json.abe_meta.status != null ? json.abe_meta.status : null |
||
34 | } |
||
35 | } |
||
36 | |||
37 | return fileObject |
||
38 | } |
||
39 | |||
40 | export function getAllWithKeys(withKeys) { |
||
41 | const extension = '.json' |
||
42 | const files = coreUtils.file.getFilesSync(Manager.instance.pathData, true, extension) |
||
43 | |||
44 | let filesArr = [] |
||
45 | |||
46 | Array.prototype.forEach.call(files, pathFile => { |
||
47 | const json = cmsData.file.get(pathFile) |
||
48 | let fileObject = cmsData.file.getFileObject(pathFile) |
||
49 | fileObject = cmsData.file.getAbeMeta(fileObject, json) |
||
50 | Array.prototype.forEach.call(withKeys, key => { |
||
51 | fileObject[key] = json[key] |
||
52 | }) |
||
53 | |||
54 | filesArr.push(fileObject) |
||
55 | }) |
||
56 | |||
57 | var merged = cmsData.revision.getFilesMerged(filesArr) |
||
58 | abeExtend.hooks.instance.trigger('afterGetAllFiles', merged) |
||
59 | |||
60 | return merged |
||
61 | } |
||
62 | |||
63 | export function get(pathJson) { |
||
64 | let json |
||
65 | pathJson = abeExtend.hooks.instance.trigger('beforeGetJson', pathJson) |
||
66 | |||
67 | try { |
||
68 | var stat = fse.statSync(pathJson) |
||
69 | if (stat) { |
||
70 | json = fse.readJsonSync(pathJson) |
||
71 | } |
||
72 | } catch (e) { |
||
73 | json = {} |
||
74 | } |
||
75 | |||
76 | json = abeExtend.hooks.instance.trigger('afterGetJson', json) |
||
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||
77 | return json |
||
78 | } |
||
79 | |||
80 | export function getFilesByType(pathFile, type = null) { |
||
81 | const extension = '.' + config.files.templates.extension |
||
82 | let result = [] |
||
83 | |||
84 | try { |
||
85 | var directory = fse.lstatSync(pathFile) |
||
86 | if (!directory.isDirectory()) { |
||
87 | mkdirp.sync(pathFile) |
||
88 | } |
||
89 | } catch (e) { |
||
90 | mkdirp.sync(pathFile) |
||
91 | } |
||
92 | const files = coreUtils.file.getFilesSync(pathFile, true, extension) |
||
93 | |||
94 | Array.prototype.forEach.call(files, file => { |
||
95 | var val = cmsData.fileAttr.get(file).s |
||
96 | if (type === null || val === type) result.push(file) |
||
97 | }) |
||
98 | |||
99 | return result |
||
100 | } |
||
101 | |||
102 | export function getFileObject(revisionPath) { |
||
103 | let name = path.basename(revisionPath) |
||
104 | const fileData = cmsData.fileAttr.get(name) |
||
105 | name = cmsData.fileAttr.delete(name) |
||
106 | |||
107 | let date |
||
108 | if (fileData.d) { |
||
109 | date = fileData.d |
||
110 | } else { |
||
111 | const stat = fse.statSync(revisionPath) |
||
112 | date = stat.mtime |
||
113 | } |
||
114 | |||
115 | const fileObject = { |
||
116 | name: name, |
||
117 | path: revisionPath, |
||
118 | date: date |
||
119 | } |
||
120 | |||
121 | return fileObject |
||
122 | } |
||
123 |