mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-01-28 07:03:17 +08:00
Create a more consistent 'parseDuration'
- Remove 'durationToDate' which was not a usable function
This commit is contained in:
parent
cde3a7cf70
commit
f7b8d1ac07
@ -230,7 +230,15 @@ const getStartDate = function (prevTime, dateFormat, str) {
|
|||||||
return new Date();
|
return new Date();
|
||||||
};
|
};
|
||||||
|
|
||||||
const durationToDate = function (durationStatement, relativeTime) {
|
/**
|
||||||
|
* Parse a duration as an absolute date.
|
||||||
|
*
|
||||||
|
* @param durationStr A string representing a duration
|
||||||
|
* @param relativeTime The moment when this duration starts
|
||||||
|
* @returns The date of the end of the duration.
|
||||||
|
*/
|
||||||
|
const parseDuration = function (durationStr, relativeTime) {
|
||||||
|
const durationStatement = /^([\d]+)([wdhms]|ms)$/.exec(durationStr.trim());
|
||||||
if (durationStatement !== null) {
|
if (durationStatement !== null) {
|
||||||
switch (durationStatement[2]) {
|
switch (durationStatement[2]) {
|
||||||
case 'ms':
|
case 'ms':
|
||||||
@ -253,7 +261,6 @@ const durationToDate = function (durationStatement, relativeTime) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Default date - now
|
|
||||||
return relativeTime.toDate();
|
return relativeTime.toDate();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -270,7 +277,7 @@ const getEndDate = function (prevTime, dateFormat, str, inclusive) {
|
|||||||
return mDate.toDate();
|
return mDate.toDate();
|
||||||
}
|
}
|
||||||
|
|
||||||
return durationToDate(/^([\d]+)([wdhms]|ms)$/.exec(str.trim()), moment(prevTime));
|
return parseDuration(str, moment(prevTime));
|
||||||
};
|
};
|
||||||
|
|
||||||
let taskCnt = 0;
|
let taskCnt = 0;
|
||||||
@ -666,7 +673,7 @@ export default {
|
|||||||
setLink,
|
setLink,
|
||||||
getLinks,
|
getLinks,
|
||||||
bindFunctions,
|
bindFunctions,
|
||||||
durationToDate,
|
parseDuration,
|
||||||
isInvalidDate,
|
isInvalidDate,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ describe('when using the ganttDb', function () {
|
|||||||
|
|
||||||
describe('when using relative times', function () {
|
describe('when using relative times', function () {
|
||||||
it.each`
|
it.each`
|
||||||
diff | date | expected
|
diff | date | expected
|
||||||
${' 1d'} | ${moment('2019-01-01')} | ${moment('2019-01-02').toDate()}
|
${'1d'} | ${moment('2019-01-01')} | ${moment('2019-01-02').toDate()}
|
||||||
${' 1w'} | ${moment('2019-01-01')} | ${moment('2019-01-08').toDate()}
|
${'1w'} | ${moment('2019-01-01')} | ${moment('2019-01-08').toDate()}
|
||||||
`('should add $diff to $date resulting in $expected', ({ diff, date, expected }) => {
|
`('should add $diff to $date resulting in $expected', ({ diff, date, expected }) => {
|
||||||
expect(ganttDb.durationToDate(diff, date)).toEqual(expected);
|
expect(ganttDb.parseDuration(diff, date)).toEqual(expected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ describe('when using the ganttDb', function () {
|
|||||||
ganttDb.addTask('test2', 'id2,after id1,5ms');
|
ganttDb.addTask('test2', 'id2,after id1,5ms');
|
||||||
ganttDb.addSection('testa2');
|
ganttDb.addSection('testa2');
|
||||||
ganttDb.addTask('test3', 'id3,20,10ms');
|
ganttDb.addTask('test3', 'id3,20,10ms');
|
||||||
ganttDb.addTask('test4', 'id4,after id3,5ms');
|
ganttDb.addTask('test4', 'id4,after id3,0.005s');
|
||||||
|
|
||||||
const tasks = ganttDb.getTasks();
|
const tasks = ganttDb.getTasks();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user