29b5251c1075c169f056f22362cd399779b124a76048f182a89f1a63eb1f1b835945d79d0031509c149642fbae855e764d6c09f4858cf922ea0f8565fb651e 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { normalizeUnits, normalizeObjectUnits } from '../units/aliases';
  2. import { getPrioritizedUnits } from '../units/priorities';
  3. import { hooks } from '../utils/hooks';
  4. import isFunction from '../utils/is-function';
  5. export function makeGetSet (unit, keepTime) {
  6. return function (value) {
  7. if (value != null) {
  8. set(this, unit, value);
  9. hooks.updateOffset(this, keepTime);
  10. return this;
  11. } else {
  12. return get(this, unit);
  13. }
  14. };
  15. }
  16. export function get (mom, unit) {
  17. return mom.isValid() ?
  18. mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
  19. }
  20. export function set (mom, unit, value) {
  21. if (mom.isValid()) {
  22. mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
  23. }
  24. }
  25. // MOMENTS
  26. export function stringGet (units) {
  27. units = normalizeUnits(units);
  28. if (isFunction(this[units])) {
  29. return this[units]();
  30. }
  31. return this;
  32. }
  33. export function stringSet (units, value) {
  34. if (typeof units === 'object') {
  35. units = normalizeObjectUnits(units);
  36. var prioritized = getPrioritizedUnits(units);
  37. for (var i = 0; i < prioritized.length; i++) {
  38. this[prioritized[i].unit](units[prioritized[i].unit]);
  39. }
  40. } else {
  41. units = normalizeUnits(units);
  42. if (isFunction(this[units])) {
  43. return this[units](value);
  44. }
  45. }
  46. return this;
  47. }