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.

getBindingIdentifiers.js 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = getBindingIdentifiers;
  6. var _generated = require("../validators/generated");
  7. function getBindingIdentifiers(node, duplicates, outerOnly) {
  8. let search = [].concat(node);
  9. const ids = Object.create(null);
  10. while (search.length) {
  11. const id = search.shift();
  12. if (!id) continue;
  13. const keys = getBindingIdentifiers.keys[id.type];
  14. if ((0, _generated.isIdentifier)(id)) {
  15. if (duplicates) {
  16. const _ids = ids[id.name] = ids[id.name] || [];
  17. _ids.push(id);
  18. } else {
  19. ids[id.name] = id;
  20. }
  21. continue;
  22. }
  23. if ((0, _generated.isExportDeclaration)(id) && !(0, _generated.isExportAllDeclaration)(id)) {
  24. if ((0, _generated.isDeclaration)(id.declaration)) {
  25. search.push(id.declaration);
  26. }
  27. continue;
  28. }
  29. if (outerOnly) {
  30. if ((0, _generated.isFunctionDeclaration)(id)) {
  31. search.push(id.id);
  32. continue;
  33. }
  34. if ((0, _generated.isFunctionExpression)(id)) {
  35. continue;
  36. }
  37. }
  38. if (keys) {
  39. for (let i = 0; i < keys.length; i++) {
  40. const key = keys[i];
  41. if (id[key]) {
  42. search = search.concat(id[key]);
  43. }
  44. }
  45. }
  46. }
  47. return ids;
  48. }
  49. getBindingIdentifiers.keys = {
  50. DeclareClass: ["id"],
  51. DeclareFunction: ["id"],
  52. DeclareModule: ["id"],
  53. DeclareVariable: ["id"],
  54. DeclareInterface: ["id"],
  55. DeclareTypeAlias: ["id"],
  56. DeclareOpaqueType: ["id"],
  57. InterfaceDeclaration: ["id"],
  58. TypeAlias: ["id"],
  59. OpaqueType: ["id"],
  60. CatchClause: ["param"],
  61. LabeledStatement: ["label"],
  62. UnaryExpression: ["argument"],
  63. AssignmentExpression: ["left"],
  64. ImportSpecifier: ["local"],
  65. ImportNamespaceSpecifier: ["local"],
  66. ImportDefaultSpecifier: ["local"],
  67. ImportDeclaration: ["specifiers"],
  68. ExportSpecifier: ["exported"],
  69. ExportNamespaceSpecifier: ["exported"],
  70. ExportDefaultSpecifier: ["exported"],
  71. FunctionDeclaration: ["id", "params"],
  72. FunctionExpression: ["id", "params"],
  73. ArrowFunctionExpression: ["params"],
  74. ObjectMethod: ["params"],
  75. ClassMethod: ["params"],
  76. ForInStatement: ["left"],
  77. ForOfStatement: ["left"],
  78. ClassDeclaration: ["id"],
  79. ClassExpression: ["id"],
  80. RestElement: ["argument"],
  81. UpdateExpression: ["argument"],
  82. ObjectProperty: ["value"],
  83. AssignmentPattern: ["left"],
  84. ArrayPattern: ["elements"],
  85. ObjectPattern: ["properties"],
  86. VariableDeclaration: ["declarations"],
  87. VariableDeclarator: ["id"]
  88. };