This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
6 years ago
|
/**
|
||
|
* @fileoverview Detects inline styles
|
||
|
* @author Aaron Greenwald
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
const util = require('util');
|
||
|
const Components = require('../util/Components');
|
||
|
const styleSheet = require('../util/stylesheet');
|
||
|
|
||
|
const StyleSheets = styleSheet.StyleSheets;
|
||
|
const astHelpers = styleSheet.astHelpers;
|
||
|
|
||
|
module.exports = Components.detect((context) => {
|
||
|
const styleSheets = new StyleSheets();
|
||
|
|
||
|
function reportInlineStyles(inlineStyles) {
|
||
|
if (inlineStyles) {
|
||
|
inlineStyles.forEach((style) => {
|
||
|
if (style) {
|
||
|
const expression = util.inspect(style.expression);
|
||
|
context.report({
|
||
|
node: style.node,
|
||
|
message: 'Inline style: {{expression}}',
|
||
|
data: { expression },
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
JSXAttribute: (node) => {
|
||
|
if (astHelpers.isStyleAttribute(node)) {
|
||
|
const styles = astHelpers.collectStyleObjectExpressions(node.value, context);
|
||
|
styleSheets.addObjectExpressions(styles);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
'Program:exit': () => reportInlineStyles(styleSheets.getObjectExpressions()),
|
||
|
};
|
||
|
});
|
||
|
|
||
|
module.exports.schema = [];
|