2c0c6d7 ←69f94faantonApr 13, 2026 api

trashed get-set.js

? /sublimated/undefined +0 -73
1import { normalizeUnits, normalizeObjectUnits } from '../units/aliases';
2import { getPrioritizedUnits } from '../units/priorities';
3import { hooks } from '../utils/hooks';
4import isFunction from '../utils/is-function';
5import { daysInMonth } from '../units/month';
6import { isLeapYear } from '../utils/is-leap-year';
7import toInt from '../utils/to-int';
8
9export function makeGetSet(unit, keepTime) {
10 return function (value) {
11 if (value != null) {
12 set(this, unit, value);
13 hooks.updateOffset(this, keepTime);
14 return this;
15 } else {
16 return get(this, unit);
17 }
18 };
19}
20
21export function get(mom, unit) {
22 return mom.isValid()
23 ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()
24 : NaN;
25}
26
27export function set(mom, unit, value) {
28 if (mom.isValid() && !isNaN(value)) {
29 if (
30 unit === 'FullYear' &&
31 isLeapYear(mom.year()) &&
32 mom.month() === 1 &&
33 mom.date() === 29
34 ) {
35 value = toInt(value);
36 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](
37 value,
38 mom.month(),
39 daysInMonth(value, mom.month())
40 );
41 } else {
42 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
43 }
44 }
45}
46
47// MOMENTS
48
49export function stringGet(units) {
50 units = normalizeUnits(units);
51 if (isFunction(this[units])) {
52 return this[units]();
53 }
54 return this;
55}
56
57export function stringSet(units, value) {
58 if (typeof units === 'object') {
59 units = normalizeObjectUnits(units);
60 var prioritized = getPrioritizedUnits(units),
61 i,
62 prioritizedLen = prioritized.length;
63 for (i = 0; i < prioritizedLen; i++) {
64 this[prioritized[i].unit](units[prioritized[i].unit]);
65 }
66 } else {
67 units = normalizeUnits(units);
68 if (isFunction(this[units])) {
69 return this[units](value);
70 }
71 }
72 return this;
73}