add compressData and decompressData to the npm package

This commit is contained in:
Achille Lacoin 2022-07-21 20:31:29 +00:00 committed by pomdtr
parent 958ebeae61
commit f5c44e1f0b
No known key found for this signature in database
GPG Key ID: 125AC29703080DF9
4 changed files with 33 additions and 0 deletions

View File

@ -15,6 +15,11 @@ Please add the latest change on the top under the correct section.
### Excalidraw API
#### Features
- Added [`compressData`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#compressData) and [`decompressData`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#decompressData)
- Added [`generateEncryptionKey`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#generateEncryptionKey)
#### Breaking Changes
- `setToastMessage` API is now renamed to `setToast` API and the function signature is also updated [#5427](https://github.com/excalidraw/excalidraw/pull/5427). You can also pass `duration` and `closable` attributes along with `message`.

View File

@ -1150,6 +1150,29 @@ loadSceneOrLibraryFromBlob(
This function loads either scene or library data from the supplied blob. If the blob contains scene data, and you pass `localAppState`, `localAppState` value will be preferred over the `appState` derived from `blob`. Throws if blob doesn't contain neither valid scene data or library data.
#### `compressData`
```js
const encrytionKey = generateEncryptionKey();
const buffer = await compressData(
new TextEncoder().encode(
serializeAsJSON(elements, appState, files, "database"),
),
{ encryptionKey },
);
```
#### `decompressData`
```js
const { data: decodedBuffer } = await decompressData(new Uint8Array(payload), {
decryptionKey,
});
```
#### `generateEncryptionKey`
#### `getFreeDrawSvgPath`
**How to use**

View File

@ -206,6 +206,9 @@ export {
getFreeDrawSvgPath,
exportToClipboard,
mergeLibraryItems,
generateEncryptionKey,
compressData,
decompressData,
} from "../../packages/utils";
export { isLinearElement } from "../../element/typeChecks";

View File

@ -193,6 +193,8 @@ export const exportToClipboard = async (
}
};
export { decompressData, compressData } from "../data/encode";
export { generateEncryptionKey } from "../data/encryption";
export { serializeAsJSON, serializeLibraryAsJSON } from "../data/json";
export {
loadFromBlob,