@wasm-idle/react 1.0.0-next.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export interface ReactWasmIdleHost {
7
7
  current: TerminalControl | undefined;
8
8
  };
9
9
  terminalProps: PlaygroundBinding['terminalProps'];
10
+ dispose: () => Promise<void>;
10
11
  }
11
12
  export declare function useWasmIdlePlayground(runtimeAssets: SandboxRuntimeAssets, loadSandbox: SandboxLoader): PlaygroundBinding;
12
13
  export declare function useWasmIdleHost(runtimeAssets: SandboxRuntimeAssets, loadSandbox: SandboxLoader): ReactWasmIdleHost;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC,WAAW,EAAE,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,KAAK,IAAI,CAAC;IAC7D,WAAW,EAAE;QAAE,OAAO,EAAE,eAAe,GAAG,SAAS,CAAA;KAAE,CAAC;IACtD,aAAa,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;CAClD;AAED,wBAAgB,qBAAqB,CACpC,aAAa,EAAE,oBAAoB,EACnC,WAAW,EAAE,aAAa,GACxB,iBAAiB,CAKnB;AAED,wBAAgB,eAAe,CAC9B,aAAa,EAAE,oBAAoB,EACnC,WAAW,EAAE,aAAa,GACxB,iBAAiB,CAenB;AAED,YAAY,EACX,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC,WAAW,EAAE,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,KAAK,IAAI,CAAC;IAC7D,WAAW,EAAE;QAAE,OAAO,EAAE,eAAe,GAAG,SAAS,CAAA;KAAE,CAAC;IACtD,aAAa,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,wBAAgB,qBAAqB,CACpC,aAAa,EAAE,oBAAoB,EACnC,WAAW,EAAE,aAAa,GACxB,iBAAiB,CAOnB;AAED,wBAAgB,eAAe,CAC9B,aAAa,EAAE,oBAAoB,EACnC,WAAW,EAAE,aAAa,GACxB,iBAAiB,CA0BnB;AAED,YAAY,EACX,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,10 @@
1
1
  import { createPlaygroundBinding } from '@wasm-idle/core';
2
- import { useCallback, useMemo, useRef, useState } from 'react';
2
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
+ import { disposeReactTerminalRef } from './lifecycle.js';
3
4
  export function useWasmIdlePlayground(runtimeAssets, loadSandbox) {
4
- return useMemo(() => createPlaygroundBinding(runtimeAssets, loadSandbox), [runtimeAssets, loadSandbox]);
5
+ const binding = useMemo(() => createPlaygroundBinding(runtimeAssets, loadSandbox), [runtimeAssets, loadSandbox]);
6
+ useEffect(() => () => void binding.dispose(), [binding]);
7
+ return binding;
5
8
  }
6
9
  export function useWasmIdleHost(runtimeAssets, loadSandbox) {
7
10
  const binding = useWasmIdlePlayground(runtimeAssets, loadSandbox);
@@ -11,12 +14,20 @@ export function useWasmIdleHost(runtimeAssets, loadSandbox) {
11
14
  terminalRef.current = nextTerminal;
12
15
  setTerminalState(nextTerminal);
13
16
  }, []);
17
+ useEffect(() => () => {
18
+ void disposeReactTerminalRef(terminalRef).catch(() => { });
19
+ }, []);
20
+ const dispose = useCallback(async () => {
21
+ await disposeReactTerminalRef(terminalRef, () => setTerminalState(undefined));
22
+ await binding.dispose();
23
+ }, [binding]);
14
24
  return {
15
25
  binding,
16
26
  terminal,
17
27
  setTerminal,
18
28
  terminalRef,
19
- terminalProps: binding.terminalProps
29
+ terminalProps: binding.terminalProps,
30
+ dispose
20
31
  };
21
32
  }
22
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,EAKvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAU/D,MAAM,UAAU,qBAAqB,CACpC,aAAmC,EACnC,WAA0B;IAE1B,OAAO,OAAO,CACb,GAAG,EAAE,CAAC,uBAAuB,CAAC,aAAa,EAAE,WAAW,CAAC,EACzD,CAAC,aAAa,EAAE,WAAW,CAAC,CAC5B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC9B,aAAmC,EACnC,WAA0B;IAE1B,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,MAAM,CAA8B,SAAS,CAAC,CAAC;IACnE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAA8B,SAAS,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,YAAyC,EAAE,EAAE;QAC7E,WAAW,CAAC,OAAO,GAAG,YAAY,CAAC;QACnC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO;QACN,OAAO;QACP,QAAQ;QACR,WAAW;QACX,WAAW;QACX,aAAa,EAAE,OAAO,CAAC,aAAa;KACpC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,EAKvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAWzD,MAAM,UAAU,qBAAqB,CACpC,aAAmC,EACnC,WAA0B;IAE1B,MAAM,OAAO,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,uBAAuB,CAAC,aAAa,EAAE,WAAW,CAAC,EACzD,CAAC,aAAa,EAAE,WAAW,CAAC,CAC5B,CAAC;IACF,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAC9B,aAAmC,EACnC,WAA0B;IAE1B,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,MAAM,CAA8B,SAAS,CAAC,CAAC;IACnE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAA8B,SAAS,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,YAAyC,EAAE,EAAE;QAC7E,WAAW,CAAC,OAAO,GAAG,YAAY,CAAC;QACnC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,SAAS,CACR,GAAG,EAAE,CAAC,GAAG,EAAE;QACV,KAAK,uBAAuB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC3D,CAAC,EACD,EAAE,CACF,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,uBAAuB,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9E,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO;QACN,OAAO;QACP,QAAQ;QACR,WAAW;QACX,WAAW;QACX,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,OAAO;KACP,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { TerminalControl } from '@wasm-idle/core';
2
+ export interface ReactTerminalRef {
3
+ current: TerminalControl | undefined;
4
+ }
5
+ export declare function disposeReactTerminalRef(terminalRef: ReactTerminalRef, clearTerminal?: () => void): Promise<void>;
6
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,eAAe,GAAG,SAAS,CAAC;CACrC;AAED,wBAAsB,uBAAuB,CAC5C,WAAW,EAAE,gBAAgB,EAC7B,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -0,0 +1,8 @@
1
+ export async function disposeReactTerminalRef(terminalRef, clearTerminal) {
2
+ const currentTerminal = terminalRef.current;
3
+ terminalRef.current = undefined;
4
+ clearTerminal?.();
5
+ if (currentTerminal)
6
+ await currentTerminal.destroy();
7
+ }
8
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,WAA6B,EAC7B,aAA0B;IAE1B,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC;IAC5C,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC;IAChC,aAAa,EAAE,EAAE,CAAC;IAClB,IAAI,eAAe;QAAE,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;AACtD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wasm-idle/react",
3
- "version": "1.0.0-next.0",
3
+ "version": "1.0.0",
4
4
  "description": "React hooks for wasm-idle core",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -16,14 +16,14 @@
16
16
  ],
17
17
  "publishConfig": {
18
18
  "access": "public",
19
- "tag": "next"
19
+ "tag": "latest"
20
20
  },
21
21
  "peerDependencies": {
22
- "@wasm-idle/core": "1.0.0-next.0",
22
+ "@wasm-idle/core": "1.0.0",
23
23
  "react": ">=18"
24
24
  },
25
25
  "dependencies": {
26
- "@wasm-idle/core": "1.0.0-next.0"
26
+ "@wasm-idle/core": "1.0.0"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/react": "^18.3.12",