Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
/node_modules
/dist
/bin
/lib
/build

*.log
*.db
Expand Down
21 changes: 21 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
cmake_minimum_required(VERSION 3.15)
cmake_policy(SET CMP0091 NEW)
cmake_policy(SET CMP0042 NEW)

project (polodb)

add_definitions(-DNAPI_VERSION=4)

include_directories(${CMAKE_JS_INC})

file(GLOB SOURCE_FILES polodb_addon.c)

add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC})
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
target_link_directories(${PROJECT_NAME} PUBLIC ./lib)
target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB} -lpolodb_clib-darwin-arm64)

if(MSVC AND CMAKE_JS_NODELIB_DEF AND CMAKE_JS_NODELIB_TARGET)
# Generate node.lib
execute_process(COMMAND ${CMAKE_AR} /def:${CMAKE_JS_NODELIB_DEF} /out:${CMAKE_JS_NODELIB_TARGET} ${CMAKE_STATIC_LINKER_FLAGS})
endif()
63 changes: 63 additions & 0 deletions headers/polodb.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#ifndef POLODB_H
#define POLODB_H

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

struct Database;
struct DbHandle;
struct DbDocument;
struct DbDocumentIter;
struct DbArray;
struct DbObjectId;

typedef struct DbDocument DbDocument;
typedef struct DbDocumentIter DbDocumentIter;
typedef struct DbArray DbArray;
typedef struct Database Database;
typedef struct DbHandle DbHandle;
typedef struct DbObjectId DbObjectId;

#define PLDB_TRANS_AUTO 0
#define PLDB_TRANS_READ 1
#define PLDB_TRANS_WRITE 2

#define PLDB_ERR_NOT_A_VALID_DB -46

typedef struct PLDBError
{
int code;
char* message;
} PLDBError;

void PLDB_free_error(PLDBError* err);

enum PLDB_ERR_TYPE {
PLDB_ERR_COLLECTION_NOT_FOUND = -24,
};

PLDBError* PLDB_open(const char* path, Database** result);

PLDBError* PLDB_handle_message(Database* db, const unsigned char *msg, uint64_t msg_size,
unsigned char** result, uint64_t* result_size);

typedef void (*async_message_handler)(PLDBError* err, const unsigned char* msg, uint64_t msg_size, void* data);

void PLDB_handle_message_async(Database* db, const unsigned char *msg, uint64_t msg_size,
async_message_handler callback, void* raw
);

void PLDB_free_result(unsigned char* result);

int PLDB_version(char* buffer, unsigned int buffer_size);

void PLDB_close(Database* db);

#ifdef __cplusplus
}
#endif

#endif
18 changes: 15 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,40 @@
"engines": {
"node": ">= 0.12"
},
"keywords": ["database", "json", "lightweight", "node", "mongodb"],
"keywords": [
"database",
"json",
"lightweight",
"node",
"mongodb"
],
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/vincentdchan/polodb.js"
"url": "https://github.com/PoloDB/polodb-node"
},
"bin": {
"polodb": "./bin/polodb"
},
"scripts": {
"install": "node scripts/download-lib.js",
"build": "rollup -c rollup.config.js",
"buildLib": "cmake-js compile",
"test": "jest ./tests --useStderr"
},
"devDependencies": {
"@rollup/plugin-typescript": "^8.3.0",
"@types/node": "^18.11.18",
"cli-progress": "^3.11.2",
"cmake-js": "^7.1.1",
"follow-redirects": "^1.15.2",
"jest": "^27.3.1",
"node-fetch-commonjs": "^3.2.4",
"rollup": "^2.58.3",
"tslib": "^2.3.1",
"typescript": "^4.4.4"
},
"dependencies": {
"@msgpack/msgpack": "^2.7.1"
"bson": "^4.7.2"
}
}
Loading