388d038d8b1ef30556c42784d953ff728320a7783baaaaeb1ddeb9cd76cce59d65704c417816fc4e2976e040b575135bafbb95f6d167da03b055943334a911 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { normalizeUnits } from '../units/aliases';
  2. import { hooks } from '../utils/hooks';
  3. import isFunction from '../utils/is-function';
  4. export function makeGetSet (unit, keepTime) {
  5. return function (value) {
  6. if (value != null) {
  7. set(this, unit, value);
  8. hooks.updateOffset(this, keepTime);
  9. return this;
  10. } else {
  11. return get(this, unit);
  12. }
  13. };
  14. }
  15. export function get (mom, unit) {
  16. return mom.isValid() ?
  17. mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
  18. }
  19. export function set (mom, unit, value) {
  20. if (mom.isValid()) {
  21. mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
  22. }
  23. }
  24. // MOMENTS
  25. export function getSet (units, value) {
  26. var unit;
  27. if (typeof units === 'object') {
  28. for (unit in units) {
  29. this.set(unit, units[unit]);
  30. }
  31. } else {
  32. units = normalizeUnits(units);
  33. if (isFunction(this[units])) {
  34. return this[units](value);
  35. }
  36. }
  37. return this;
  38. }