UNPKG

1.56 kBJavaScriptView Raw
1const
2 path = require('path'),
3 sgUtil = require('./util');
4
5class CollectorPaths {
6
7 constructor({conf}) {
8
9 this.dest = conf.get('dest');
10 this.viewerDest = conf.get('viewerDest');
11 this.templateDest = conf.get('templateDest');
12 this.htmlExt = conf.get('htmlExt');
13 this.dataExt = conf.get('dataExt');
14 this.sources = new Map();
15 }
16
17 set(filename, sourceDir, destDir) {
18 this.sources.set(filename, {destDir, sourceDir});
19 }
20
21 get(filename) {
22 return this.sources.get(filename);
23 }
24
25 relativeFileName(filename) {
26 const {sourceDir} = this.get(filename);
27 return path.relative(sourceDir, filename);
28 }
29
30 resolveDest(filename, ext) {
31 const
32 {viewerDest, get, relativeFileName} = this,
33 {destDir} = get.call(this, filename);
34
35 filename = relativeFileName.call(this, filename);
36 filename = path.join(viewerDest, destDir, filename);
37
38 return sgUtil.replaceFileExtension(filename, ext);
39 }
40
41 resolveDestHtml(filename) {
42 const {resolveDest, htmlExt} = this;
43 return resolveDest.call(this, filename, htmlExt);
44 }
45
46 resolveDestData(filename) {
47 const {resolveDest, dataExt} = this;
48 return resolveDest.call(this, filename, dataExt);
49 }
50
51 resolveUrl(filename) {
52 const {resolveDestHtml, dest} = this;
53 return path.join('/', path.relative(dest, resolveDestHtml.call(this, filename)));
54 }
55
56 resolveTemplateSourceDest(componentName) {
57 const {dest, templateDest} = this;
58 return path.resolve(path.join(dest, templateDest, componentName));
59 }
60}
61
62module.exports = CollectorPaths;
\No newline at end of file