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.

builder.js 910B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = builder;
  6. var _definitions = require("../definitions");
  7. var _validate = require("../validators/validate");
  8. function builder(type, ...args) {
  9. const keys = _definitions.BUILDER_KEYS[type];
  10. const countArgs = args.length;
  11. if (countArgs > keys.length) {
  12. throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
  13. }
  14. const node = {
  15. type
  16. };
  17. let i = 0;
  18. keys.forEach(key => {
  19. const field = _definitions.NODE_FIELDS[type][key];
  20. let arg;
  21. if (i < countArgs) arg = args[i];
  22. if (arg === undefined) {
  23. arg = Array.isArray(field.default) ? [] : field.default;
  24. }
  25. node[key] = arg;
  26. i++;
  27. });
  28. for (const key of Object.keys(node)) {
  29. (0, _validate.default)(node, key, node[key]);
  30. }
  31. return node;
  32. }