-
Notifications
You must be signed in to change notification settings - Fork 224
Compare mishandles Dates #325
Copy link
Copy link
Open
Description
Using compare on an object with Date fields generates an add operation per character of the ISO date string, rather than comparing the Date as a whole.
Example
import { compare } from 'fast-json-patch';
const obj1 = { foo: new Date() };
const obj2 = { foo: new Date(obj1.foo.getTime() + 1)};
const diff = compare(obj1, obj2);
console.log(diff);Output
[
{ op: 'add', path: '/foo/0', value: '2' },
{ op: 'add', path: '/foo/1', value: '0' },
{ op: 'add', path: '/foo/2', value: '2' },
{ op: 'add', path: '/foo/3', value: '5' },
{ op: 'add', path: '/foo/4', value: '-' },
{ op: 'add', path: '/foo/5', value: '0' },
{ op: 'add', path: '/foo/6', value: '2' },
{ op: 'add', path: '/foo/7', value: '-' },
{ op: 'add', path: '/foo/8', value: '1' },
{ op: 'add', path: '/foo/9', value: '3' },
{ op: 'add', path: '/foo/10', value: 'T' },
{ op: 'add', path: '/foo/11', value: '1' },
{ op: 'add', path: '/foo/12', value: '4' },
{ op: 'add', path: '/foo/13', value: ':' },
{ op: 'add', path: '/foo/14', value: '5' },
{ op: 'add', path: '/foo/15', value: '8' },
{ op: 'add', path: '/foo/16', value: ':' },
{ op: 'add', path: '/foo/17', value: '4' },
{ op: 'add', path: '/foo/18', value: '0' },
{ op: 'add', path: '/foo/19', value: '.' },
{ op: 'add', path: '/foo/20', value: '8' },
{ op: 'add', path: '/foo/21', value: '5' },
{ op: 'add', path: '/foo/22', value: '5' },
{ op: 'add', path: '/foo/23', value: 'Z' }
]Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels