Software zum Installieren eines Smart-Mirror Frameworks , zum Nutzen von hochschulrelevanten Informationen, auf einem Raspberry-Pi.
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.

index.js 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // @ts-nocheck
  2. 'use strict';
  3. const _ = require('lodash');
  4. const ruleMessages = require('../../utils/ruleMessages');
  5. const selectorAttributeOperatorSpaceChecker = require('../selectorAttributeOperatorSpaceChecker');
  6. const validateOptions = require('../../utils/validateOptions');
  7. const whitespaceChecker = require('../../utils/whitespaceChecker');
  8. const ruleName = 'selector-attribute-operator-space-before';
  9. const messages = ruleMessages(ruleName, {
  10. expectedBefore: (operator) => `Expected single space before "${operator}"`,
  11. rejectedBefore: (operator) => `Unexpected whitespace before "${operator}"`,
  12. });
  13. function rule(expectation, options, context) {
  14. const checker = whitespaceChecker('space', expectation, messages);
  15. return (root, result) => {
  16. const validOptions = validateOptions(result, ruleName, {
  17. actual: expectation,
  18. possible: ['always', 'never'],
  19. });
  20. if (!validOptions) {
  21. return;
  22. }
  23. selectorAttributeOperatorSpaceChecker({
  24. root,
  25. result,
  26. locationChecker: checker.before,
  27. checkedRuleName: ruleName,
  28. checkBeforeOperator: true,
  29. fix: context.fix
  30. ? (attributeNode) => {
  31. const rawAttrAfter = _.get(attributeNode, 'raws.spaces.attribute.after');
  32. const { attrAfter, setAttrAfter } = rawAttrAfter
  33. ? {
  34. attrAfter: rawAttrAfter,
  35. setAttrAfter(fixed) {
  36. attributeNode.raws.spaces.attribute.after = fixed;
  37. },
  38. }
  39. : {
  40. attrAfter: _.get(attributeNode, 'spaces.attribute.after', ''),
  41. setAttrAfter(fixed) {
  42. _.set(attributeNode, 'spaces.attribute.after', fixed);
  43. },
  44. };
  45. if (expectation === 'always') {
  46. setAttrAfter(attrAfter.replace(/\s*$/, ' '));
  47. return true;
  48. }
  49. if (expectation === 'never') {
  50. setAttrAfter(attrAfter.replace(/\s*$/, ''));
  51. return true;
  52. }
  53. }
  54. : null,
  55. });
  56. };
  57. }
  58. rule.ruleName = ruleName;
  59. rule.messages = messages;
  60. module.exports = rule;