8000 Compare mishandles Dates · Issue #325 · Starcounter-Jack/JSON-Patch · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Compare mishandles Dates #325
Open
Open
@DillonReddingW2G

Description

@DillonReddingW2G

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' }
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0