Skip to content

Commit 1e8f1b8

Browse files
authored
Merge pull request #5426 from plotly/fixup-compress-attributes
Improve compress_attributes browserify transform and fixup unexpected characters in bundles
2 parents 59390cb + f68214b commit 1e8f1b8

12 files changed

+41
-38
lines changed

.circleci/config.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -166,12 +166,12 @@ jobs:
166166
echo https://$CIRCLE_BUILD_NUM-$PROJECT_NUM-gh.circle-artifacts.com/0/dist/plotly.js
167167
echo https://$CIRCLE_BUILD_NUM-$PROJECT_NUM-gh.circle-artifacts.com/0/dist/plotly.min.js
168168
echo https://$CIRCLE_BUILD_NUM-$PROJECT_NUM-gh.circle-artifacts.com/0/dist/plot-schema.json
169-
- run:
170-
name: Test certain bundles against function constructors
171-
command: npm run no-new-func
172169
- run:
173170
name: Test plotly bundles againt unexpected characters
174171
command: npm run no-bad-char
172+
- run:
173+
name: Test certain bundles against function constructors
174+
command: npm run no-new-func
175175

176176
workflows:
177177
version: 2

lib/index-basic.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,4 @@ Plotly.register([
1515
require('./pie')
1616
]);
1717

18-
require('./register_extra')(Plotly);
19-
module.exports = Plotly;
18+
module.exports = require('./register_extra')(Plotly);

lib/index-cartesian.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,4 @@ Plotly.register([
2424
require('./violin')
2525
]);
2626

27-
require('./register_extra')(Plotly);
28-
module.exports = Plotly;
27+
module.exports = require('./register_extra')(Plotly);

lib/index-finance.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,4 @@ Plotly.register([
2222
require('./indicator')
2323
]);
2424

25-
require('./register_extra')(Plotly);
26-
module.exports = Plotly;
25+
module.exports = require('./register_extra')(Plotly);

lib/index-geo.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,4 @@ Plotly.register([
1515
require('./choropleth')
1616
]);
1717

18-
require('./register_extra')(Plotly);
19-
module.exports = Plotly;
18+
module.exports = require('./register_extra')(Plotly);

lib/index-gl2d.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,4 @@ Plotly.register([
1717
require('./parcoords')
1818
]);
1919

20-
require('./register_extra')(Plotly);
21-
module.exports = Plotly;
20+
module.exports = require('./register_extra')(Plotly);

lib/index-gl3d.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,4 @@ Plotly.register([
2020
require('./streamtube')
2121
]);
2222

23-
require('./register_extra')(Plotly);
24-
module.exports = Plotly;
23+
module.exports = require('./register_extra')(Plotly);

lib/index-mapbox.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,4 @@ Plotly.register([
1616
require('./densitymapbox')
1717
]);
1818

19-
require('./register_extra')(Plotly);
20-
module.exports = Plotly;
19+
module.exports = require('./register_extra')(Plotly);

lib/index-strict.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,4 @@ Plotly.register([
5656
require('./barpolar')
5757
]);
5858

59-
require('./register_extra')(Plotly);
60-
module.exports = Plotly;
59+
module.exports = require('./register_extra')(Plotly);

lib/index.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,4 @@ Plotly.register([
7171
require('./barpolar')
7272
]);
7373

74-
require('./register_extra')(Plotly);
75-
module.exports = Plotly;
74+
module.exports = require('./register_extra')(Plotly);

lib/register_extra.js

+2
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,6 @@ module.exports = function registerExtra(Plotly) {
3030
Plotly.register([
3131
require('./calendars')
3232
]);
33+
34+
return Plotly;
3335
};

tasks/compress_attributes.js

+27-17
Original file line numberDiff line numberDiff line change
@@ -8,36 +8,46 @@ var through = require('through2');
88

99
// one line string with or without trailing comma
1010
function makeStringRegex(attr) {
11-
return attr + ': \'.*\'' + ',?';
11+
return makeRegex(
12+
attr + ': \'.*\'' + ',?'
13+
);
1214
}
1315

1416
// joined array of strings with or without trailing comma
1517
function makeJoinedArrayRegex(attr) {
16-
return attr + ': \\[[\\s\\S]*?\\]' + '\\.join\\(.*' + ',?';
18+
return makeRegex(
19+
attr + ': \\[[\\s\\S]*?\\]' + '\\.join\\(.*' + ',?'
20+
);
1721
}
1822

1923
// array with or without trailing comma
2024
function makeArrayRegex(attr) {
21-
return attr + ': \\[[\\s\\S]*?\\]' + ',?';
25+
return makeRegex(
26+
attr + ': \\[[\\s\\S]*?\\]' + ',?'
27+
);
2228
}
2329

24-
// ref: http://www.regexr.com/3cmac
25-
var regexStr = [
26-
makeStringRegex('description'),
27-
makeJoinedArrayRegex('description'),
28-
makeArrayRegex('requiredOpts'),
29-
makeArrayRegex('otherOpts'),
30-
makeStringRegex('hrName')
31-
].join('|');
32-
33-
var regex = new RegExp(regexStr, 'g');
30+
function makeRegex(regexStr) {
31+
return (
32+
new RegExp(regexStr, 'g')
33+
);
34+
}
3435

3536
module.exports = function() {
36-
return through(function(buf, enc, next) {
37+
var allChunks = [];
38+
return through(function(chunk, enc, next) {
39+
allChunks.push(chunk);
40+
next();
41+
}, function(done) {
42+
var str = Buffer.concat(allChunks).toString('utf-8');
3743
this.push(
38-
buf.toString('utf-8')
39-
.replace(regex, '')
44+
str
45+
.replace(makeStringRegex('description'), '')
46+
.replace(makeJoinedArrayRegex('description'), '')
47+
.replace(makeArrayRegex('requiredOpts'), '')
48+
.replace(makeArrayRegex('otherOpts'), '')
49+
.replace(makeStringRegex('hrName'), '')
4050
);
41-
next();
51+
done();
4252
});
4353
};

0 commit comments

Comments
 (0)