This small project is a result of my comment found in my old, private project. Near the standard JSON model construction with bObserve set to true I put a comment "make it fully observable" - so the JSON model sees new items in an array as well as new properties. The latter might seem not so useful..unless you do a really dynamic stuff, which was my case. My first idea was to add some UI5 specific logic to my viewModels, but I wanted to keep them as clean as possible. JavaScript's Proxy seemed as a choice to enrich plain objects to fire additional logic, enough for updating bindings.

The project is in Typescript, because I wanted to test the newest UI5 tooling and support for this language. It has a sample UI.

const dataObject = {
  someValue: ["a", "b"],
};

let simpleJSONOModel = new JSONOModel(dataObject);
this.getView().setModel(simpleJSONOModel, "simpleJSONOModel");
simpleJSONOModel = simpleJSONOModel.getData();
dataObject.someValue.push("c");
JSONO Model playground page

GitHub: https://github.com/wozjac/jsono-model