gesttalt
v0.7.9
Published
A universal OAuth2.0 client written in Zig concurrency-ready
Maintainers
Readme
Gesttalt Node.js Bindings
A universal OAuth2.0 client written in Zig concurrency-ready.
Install
npm install gesttaltUsage
const {
createSnippet,
listSnippets,
readSnippet,
updateSnippet,
deleteSnippet,
createPost,
listPosts,
readPost,
updatePost,
deletePost,
createNote,
listNotes,
readNote,
updateNote,
deleteNote,
} = require('gesttalt');
const projectDir = '.';
const timestamp = 1735148400;
const path = createSnippet(
projectDir,
timestamp,
'Example snippet',
'const x = 1;',
'example.zig'
);
const snippets = listSnippets(projectDir);
const snippet = readSnippet(projectDir, timestamp);
console.log(snippet);
updateSnippet(projectDir, timestamp, {
description: 'Updated description',
});
deleteSnippet(projectDir, timestamp);
const postPath = createPost(projectDir, 'hello-world', 'Hello', 'My first post', {
tags: ['zig', 'oauth2'],
});
const posts = listPosts(projectDir);
const post = readPost(projectDir, 'hello-world');
updatePost(projectDir, 'hello-world', { title: 'Updated title' });
deletePost(projectDir, 'hello-world');
const notePath = createNote(projectDir, timestamp, { body: 'Quick update' });
const notes = listNotes(projectDir);
const note = readNote(projectDir, String(timestamp));
updateNote(projectDir, String(timestamp), { body: 'Edited' });
deleteNote(projectDir, String(timestamp));Browser
This package ships a WASM build for browser runtimes with an in-memory storage backend. To persist data across reloads, enable the browser storage helper.
import { init, enableBrowserStorage, createSnippet } from 'gesttalt';
await init();
await enableBrowserStorage('/project');
createSnippet('/project', 1735148400, 'Example snippet', 'const x = 1;', 'example.zig');Bun and Deno
Bun and Deno can use the same binding via their Node.js compatibility layers.
bun run test.jsdeno run --allow-ffi --allow-read --allow-write test.jsDevelopment
# From project root
zig build -Doptimize=ReleaseFast
# Build the Node addon
cd bindings/nodejs
npm install
npm testAPI
createSnippet(projectDir, timestamp, description, body, filename)listSnippets(projectDir)readSnippet(projectDir, timestamp)updateSnippet(projectDir, timestamp, update)deleteSnippet(projectDir, timestamp)createPost(projectDir, slug, title, description, options)listPosts(projectDir)readPost(projectDir, slug)updatePost(projectDir, slug, update)deletePost(projectDir, slug)createNote(projectDir, timestamp, options)listNotes(projectDir)readNote(projectDir, id)updateNote(projectDir, id, update)deleteNote(projectDir, id)
License
MIT
