diff --git a/schema/metadata-form.json b/schema/metadata-form.json index f60abf5..51e9e2b 100644 --- a/schema/metadata-form.json +++ b/schema/metadata-form.json @@ -19,6 +19,10 @@ "title": "-" } ] + }, + "/sql-cell/variable": { + "title": "Variable", + "type": "string" } } }, diff --git a/src/index.ts b/src/index.ts index 6fa7f57..b3b50b5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -93,8 +93,13 @@ const plugin: JupyterFrontEndPlugin = { body: JSON.stringify({ query: source, id: database_id }) }) .then(data => { - if (kernel && injection.status) { - const future = Private.transferDataToKernel(kernel, data.data); + const variable = SqlCell.getMetadata(activeCell.model, 'variable'); + if (kernel && injection.status && variable) { + const future = Private.transferDataToKernel( + kernel, + data.data, + variable + ); future.done.then(reply => { console.log('REPLY', reply); }); @@ -394,13 +399,15 @@ namespace Private { */ export function transferDataToKernel( kernel: Kernel.IKernelConnection, - data: any + data: any, + variable?: string ): Kernel.IShellFuture< KernelMessage.IExecuteRequestMsg, KernelMessage.IExecuteReplyMsg > { data = JSON.stringify(data).replace(/"/gi, '\\"'); - const code = `_sql_transfer_data("${data}")`; + const variableStr = variable ? `, "${variable}"` : ''; + const code = `_sql_transfer_data("${data}"${variableStr})`; const content: KernelMessage.IExecuteRequestMsg['content'] = { code: code, stop_on_error: true