Compare commits

..

No commits in common. "849dbff420b71ab0780eda93ca15b49384d106eb" and "dad8d46e9bdad6e7451db32aba9ba42bca7ee778" have entirely different histories.

6 changed files with 14 additions and 8 deletions

View file

@ -23,11 +23,11 @@ static Napi::Object RowIterator(const Napi::CallbackInfo& args) {
free(next);
return val;
};
auto cleanup = [=](const Napi::CallbackInfo& a){
auto free_iter = [=](const Napi::CallbackInfo& a){
FreeIter(iter);
};
it.Set("next", Napi::Function::New(env, next_row));
it.Set("cleanup", Napi::Function::New(env, cleanup));
it.Set("free", Napi::Function::New(env, free_iter));
return it;
}

5
binding/makefile Normal file
View file

@ -0,0 +1,5 @@
build-lib:
CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build -o ../lib/libdal-arm64.dylib -buildmode=c-shared ./dal.go
for arch in amd64 arm64; do\
CC=x86_64-unknown-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=$${arch} go build -o ../lib/libdal-$${arch}.so -buildmode=c-shared ./dal.go;\
done

View file

@ -2,7 +2,7 @@ import { createRequire } from "node:module";
const require = createRequire(import.meta.url);
type RowIterator = {
next: () => Buffer;
cleanup: () => void;
free: () => void;
};
type SQLite = {
initSQLite: (pragmas: Buffer) => void;

View file

@ -3,7 +3,7 @@
*/
import { dlopen, FFIType, suffix, ptr, toBuffer } from "bun:ffi";
const libname = `../clib/clib.${suffix}`;
const libname = `lib/clib.${suffix}`;
const libpath = libname;
const {
@ -35,8 +35,9 @@ const {
},
});
function initSQLite(pragmas: Buffer) {
InitSQLite(ptr(pragmas));
function initSQLite(pragmas: string) {
const buf = Buffer.from(pragmas);
InitSQLite(ptr(buf));
}
function rowIterator(buf: Buffer) {

View file

@ -27,7 +27,7 @@ export default class CBuilder<
const response = iter.next();
const rows = decodeRows(response);
if (rows.length === 0) {
iter.cleanup();
iter.free();
break;
}
for (const row of rows) {

View file

@ -27,7 +27,7 @@
"fmt": "prettier --write .",
"build": "tsc",
"prepublish": "tsc",
"preinstall": "cd binding && go build -buildmode=c-archive -o dal.a ./dal.go && cd ../clib && go build -o ./clib.dylib -buildmode=c-shared ./main.go",
"preinstall": "cd binding && go build -buildmode=c-archive -o dal.a ./dal.go",
"postinstall": "node-gyp configure build"
}
}