import { makeGetSet } from ‘../moment/get-set’; import { addFormatToken } from ‘../format/format’; import { addUnitAlias } from ‘./aliases’; import { addRegexToken, match1, match2, match3, match1to3, matchUnsigned } from ‘../parse/regex’; import { addParseToken } from ‘../parse/token’; import { MILLISECOND } from ‘./constants’; import toInt from ‘../utils/to-int’;

// FORMATTING

addFormatToken(‘S’, 0, 0, function () {

return ~~(this.millisecond() / 100);

});

addFormatToken(0, [‘SS’, 2], 0, function () {

return ~~(this.millisecond() / 10);

});

function milliseconds (token) {

addFormatToken(0, [token, 3], 0, 'millisecond');

}

milliseconds(‘SSS’); milliseconds(‘SSSS’);

// ALIASES

addUnitAlias(‘millisecond’, ‘ms’);

// PARSING

addRegexToken(‘S’, match1to3, match1); addRegexToken(‘SS’, match1to3, match2); addRegexToken(‘SSS’, match1to3, match3); addRegexToken(‘SSSS’, matchUnsigned); addParseToken([‘S’, ‘SS’, ‘SSS’, ‘SSSS’], function (input, array) {

array[MILLISECOND] = toInt(('0.' + input) * 1000);

});

// MOMENTS

export var getSetMillisecond = makeGetSet(‘Milliseconds’, false);