HSET.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.transformArguments = exports.FIRST_KEY_INDEX = void 0;
  4. exports.FIRST_KEY_INDEX = 1;
  5. function transformArguments(...[key, value, fieldValue]) {
  6. const args = ['HSET', key];
  7. if (typeof value === 'string' || typeof value === 'number' || Buffer.isBuffer(value)) {
  8. args.push(convertValue(value), convertValue(fieldValue));
  9. }
  10. else if (value instanceof Map) {
  11. pushMap(args, value);
  12. }
  13. else if (Array.isArray(value)) {
  14. pushTuples(args, value);
  15. }
  16. else {
  17. pushObject(args, value);
  18. }
  19. return args;
  20. }
  21. exports.transformArguments = transformArguments;
  22. function pushMap(args, map) {
  23. for (const [key, value] of map.entries()) {
  24. args.push(convertValue(key), convertValue(value));
  25. }
  26. }
  27. function pushTuples(args, tuples) {
  28. for (const tuple of tuples) {
  29. if (Array.isArray(tuple)) {
  30. pushTuples(args, tuple);
  31. continue;
  32. }
  33. args.push(convertValue(tuple));
  34. }
  35. }
  36. function pushObject(args, object) {
  37. for (const key of Object.keys(object)) {
  38. args.push(convertValue(key), convertValue(object[key]));
  39. }
  40. }
  41. function convertValue(value) {
  42. return typeof value === 'number' ?
  43. value.toString() :
  44. value;
  45. }