ModuleRequest.h 914 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) 2021-2022, David Tuin <davidot@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/DeprecatedFlyString.h>
  8. #include <AK/Vector.h>
  9. namespace JS {
  10. // 2.9 ModuleRequest Records, https://tc39.es/proposal-import-assertions/#sec-modulerequest-record
  11. struct ModuleRequest {
  12. struct Assertion {
  13. DeprecatedString key;
  14. DeprecatedString value;
  15. };
  16. ModuleRequest() = default;
  17. explicit ModuleRequest(DeprecatedFlyString specifier)
  18. : module_specifier(move(specifier))
  19. {
  20. }
  21. ModuleRequest(DeprecatedFlyString module_specifier, Vector<Assertion> assertions);
  22. void add_assertion(DeprecatedString key, DeprecatedString value)
  23. {
  24. assertions.empend(move(key), move(value));
  25. }
  26. DeprecatedFlyString module_specifier; // [[Specifier]]
  27. Vector<Assertion> assertions; // [[Assertions]]
  28. };
  29. }