-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathcopy.js
More file actions
71 lines (66 loc) · 3.05 KB
/
Copy pathcopy.js
File metadata and controls
71 lines (66 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
const gulp = require('gulp');
const { cp, mkdir } = require('shelljs');
const fs = require('fs');
const scripts = {
barcode: ['images', 'barcode.reportitem.css', 'barcode.reportitem.js', 'qrbarcode.reportitem.js'],
signature: ['signature.reportitem.css', 'signature.dialog.css', 'signature.reportitem.js', 'signature.dialog.js'],
shape: ['shape.reportitem.css', 'shape.reportitem.js'],
pdf: ['document.reportitem.css', 'pdfdocument.reportitem.js'],
html: ['htmldocument.reportitem.js'],
pdfSignature: ['pdf.signature.reportitem.css', 'pdf.signature.reportitem.js']
};
const srcDir = 'node_modules/@boldreports/javascript-reporting-controls/Scripts/';
const destDir = 'scripts/';
const extensionsItemSrcDir = 'node_modules/@boldreports/javascript-reporting-extensions/';
const extensionsItemDir = './build/templates/extensions/report-item-extensions/';
const extensionsExportTemp = {
'1D': 'export { EJBarcode };',
'2D': 'export { EJQRBarcode };',
'signature': 'export { EJSignature }',
'signatureDialog': 'export { SignatureDialog }',
'shape': 'export { EJShape }',
'pdfDocument': 'export { EJPdfDocument }',
'htmlDocument': 'export { EJHtmlDocument }',
'pdfSignature': 'export { EJPDFSignature }'
}
gulp.task('copy', (done) => {
copyFiles(scripts.barcode, extensionsItemSrcDir, extensionsItemDir);
copyFiles(scripts.signature, extensionsItemSrcDir, extensionsItemDir);
copyFiles(scripts.shape, extensionsItemSrcDir, extensionsItemDir);
copyFiles(scripts.html, extensionsItemSrcDir, extensionsItemDir);
copyFiles(scripts.pdf, extensionsItemSrcDir, extensionsItemDir);
copyFiles(scripts.pdfSignature, extensionsItemSrcDir, extensionsItemDir);
done();
});
function copyFiles(fileArray, src, dest) {
fileArray.forEach(file => {
mkdir('-p', dest);
cp('-r', src + file, dest);
});
};
gulp.task('update-extensions-export', (done) => {
const files = {
'barcode': ['barcode.reportitem.js', '1D'],
'qrbarcode': ['qrbarcode.reportitem.js', '2D'],
'signature': ['signature.reportitem.js', 'signature'],
'signatureDialog': ['signature.dialog.js', 'signatureDialog'],
'shape': ['shape.reportitem.js', 'shape'],
'pdfDocument': ['pdfdocument.reportitem.js', 'pdfDocument'],
'htmlDocument': ['htmldocument.reportitem.js', 'htmlDocument'],
'pdfSignature': ['pdf.signature.reportitem.js', 'pdfSignature']
};
const updateFile = (key, [filename, exportKey]) => {
const filePath = `${extensionsItemDir}${filename}`;
if (fs.existsSync(filePath)) {
const content = fs.readFileSync(filePath, 'utf8');
if (!content.includes(extensionsExportTemp[exportKey])) {
fs.writeFileSync(filePath, `${content}\n${extensionsExportTemp[exportKey]}`);
}
} else {
console.log(`!!!... The ${key} file not found in ${extensionsItemDir} ...!!!`);
process.exit(1);
}
};
Object.entries(files).forEach(([key, value]) => updateFile(key, value));
done();
});