Compare commits

...

1 commit
v3.2.2 ... main

4 changed files with 11 additions and 11 deletions

View file

@ -19,7 +19,7 @@
</p> </p>
<p align="center"> <p align="center">
<img alt="Version 3.2.2" src="https://img.shields.io/badge/version-3.2.2-blue" /> <img alt="Version 3.3.0" src="https://img.shields.io/badge/version-3.3.0-blue" />
</p> </p>
## Introduction ## Introduction
@ -27,7 +27,7 @@
Sharkitek is a Javascript / TypeScript library designed to ease development of client-side models. Sharkitek is a Javascript / TypeScript library designed to ease development of client-side models.
With Sharkitek, you define the architecture of your models by specifying their properties and their types. With Sharkitek, you define the architecture of your models by specifying their properties and their types.
Then, you can use the defined methods like `serialize`, `deserialize`, `save` or `serializeDiff`. Then, you can use the defined methods like `serialize`, `deserialize`, `patch` or `serializeDiff`.
```typescript ```typescript
class Example extends s.model({ class Example extends s.model({
@ -227,7 +227,7 @@ const result = model.serializeDiff();
// result = {} // result = {}
``` ```
#### `save()` #### `patch()`
Get difference between original values and current ones, then reset it. Get difference between original values and current ones, then reset it.
Similar to call `serializeDiff()` then `resetDiff()`. Similar to call `serializeDiff()` then `resetDiff()`.
@ -246,7 +246,7 @@ const model = (new TestModel()).deserialize({
model.title = "A new title for a new world"; model.title = "A new title for a new world";
const result = model.save(); const result = model.patch();
// if `id` is defined as the model identifier: // if `id` is defined as the model identifier:
// result = { id: 5, title: "A new title for a new world" } // result = { id: 5, title: "A new title for a new world" }
// if `id` is not defined as the model identifier: // if `id` is not defined as the model identifier:

View file

@ -1,6 +1,6 @@
{ {
"name": "@sharkitek/core", "name": "@sharkitek/core",
"version": "3.2.2", "version": "3.3.0",
"description": "TypeScript library for well-designed model architectures.", "description": "TypeScript library for well-designed model architectures.",
"keywords": [ "keywords": [
"deserialization", "deserialization",

View file

@ -105,7 +105,7 @@ export interface ModelDefinition<Shape extends ModelShape, IdentifierType, Model
* Get difference between original values and current ones, then reset it. * Get difference between original values and current ones, then reset it.
* Similar to call `serializeDiff()` then `resetDiff()`. * Similar to call `serializeDiff()` then `resetDiff()`.
*/ */
save(): Partial<SerializedModel<Shape>>; patch(): Partial<SerializedModel<Shape>>;
} }
/** /**
@ -248,7 +248,7 @@ export function model<ModelType extends Model<Shape, IdentifierType<Shape, Ident
}); });
} }
save(): Partial<SerializedModel<Shape>> patch(): Partial<SerializedModel<Shape>>
{ {
// Get the difference. // Get the difference.
const diff = this.serializeDiff(); const diff = this.serializeDiff();

View file

@ -109,7 +109,7 @@ it("create and check state then serialize", () => {
}); });
it("deserialize then save", () => { it("deserialize then patch", () => {
const article = (new Article()).deserialize({ const article = (new Article()).deserialize({
id: 1, id: 1,
title: "this is a test", title: "this is a test",
@ -130,13 +130,13 @@ it("deserialize then save", () => {
expect(article.isDirty()).toBeTruthy(); expect(article.isDirty()).toBeTruthy();
expect(article.save()).toStrictEqual({ expect(article.patch()).toStrictEqual({
id: 1, id: 1,
text: "Modified text.", text: "Modified text.",
}); });
}); });
it("save with modified submodels", () => { it("patch with modified submodels", () => {
const article = (new Article()).deserialize({ const article = (new Article()).deserialize({
id: 1, id: 1,
title: "this is a test", title: "this is a test",
@ -152,7 +152,7 @@ it("save with modified submodels", () => {
article.authors[0].name = "TEST"; article.authors[0].name = "TEST";
article.authors[1].createdAt.setMonth(9); article.authors[1].createdAt.setMonth(9);
expect(article.save()).toStrictEqual({ expect(article.patch()).toStrictEqual({
id: 1, id: 1,
authors: [ authors: [
{ name: "TEST" }, { name: "TEST" },