diff --git a/dist/js/package.json b/dist/js/package.json index 79a55bb..ed07ea3 100644 --- a/dist/js/package.json +++ b/dist/js/package.json @@ -1,4 +1,7 @@ { + "name": "@codemp/codemp", + "version": "0.0.1", + "dependencies": { "@napi-rs/cli": "^2.18.0", "npx": "^10.2.2" diff --git a/src/ffi/js/buffer.rs b/src/ffi/js/buffer.rs index 5f1b140..5fc72d3 100644 --- a/src/ffi/js/buffer.rs +++ b/src/ffi/js/buffer.rs @@ -2,11 +2,12 @@ use napi::threadsafe_function::{ErrorStrategy::Fatal, ThreadSafeCallContext, Thr use napi_derive::napi; use crate::api::TextChange; use crate::api::Controller; -use crate::prelude::*; +use crate::buffer::controller::BufferController; + #[napi] -impl CodempBufferController { - #[napi(ts_args_type = "fun: (event: JsTextChange) => void")] +impl BufferController { + #[napi(ts_args_type = "fun: (event: TextChange) => void")] pub fn callback(&self, fun: napi::JsFunction) -> napi::Result<()>{ let tsfn : ThreadsafeFunction = fun.create_threadsafe_function(0, diff --git a/src/ffi/js/client.rs b/src/ffi/js/client.rs index 6a29e4e..6dc54c3 100644 --- a/src/ffi/js/client.rs +++ b/src/ffi/js/client.rs @@ -1,9 +1,9 @@ use napi_derive::napi; -use crate::prelude::*; +use crate::{Client, Workspace}; #[napi] /// connect to codemp servers and return a client session -pub async fn connect(addr: Option, username: String, password: String) -> napi::Result{ +pub async fn connect(addr: Option, username: String, password: String) -> napi::Result{ let client = crate::Client::new(addr.as_deref().unwrap_or("http://codemp.alemi.dev:50053"), username, password) .await?; @@ -11,16 +11,16 @@ pub async fn connect(addr: Option, username: String, password: String) - } #[napi] -impl CodempClient { +impl Client { #[napi(js_name = "join_workspace")] /// join workspace with given id (will start its cursor controller) - pub async fn js_join_workspace(&self, workspace: String) -> napi::Result { + pub async fn js_join_workspace(&self, workspace: String) -> napi::Result { Ok(self.join_workspace(workspace).await?) } #[napi(js_name = "get_workspace")] /// get workspace with given id, if it exists - pub fn js_get_workspace(&self, workspace: String) -> Option { + pub fn js_get_workspace(&self, workspace: String) -> Option { self.get_workspace(&workspace) } @@ -31,6 +31,7 @@ impl CodempClient { } #[napi(js_name = "active_workspaces")] + /// get list of all active workspaces pub fn js_active_workspaces(&self) -> Vec { self.active_workspaces() } diff --git a/src/ffi/js/cursor.rs b/src/ffi/js/cursor.rs index 11a524d..a0d4c28 100644 --- a/src/ffi/js/cursor.rs +++ b/src/ffi/js/cursor.rs @@ -1,7 +1,7 @@ use napi_derive::napi; use napi::threadsafe_function::{ThreadsafeFunction, ThreadSafeCallContext, ThreadsafeFunctionCallMode, ErrorStrategy}; use crate::api::Controller; -use crate::prelude::*; +use crate::cursor::controller::CursorController; #[napi(object, js_name = "Cursor")] @@ -15,9 +15,9 @@ pub struct JsCursor { pub user: Option, } -impl From for CodempCursor { +impl From for crate::api::Cursor { fn from(value: JsCursor) -> Self { - CodempCursor { + crate::api::Cursor { start : (value.start_row, value.start_col), end: (value.end_row, value.end_col), buffer: value.buffer, @@ -25,8 +25,8 @@ impl From for CodempCursor { } } } -impl From for JsCursor { - fn from(value: CodempCursor) -> Self { +impl From for JsCursor { + fn from(value: crate::api::Cursor) -> Self { JsCursor { start_row : value.start.0, start_col : value.start.1, @@ -41,8 +41,8 @@ impl From for JsCursor { #[napi] -impl CodempCursorController { - #[napi(ts_args_type = "fun: (event: JsCursorEvent) => void")] +impl CursorController { + #[napi(ts_args_type = "fun: (event: Cursor) => void")] pub fn callback(&self, fun: napi::JsFunction) -> napi::Result<()>{ let tsfn : ThreadsafeFunction = fun.create_threadsafe_function(0, diff --git a/src/ffi/js/workspace.rs b/src/ffi/js/workspace.rs index 188c4a4..3aa552e 100644 --- a/src/ffi/js/workspace.rs +++ b/src/ffi/js/workspace.rs @@ -1,11 +1,11 @@ -use std::sync::Arc; - use napi_derive::napi; -use crate::prelude::*; +use crate::Workspace; +use crate::buffer::controller::BufferController; +use crate::cursor::controller::CursorController; #[napi] -impl CodempWorkspace { +impl Workspace { #[napi(js_name = "id")] pub fn js_id(&self) -> String { self.id() @@ -17,12 +17,12 @@ impl CodempWorkspace { } #[napi(js_name = "cursor")] - pub fn js_cursor(&self) -> CodempCursorController { + pub fn js_cursor(&self) -> CursorController { self.cursor() } #[napi(js_name = "buffer_by_name")] - pub fn js_buffer_by_name(&self, path: String) -> Option { + pub fn js_buffer_by_name(&self, path: String) -> Option { self.buffer_by_name(&path) } @@ -32,7 +32,7 @@ impl CodempWorkspace { } #[napi(js_name = "attach")] - pub async fn js_attach(&self, path: String) -> napi::Result { + pub async fn js_attach(&self, path: String) -> napi::Result { Ok(self.attach(&path).await?) }