Giter VIP home page Giter VIP logo

patch-event's Introduction

@npolar/patch-event

Non-destructive data modification via (JSON) Patch events. Build status

Use

Register Use register to have a host element re-emit regular input events as patch events.

import { register } from "@npolar/patch-event/src/host.js";

const host = document.querySelector("form");
const handler = event => console.log(event.detail);
register(host, handler);
<form>
  <input path="/foo" />
  <input path="/bar" />
</form>

The code above will log a JSON Patch operation for every native input event, example payload:

{ "op": "replace", "path": "/foo", "value": "bar" }

eventTypes Specify which events that should be re-sent as patch events using eventTypes:

register(host, handler, { eventTypes: ["change"] });

Features

  • Modern: Codebase is ECMAScript2019
  • Functional: employs a set of pure functions
  • Safe: Patches are performed on a deep copy of the original
  • Tiny (2Kb gzipped)

Scenarios

Created with the following usage scenarios in mind:

  • Form editing with modification history and undo/redo functionality (demo)
  • Parameter transformation, ie. convert user input into the shape needed by your application's internals

Install

yarn add https://github.com/npolar/patch-event#v0.0.1

Requirements

A ES2019 compliant browser; eg. Firefox >= 63, Chrome >= 73, Edge >= 7x

Credits

This library builds a non-destructive patch function over chbrown's JSON Pointer and JSON Patch implementation (rfc6902), using Dr. Alex's deepCopy.

patch-event's People

Contributors

cnrdh avatar pierrecagne avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

pierrecagne

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.