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.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // @ts-nocheck
  2. 'use strict';
  3. const _ = require('lodash');
  4. const isStandardSyntaxAtRule = require('../../utils/isStandardSyntaxAtRule');
  5. const report = require('../../utils/report');
  6. const ruleMessages = require('../../utils/ruleMessages');
  7. const validateOptions = require('../../utils/validateOptions');
  8. const ruleName = 'at-rule-property-required-list';
  9. const messages = ruleMessages(ruleName, {
  10. expected: (property, atRule) => `Expected property "${property}" for at-rule "${atRule}"`,
  11. });
  12. function rule(list) {
  13. return (root, result) => {
  14. const validOptions = validateOptions(result, ruleName, {
  15. actual: list,
  16. possible: [_.isObject],
  17. });
  18. if (!validOptions) {
  19. return;
  20. }
  21. root.walkAtRules((atRule) => {
  22. if (!isStandardSyntaxAtRule(atRule)) {
  23. return;
  24. }
  25. const { name, nodes } = atRule;
  26. const atRuleName = name.toLowerCase();
  27. if (!list[atRuleName]) {
  28. return;
  29. }
  30. list[atRuleName].forEach((property) => {
  31. const propertyName = property.toLowerCase();
  32. const hasProperty = nodes.find(
  33. ({ type, prop }) => type === 'decl' && prop.toLowerCase() === propertyName,
  34. );
  35. if (hasProperty) {
  36. return;
  37. }
  38. return report({
  39. message: messages.expected(propertyName, atRuleName),
  40. node: atRule,
  41. result,
  42. ruleName,
  43. });
  44. });
  45. });
  46. };
  47. }
  48. rule.ruleName = ruleName;
  49. rule.messages = messages;
  50. module.exports = rule;