Skip to content

Commit b944ec9

Browse files
committed
add update version task:
- update src/index.js and src/assets/geo_assets.js 'version' export using a falafel update - done replacement of require('../package.json') so that webpack is supported w/o a json loader
1 parent 8780e0d commit b944ec9

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

tasks/preprocess.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var sass = require('node-sass');
44

55
var pullCSS = require('./util/pull_css');
66
var pullFontSVG = require('./util/pull_font_svg');
7+
var updateVersion = require('./util/update_version');
78
var constants = require('./util/constants');
89

910

@@ -28,3 +29,7 @@ fs.copy(constants.pathToTopojsonSrc, constants.pathToTopojsonDist,
2829
{ clobber: true },
2930
function(err) { if(err) throw err; }
3031
);
32+
33+
// inject package version into source index files
34+
updateVersion(constants.pathToPlotlySrc);
35+
updateVersion(constants.pathToPlotlyGeoAssetsSrc);

tasks/util/update_version.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
var fs = require('fs');
2+
3+
var falafel = require('falafel');
4+
5+
var pkg = require('../../package.json');
6+
7+
8+
module.exports = function updateVersion(pathToFile) {
9+
fs.readFile(pathToFile, 'utf-8', function(err, code) {
10+
var out = falafel(code, function(node) {
11+
if(isVersionNode(node)) node.update('\'' + pkg.version + '\'');
12+
});
13+
14+
fs.writeFile(pathToFile, out, function(err) {
15+
if(err) throw err;
16+
});
17+
});
18+
};
19+
20+
function isVersionNode(node) {
21+
return (
22+
node.type === 'Literal' &&
23+
node.parent &&
24+
node.parent.type === 'AssignmentExpression' &&
25+
node.parent.left &&
26+
node.parent.left.object &&
27+
node.parent.left.property &&
28+
node.parent.left.property.name === 'version'
29+
);
30+
}

0 commit comments

Comments
 (0)