Skip to content

Commit

Permalink
fix: re-expose model.send for custom messages (#146)
Browse files Browse the repository at this point in the history
  • Loading branch information
manzt committed Jun 19, 2023
1 parent c2a9d9b commit 774f139
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
6 changes: 6 additions & 0 deletions .changeset/giant-trainers-wink.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"anywidget": patch
"@anywidget/types": patch
---

fix: re-expose model.send for custom messages
11 changes: 2 additions & 9 deletions packages/anywidget/src/widget.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,22 +108,15 @@ async function load_esm(esm) {
* added by the user-defined render.
*/
function extract_context(view) {
/** @type {import("@anywidget/types").AnyModel} */
let model = {
/** @param {string} name */
get: view.model.get.bind(view.model),
set: view.model.set.bind(view.model),
save_changes: view.model.save_changes.bind(view.model),
/**
* @param {string} name
* @param {any} callback
*/
send: view.model.send.bind(view.model),
on(name, callback) {
view.model.on(name, callback, view);
},
/**
* @param {string} name
* @param {any} callback
*/
off(name, callback) {
view.model.off(name, callback, view);
},
Expand Down
7 changes: 4 additions & 3 deletions packages/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@ interface EventHandler {
export interface AnyModel<T extends ObjectHash = ObjectHash> {
get<K extends keyof T>(key: K): T[K];
set<K extends keyof T>(key: K, value: T[K]): void;
off(eventName?: string | null, callback?: EventHandler | null): void;
on(eventName: string, callback: EventHandler): void;
save_changes(): void;
on(eventName: string, callback: EventHandler): void;
off(eventName?: string | null, callback?: EventHandler | null): void;
send(content: any, callbacks?: any, buffers?: ArrayBuffer[] | ArrayBufferView[]): void;
}

export interface RenderContext<Model> {
export interface RenderContext<Model extends AnyModel> {
model: Model;
el: HTMLElement;
}
Expand Down

0 comments on commit 774f139

Please sign in to comment.