# Class: `JavaScriptKernel` [@jupyterlite/javascript-kernel](../modules/jupyterlite_javascript_kernel.md).JavaScriptKernel A kernel that executes code in an IFrame. ## Hierarchy - `BaseKernel` ↳ **`JavaScriptKernel`** ## Implements - `IKernel` ## Constructors ### `constructor` > **`new JavaScriptKernel`**(`options`) Instantiate a new JavaScriptKernel #### Parameters | Name | Type | Description | | :-------- | :--------- | :--------------------------------------------------- | | `options` | `IOptions` | The instantiation options for a new JavaScriptKernel | #### Overrides BaseKernel.constructor #### Defined in [packages/javascript-kernel/src/kernel.ts:22](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L22) ## Properties ### `_ready` > `Private` **`_ready`**: `PromiseDelegate`<`void`\> #### Defined in [packages/javascript-kernel/src/kernel.ts:273](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L273) ### `_worker` > `Private` **`_worker`**: `Worker` #### Defined in [packages/javascript-kernel/src/kernel.ts:272](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L272) ### `remoteKernel` > `Protected` **`remoteKernel`**: > [`IRemoteJavaScriptWorkerKernel`](../interfaces/jupyterlite_javascript_kernel.IRemoteJavaScriptWorkerKernel.md) #### Defined in [packages/javascript-kernel/src/kernel.ts:270](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L270) ## Accessors ### `disposed` > `get` **`disposed`**(): `ISignal`<`this`, `void`\> A signal emitted when the kernel is disposed. #### Returns `ISignal`<`this`, `void`\> #### Implementation of IKernel.disposed #### Inherited from BaseKernel.disposed #### Defined in packages/kernel/lib/kernel.d.ts:25 ### `executionCount` > `get` **`executionCount`**(): `number` The current execution count #### Returns `number` #### Inherited from BaseKernel.executionCount #### Defined in packages/kernel/lib/kernel.d.ts:41 ### `id` > `get` **`id`**(): `string` Get the kernel id #### Returns `string` #### Implementation of IKernel.id #### Inherited from BaseKernel.id #### Defined in packages/kernel/lib/kernel.d.ts:29 ### `isDisposed` > `get` **`isDisposed`**(): `boolean` Return whether the kernel is disposed. #### Returns `boolean` #### Implementation of IKernel.isDisposed #### Inherited from BaseKernel.isDisposed #### Defined in packages/kernel/lib/kernel.d.ts:21 ### `location` > `get` **`location`**(): `string` The location in the virtual filesystem from which the kernel was started. #### Returns `string` #### Implementation of IKernel.location #### Inherited from BaseKernel.location #### Defined in packages/kernel/lib/kernel.d.ts:37 ### `name` > `get` **`name`**(): `string` Get the name of the kernel #### Returns `string` #### Implementation of IKernel.name #### Inherited from BaseKernel.name #### Defined in packages/kernel/lib/kernel.d.ts:33 ### `parent` > `get` **`parent`**(): `undefined` \| `IMessage`<`MessageType`\> Get the last parent message (mimic ipykernel's get_parent) #### Returns `undefined` \| `IMessage`<`MessageType`\> #### Inherited from BaseKernel.parent #### Defined in packages/kernel/lib/kernel.d.ts:49 ### `parentHeader` > `get` **`parentHeader`**(): `undefined` \| `IHeader`<`MessageType`\> Get the last parent header #### Returns `undefined` \| `IHeader`<`MessageType`\> #### Inherited from BaseKernel.parentHeader #### Defined in packages/kernel/lib/kernel.d.ts:45 ### `ready` > `get` **`ready`**(): `Promise`<`void`\> A promise that is fulfilled when the kernel is ready. #### Returns `Promise`<`void`\> #### Implementation of IKernel.ready #### Overrides BaseKernel.ready #### Defined in [packages/javascript-kernel/src/kernel.ts:45](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L45) ## Methods ### `_processWorkerMessage` > `Private` **`_processWorkerMessage`**(`msg`): `void` Process a message coming from the JavaScript web worker. #### Parameters | Name | Type | Description | | :---- | :---- | :----------------------------- | | `msg` | `any` | The worker message to process. | #### Returns `void` #### Defined in [packages/javascript-kernel/src/kernel.ts:212](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L212) ### `clearOutput` > `Protected` **`clearOutput`**(`content`, `parentHeader?`): `void` Send a `clear_output` message to the client. #### Parameters | Name | Type | Description | | :-------------- | :------------------------ | :------------------------ | | `content` | `Object` | The clear_output content. | | `content.wait` | `boolean` | - | | `parentHeader?` | `IHeader`<`MessageType`\> | The parent header. | #### Returns `void` #### Inherited from BaseKernel.clearOutput #### Defined in packages/kernel/lib/kernel.d.ts:174 ### `commClose` > **`commClose`**(`msg`): `Promise`<`void`\> Send an `comm_close` message. #### Parameters | Name | Type | | :---- | :--------------------------------------- | | `msg` | `ICommCloseMsg`<`"iopub"` \| `"shell"`\> | #### Returns `Promise`<`void`\> #### Overrides BaseKernel.commClose #### Defined in [packages/javascript-kernel/src/kernel.ts:175](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L175) ### `commInfoRequest` > **`commInfoRequest`**(`content`): `Promise`<`ReplyContent`<`ICommInfoReply`\>\> Handle a `comm_info_request` message. #### Parameters | Name | Type | Description | | :--------------------- | :------- | :-------------------------------------------- | | `content` | `Object` | The content of the request. | | `content.target_name?` | `string` | The comm target name to filter returned comms | #### Returns `Promise`<`ReplyContent`<`ICommInfoReply`\>\> A promise that resolves with the response message. #### Overrides BaseKernel.commInfoRequest #### Defined in [packages/javascript-kernel/src/kernel.ts:137](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L137) ### `commMsg` > **`commMsg`**(`msg`): `Promise`<`void`\> Send an `comm_msg` message. #### Parameters | Name | Type | Description | | :---- | :------------------------------------- | :-------------------- | | `msg` | `ICommMsgMsg`<`"iopub"` \| `"shell"`\> | The comm_msg message. | #### Returns `Promise`<`void`\> #### Overrides BaseKernel.commMsg #### Defined in [packages/javascript-kernel/src/kernel.ts:166](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L166) ### `commOpen` > **`commOpen`**(`msg`): `Promise`<`void`\> Send an `comm_open` message. #### Parameters | Name | Type | Description | | :---- | :-------------------------------------- | :--------------------- | | `msg` | `ICommOpenMsg`<`"iopub"` \| `"shell"`\> | The comm_open message. | #### Returns `Promise`<`void`\> #### Overrides BaseKernel.commOpen #### Defined in [packages/javascript-kernel/src/kernel.ts:157](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L157) ### `completeRequest` > **`completeRequest`**(`content`): `Promise`<`ReplyContent`<`ICompleteReply`\>\> Handle an complete_request message #### Parameters | Name | Type | | :------------------- | :------- | | `content` | `Object` | | `content.code` | `string` | | `content.cursor_pos` | `number` | #### Returns `Promise`<`ReplyContent`<`ICompleteReply`\>\> #### Overrides BaseKernel.completeRequest #### Defined in [packages/javascript-kernel/src/kernel.ts:98](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L98) ### `displayData` > `Protected` **`displayData`**(`content`, `parentHeader?`): `void` Send a `display_data` message to the client. #### Parameters | Name | Type | Description | | :------------------------------ | :------------------------ | :------------------------ | | `content` | `Object` | The display_data content. | | `content.data` | `IMimeBundle` | - | | `content.metadata` | `PartialJSONObject` | - | | `content.transient?` | `Object` | - | | `content.transient.display_id?` | `string` | - | | `parentHeader?` | `IHeader`<`MessageType`\> | The parent header. | #### Returns `void` #### Inherited from BaseKernel.displayData #### Defined in packages/kernel/lib/kernel.d.ts:139 ### `dispose` > **`dispose`**(): `void` Dispose the kernel. #### Returns `void` #### Implementation of IKernel.dispose #### Overrides BaseKernel.dispose #### Defined in [packages/javascript-kernel/src/kernel.ts:33](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L33) ### `executeRequest` > **`executeRequest`**(`content`): `Promise`<`Object`\> Handle an `execute_request` message #### Parameters | Name | Type | Description | | :-------------------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------ | | `content` | `Object` | - | | `content.allow_stdin?` | `boolean` | Whether to allow stdin requests. The default is `true`. | | `content.code` | `string` | The code to execute. | | `content.silent?` | `boolean` | Whether to execute the code as quietly as possible. The default is `false`. | | `content.stop_on_error?` | `boolean` | Whether to the abort execution queue on an error. The default is `false`. | | `content.store_history?` | `boolean` | Whether to store history of the execution. The default `true` if silent is False. It is forced to `false ` if silent is `true`. | | `content.user_expressions?` | `JSONObject` | A mapping of names to expressions to be evaluated in the kernel's interactive namespace. | #### Returns `Promise`<`Object`\> #### Overrides BaseKernel.executeRequest #### Defined in [packages/javascript-kernel/src/kernel.ts:85](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L85) ### `handleComm` > `Protected` **`handleComm`**(`type`, `content`, `metadata`, `buffers`, > `parentHeader?`): `void` Send a `comm` message to the client. #### Parameters | Name | Type | | :---------------- | :---------------------------------------------------- | | `type` | `"comm_open"` \| `"comm_msg"` \| `"comm_close"` | | `content` | `Object` | | `content.comm_id` | `string` | | `content.data` | `JSONObject` | | `metadata` | `JSONObject` | | `buffers` | `undefined` \| (`ArrayBuffer` \| `ArrayBufferView`)[] | | `parentHeader?` | `IHeader`<`MessageType`\> | #### Returns `void` #### Inherited from BaseKernel.handleComm #### Defined in packages/kernel/lib/kernel.d.ts:180 ### `handleMessage` > **`handleMessage`**(`msg`): `Promise`<`void`\> Handle an incoming message from the client. #### Parameters | Name | Type | Description | | :---- | :------------------------- | :-------------------- | | `msg` | `IMessage`<`MessageType`\> | The message to handle | #### Returns `Promise`<`void`\> #### Implementation of IKernel.handleMessage #### Inherited from BaseKernel.handleMessage #### Defined in packages/kernel/lib/kernel.d.ts:59 ### `initRemote` > `Protected` **`initRemote`**(`options`): > [`IRemoteJavaScriptWorkerKernel`](../interfaces/jupyterlite_javascript_kernel.IRemoteJavaScriptWorkerKernel.md) Initialize the remote kernel. #### Parameters | Name | Type | Description | | :-------- | :--------- | :--------------------------------- | | `options` | `IOptions` | The options for the remote kernel. | #### Returns [`IRemoteJavaScriptWorkerKernel`](../interfaces/jupyterlite_javascript_kernel.IRemoteJavaScriptWorkerKernel.md) The initialized remote kernel. #### Defined in [packages/javascript-kernel/src/kernel.ts:199](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L199) ### `initWorker` > `Protected` **`initWorker`**(`options`): `Worker` Load the worker. ### `Note` Subclasses must implement this typographically almost _exactly_ for webpack to find it. #### Parameters | Name | Type | | :-------- | :--------- | | `options` | `IOptions` | #### Returns `Worker` #### Defined in [packages/javascript-kernel/src/kernel.ts:187](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L187) ### `inputReply` > **`inputReply`**(`content`): `void` Send an `input_reply` message. #### Parameters | Name | Type | Description | | :-------- | :----------------------------- | :------------------------ | | `content` | `ReplyContent`<`IInputReply`\> | The content of the reply. | #### Returns `void` #### Overrides BaseKernel.inputReply #### Defined in [packages/javascript-kernel/src/kernel.ts:148](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L148) ### `inputRequest` > `Protected` **`inputRequest`**(`content`, `parentHeader?`): `void` Send a `input_request` message to the client. #### Parameters | Name | Type | Description | | :----------------- | :------------------------ | :------------------------------------------------------------------------------- | | `content` | `Object` | The input_request content. | | `content.password` | `boolean` | Whether the request is for a password. If so, the frontend shouldn't echo input. | | `content.prompt` | `string` | The text to show at the prompt. | | `parentHeader?` | `IHeader`<`MessageType`\> | The parent header. | #### Returns `void` #### Inherited from BaseKernel.inputRequest #### Defined in packages/kernel/lib/kernel.d.ts:146 ### `inspectRequest` > **`inspectRequest`**(`content`): `Promise`<`ReplyContent`<`IInspectReply`\>\> Handle an `inspect_request` message. #### Parameters | Name | Type | Description | | :--------------------- | :--------- | :-------------------------- | | `content` | `Object` | The content of the request. | | `content.code` | `string` | - | | `content.cursor_pos` | `number` | - | | `content.detail_level` | `0` \| `1` | - | #### Returns `Promise`<`ReplyContent`<`IInspectReply`\>\> A promise that resolves with the response message. #### Overrides BaseKernel.inspectRequest #### Defined in [packages/javascript-kernel/src/kernel.ts:111](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L111) ### `isCompleteRequest` > **`isCompleteRequest`**(`content`): > `Promise`<`ReplyContent`<`IIsCompleteReplyIncomplete` \| `IIsCompleteReplyOther`\>\> Handle an `is_complete_request` message. #### Parameters | Name | Type | Description | | :------------- | :------- | :-------------------------- | | `content` | `Object` | The content of the request. | | `content.code` | `string` | - | #### Returns `Promise`<`ReplyContent`<`IIsCompleteReplyIncomplete` \| `IIsCompleteReplyOther`\>\> A promise that resolves with the response message. #### Overrides BaseKernel.isCompleteRequest #### Defined in [packages/javascript-kernel/src/kernel.ts:124](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L124) ### `kernelInfoRequest` > **`kernelInfoRequest`**(): `Promise`<`ReplyContent`<`IInfoReply`\>\> Handle a kernel_info_request message #### Returns `Promise`<`ReplyContent`<`IInfoReply`\>\> #### Overrides BaseKernel.kernelInfoRequest #### Defined in [packages/javascript-kernel/src/kernel.ts:52](https://github.com/jupyterlite/jupyterlite/blob/7971e0aa/packages/javascript-kernel/src/kernel.ts#L52) ### `publishExecuteError` > `Protected` **`publishExecuteError`**(`content`, `parentHeader?`): `void` Send an `error` message to the client. #### Parameters | Name | Type | Description | | :------------------ | :------------------------ | :----------------- | | `content` | `Object` | The error content. | | `content.ename` | `string` | - | | `content.evalue` | `string` | - | | `content.traceback` | `string`[] | - | | `parentHeader?` | `IHeader`<`MessageType`\> | The parent header. | #### Returns `void` #### Inherited from BaseKernel.publishExecuteError #### Defined in packages/kernel/lib/kernel.d.ts:160 ### `publishExecuteResult` > `Protected` **`publishExecuteResult`**(`content`, `parentHeader?`): `void` Send an `execute_result` message. #### Parameters | Name | Type | Description | | :------------------------------ | :------------------------ | :-------------------------- | | `content` | `Object` | The execute result content. | | `content.data` | `IMimeBundle` | - | | `content.execution_count` | `ExecutionCount` | - | | `content.metadata` | `PartialJSONObject` | - | | `content.transient?` | `Object` | - | | `content.transient.display_id?` | `string` | - | | `parentHeader?` | `IHeader`<`MessageType`\> | The parent header. | #### Returns `void` #### Inherited from BaseKernel.publishExecuteResult #### Defined in packages/kernel/lib/kernel.d.ts:153 ### `stream` > `Protected` **`stream`**(`content`, `parentHeader?`): `void` Stream an event from the kernel #### Parameters | Name | Type | Description | | :-------------- | :------------------------ | :------------------ | | `content` | `Object` | The stream content. | | `content.name` | `"stdout"` \| `"stderr"` | - | | `content.text` | `string` | - | | `parentHeader?` | `IHeader`<`MessageType`\> | The parent header. | #### Returns `void` #### Inherited from BaseKernel.stream #### Defined in packages/kernel/lib/kernel.d.ts:132 ### `updateDisplayData` > `Protected` **`updateDisplayData`**(`content`, `parentHeader?`): `void` Send a `update_display_data` message to the client. #### Parameters | Name | Type | Description | | :-------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------- | | `content` | { `data`: `IMimeBundle` ; `metadata`: `PartialJSONObject` ; `transient?`: { `display_id?`: `string` } } & { `transient`: { `display_id`: `string` } } | The update_display_data content. | | `parentHeader?` | `IHeader`<`MessageType`\> | The parent header. | #### Returns `void` #### Inherited from BaseKernel.updateDisplayData #### Defined in packages/kernel/lib/kernel.d.ts:167