Skip to content

Commit

Permalink
upgrade packages + prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
luisrudge committed Feb 4, 2020
1 parent 04e66ac commit f4886dc
Show file tree
Hide file tree
Showing 14 changed files with 1,271 additions and 867 deletions.
36 changes: 17 additions & 19 deletions .eslintrc
@@ -1,21 +1,19 @@
{
"rules": {
"no-unused-expressions": [0],
"no-underscore-dangle": [0],
"no-reserved-keys": [2],
"no-multi-spaces": [0],
"no-extra-parens": [2],
"no-unused-vars": [2],
"no-loop-func": [0],
"key-spacing": [0],
"max-len": [2],
"strict": [0],
"indent": [2],
"quotes": [2, "single", "avoid-escape"],
"curly": [0]
},
"env": {
"mocha": true,
"node": true
}
"rules": {
"no-unused-expressions": [0],
"no-underscore-dangle": [0],
"no-multi-spaces": [0],
"no-extra-parens": [2],
"no-unused-vars": [2],
"no-loop-func": [0],
"key-spacing": [0],
"strict": [0],
"indent": [2],
"quotes": [2, "single", "avoid-escape"],
"curly": [0]
},
"env": {
"mocha": true,
"node": true
}
}
3 changes: 3 additions & 0 deletions .prettierrc
@@ -0,0 +1,3 @@
{
"singleQuote": true
}
66 changes: 33 additions & 33 deletions bugs/bug4.js
@@ -1,44 +1,44 @@
var postcss = require('postcss');

function shouldSetZeroBasis(basisValue) {
if (!basisValue) {
return false;
}
return basisValue === '0' || basisValue.replace(/\s/g, '') === '0px';
if (!basisValue) {
return false;
}
return basisValue === '0' || basisValue.replace(/\s/g, '') === '0px';
}

function properBasis(basis) {
if (shouldSetZeroBasis(basis)) {
return '0%';
}
return basis;
if (shouldSetZeroBasis(basis)) {
return '0%';
}
return basis;
}

module.exports = function(decl) {
if (decl.prop === 'flex') {
var values = postcss.list.space(decl.value);

// set default values
var flexGrow = '0';
var flexShrink = '1';
var flexBasis = '0%';

if (values[0]) {
flexGrow = values[0];
}

if (values[1]) {
if (!isNaN(values[1])) {
flexShrink = values[1];
} else {
flexBasis = values[1];
}
}

if (values[2]) {
flexBasis = values[2];
}

decl.value = flexGrow + ' ' + flexShrink + ' ' + properBasis(flexBasis);
if (decl.prop === 'flex') {
var values = postcss.list.space(decl.value);

// set default values
var flexGrow = '0';
var flexShrink = '1';
var flexBasis = '0%';

if (values[0]) {
flexGrow = values[0];
}

if (values[1]) {
if (!isNaN(values[1])) {
flexShrink = values[1];
} else {
flexBasis = values[1];
}
}

if (values[2]) {
flexBasis = values[2];
}

decl.value = flexGrow + ' ' + flexShrink + ' ' + properBasis(flexBasis);
}
};
23 changes: 12 additions & 11 deletions bugs/bug6.js
@@ -1,15 +1,16 @@
var postcss = require('postcss');

module.exports = function(decl) {
if (decl.prop === 'flex') {
var values = postcss.list.space(decl.value);
var flexGrow = values[0];
var flexShrink = values[1] || '1';
var flexBasis = values[2] || '0%';
// Safari seems to hate '0%' and the others seems to make do with a nice value when basis is missing,
// so if we see a '0%', just remove it. This way it'll get adjusted for any other cases where '0%' is
// already defined somewhere else.
if(flexBasis === '0%') flexBasis = null;
decl.value = flexGrow + ' ' + flexShrink + (flexBasis ? ' ' + flexBasis : '');
}
if (decl.prop === 'flex') {
var values = postcss.list.space(decl.value);
var flexGrow = values[0];
var flexShrink = values[1] || '1';
var flexBasis = values[2] || '0%';
// Safari seems to hate '0%' and the others seems to make do with a nice value when basis is missing,
// so if we see a '0%', just remove it. This way it'll get adjusted for any other cases where '0%' is
// already defined somewhere else.
if (flexBasis === '0%') flexBasis = null;
decl.value =
flexGrow + ' ' + flexShrink + (flexBasis ? ' ' + flexBasis : '');
}
};
46 changes: 23 additions & 23 deletions bugs/bug81a.js
@@ -1,27 +1,27 @@
var postcss = require('postcss');

module.exports = function(decl) {
var regex = /(\d{1,}) (\d{1,}) (calc\(.*?\))/g;
var matches = regex.exec(decl.value);
if (decl.prop === 'flex' && matches) {
var grow = postcss.decl({
prop: 'flex-grow',
value: matches[1],
source: decl.source
});
var shrink = postcss.decl({
prop: 'flex-shrink',
value: matches[2],
source: decl.source
});
var basis = postcss.decl({
prop: 'flex-basis',
value: matches[3],
source: decl.source
});
decl.parent.insertBefore(decl, grow);
decl.parent.insertBefore(decl, shrink);
decl.parent.insertBefore(decl, basis);
decl.remove();
}
var regex = /(\d{1,}) (\d{1,}) (calc\(.*?\))/g;
var matches = regex.exec(decl.value);
if (decl.prop === 'flex' && matches) {
var grow = postcss.decl({
prop: 'flex-grow',
value: matches[1],
source: decl.source
});
var shrink = postcss.decl({
prop: 'flex-shrink',
value: matches[2],
source: decl.source
});
var basis = postcss.decl({
prop: 'flex-basis',
value: matches[3],
source: decl.source
});
decl.parent.insertBefore(decl, grow);
decl.parent.insertBefore(decl, shrink);
decl.parent.insertBefore(decl, basis);
decl.remove();
}
};
16 changes: 8 additions & 8 deletions gulpfile.js
@@ -1,17 +1,17 @@
var gulp = require('gulp');

function lint() {
var eslint = require('gulp-eslint');
return gulp.src(['index.js', 'bugs/*.js', 'specs/*.js', 'gulpfile.js'])
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError());
var eslint = require('gulp-eslint');
return gulp
.src(['index.js', 'bugs/*.js', 'specs/*.js', 'gulpfile.js'])
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError());
}

function test() {
var mocha = require('gulp-mocha');
return gulp.src('specs/*.js', { read: false }).pipe(mocha());
var mocha = require('gulp-mocha');
return gulp.src('specs/*.js', { read: false }).pipe(mocha());
}

exports.default = gulp.series(lint, test);

59 changes: 33 additions & 26 deletions index.js
Expand Up @@ -3,32 +3,39 @@ var bug4 = require('./bugs/bug4');
var bug6 = require('./bugs/bug6');
var bug81a = require('./bugs/bug81a');

var doNothingValues = ['none', 'auto', 'content', 'inherit', 'initial', 'unset'];
var doNothingValues = [
'none',
'auto',
'content',
'inherit',
'initial',
'unset'
];

module.exports = postcss.plugin('postcss-flexbugs-fixes', function (opts) {
var options = Object.assign({ bug4: true, bug6: true, bug81a: true }, opts);
module.exports = postcss.plugin('postcss-flexbugs-fixes', function(opts) {
var options = Object.assign({ bug4: true, bug6: true, bug81a: true }, opts);

return function (css) {
css.walkDecls(function (d) {
if (d.value.indexOf('var(') > -1) {
return;
}
if (d.value === 'none') {
return;
}
var values = postcss.list.space(d.value);
if (doNothingValues.indexOf(d.value) > 0 && values.length === 1) {
return;
}
if (options.bug4) {
bug4(d);
}
if (options.bug6) {
bug6(d);
}
if (options.bug81a) {
bug81a(d);
}
});
};
return function(css) {
css.walkDecls(function(d) {
if (d.value.indexOf('var(') > -1) {
return;
}
if (d.value === 'none') {
return;
}
var values = postcss.list.space(d.value);
if (doNothingValues.indexOf(d.value) > 0 && values.length === 1) {
return;
}
if (options.bug4) {
bug4(d);
}
if (options.bug6) {
bug6(d);
}
if (options.bug81a) {
bug81a(d);
}
});
};
});
4 changes: 2 additions & 2 deletions package.json
Expand Up @@ -26,8 +26,8 @@
],
"devDependencies": {
"chai": "^4.2.0",
"gulp": "^4.0.0",
"gulp-eslint": "^0.12.0",
"gulp": "^4.0.2",
"gulp-eslint": "^6.0.0",
"gulp-mocha": "^7.0.2"
},
"scripts": {
Expand Down

0 comments on commit f4886dc

Please sign in to comment.