From 572a910c52081a67957b074e3d172051f5df2ca2 Mon Sep 17 00:00:00 2001 From: Nikita Sivukhin Date: Fri, 8 Aug 2025 02:05:23 +0400 Subject: [PATCH] add simple example --- packages/turso-sync-js/.gitignore | 4 ++ .../turso-sync-js/examples/cloud/example.js | 33 ++++++++++++++++ .../examples/cloud/package-lock.json | 39 +++++++++++++++++++ .../turso-sync-js/examples/cloud/package.json | 15 +++++++ 4 files changed, 91 insertions(+) create mode 100644 packages/turso-sync-js/examples/cloud/example.js create mode 100644 packages/turso-sync-js/examples/cloud/package-lock.json create mode 100644 packages/turso-sync-js/examples/cloud/package.json diff --git a/packages/turso-sync-js/.gitignore b/packages/turso-sync-js/.gitignore index c6cfa5e2e..adc8d7dbc 100644 --- a/packages/turso-sync-js/.gitignore +++ b/packages/turso-sync-js/.gitignore @@ -130,3 +130,7 @@ Cargo.lock !.yarn/sdks !.yarn/versions /npm + +*-draft +*-synced +*-info diff --git a/packages/turso-sync-js/examples/cloud/example.js b/packages/turso-sync-js/examples/cloud/example.js new file mode 100644 index 000000000..dfbfe041b --- /dev/null +++ b/packages/turso-sync-js/examples/cloud/example.js @@ -0,0 +1,33 @@ +import { connect } from '@tursodatabase/sync'; + +const db = await connect({ + path: 'local.db', + url: process.env.TURSO_URL, + authToken: process.env.TURSO_AUTH_TOKEN, + clientName: 'turso-sync-example' +}); + +await db.sync(); + +console.info("database initialized and ready to accept writes") + +{ + console.info("data from remote") + let stmt = await db.prepare('SELECT * FROM users'); + console.info(await stmt.all()); +} + + +for (let i = 0; i < 2; i++) { + let id = Math.ceil(Math.random() * 100000); + await db.exec(`INSERT INTO users VALUES (${id}, 'random-name-${id}')`); +} + +{ + console.info("data after local insert") + let stmt = await db.prepare('SELECT * FROM users'); + console.info(await stmt.all()); +} + +console.info("sync changes with the remote") +await db.sync(); \ No newline at end of file diff --git a/packages/turso-sync-js/examples/cloud/package-lock.json b/packages/turso-sync-js/examples/cloud/package-lock.json new file mode 100644 index 000000000..7715f4300 --- /dev/null +++ b/packages/turso-sync-js/examples/cloud/package-lock.json @@ -0,0 +1,39 @@ +{ + "name": "cloud", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cloud", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@tursodatabase/sync": "../.." + } + }, + "../..": { + "name": "@tursodatabase/sync", + "version": "0.1.4-pre.2", + "license": "MIT", + "dependencies": { + "@tursodatabase/turso": "file:../../bindings/javascript" + }, + "devDependencies": { + "@napi-rs/cli": "^3.0.4", + "@napi-rs/wasm-runtime": "^1.0.1", + "@types/node": "^24.2.0", + "ava": "^6.0.1", + "tsc": "^2.0.4", + "typescript": "^5.9.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tursodatabase/sync": { + "resolved": "../..", + "link": true + } + } +} diff --git a/packages/turso-sync-js/examples/cloud/package.json b/packages/turso-sync-js/examples/cloud/package.json new file mode 100644 index 000000000..946f72378 --- /dev/null +++ b/packages/turso-sync-js/examples/cloud/package.json @@ -0,0 +1,15 @@ +{ + "name": "cloud", + "version": "1.0.0", + "main": "index.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "@tursodatabase/sync": "../.." + } +}