Skip to content

Commit

Permalink
refactor: split persistence adapters into separate packages
Browse files Browse the repository at this point in the history
resolves #992
  • Loading branch information
maxnowack committed Dec 10, 2024
1 parent 30f0cc3 commit fdf4895
Show file tree
Hide file tree
Showing 62 changed files with 899 additions and 450 deletions.
1 change: 1 addition & 0 deletions examples/appwrite/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"react": "19.0.0",
"react-dom": "19.0.0",
"signaldb": "*",
"signaldb-localstorage": "*",
"signaldb-plugin-maverickjs": "*",
"signaldb-react": "*",
"typescript": "5.7.2"
Expand Down
3 changes: 2 additions & 1 deletion examples/appwrite/src/models/Todos.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Collection, createLocalStorageAdapter } from 'signaldb'
import { Collection } from 'signaldb'
import createLocalStorageAdapter from 'signaldb-localstorage'
import maverickjsReactivityAdapter from 'signaldb-plugin-maverickjs'
import syncManager from '../system/syncManager'

Expand Down
2 changes: 2 additions & 0 deletions examples/appwrite/src/system/syncManager.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Client, Databases } from 'appwrite'
import { SyncManager } from 'signaldb'
import createLocalStorageAdapter from 'signaldb-localstorage'

const client = new Client()
client
Expand All @@ -10,6 +11,7 @@ const dbId = '65676881edfe6a3e7e2c'
const db = new Databases(client)

const syncManager = new SyncManager<Record<string, any>, { id: string }>({
persistenceAdapter: id => createLocalStorageAdapter(id),
onError: (options, error) => {
// eslint-disable-next-line no-console
console.error(options, error)
Expand Down
1 change: 1 addition & 0 deletions examples/firebase/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"react": "19.0.0",
"react-dom": "19.0.0",
"signaldb": "*",
"signaldb-localstorage": "*",
"signaldb-plugin-maverickjs": "*",
"signaldb-react": "*",
"typescript": "5.7.2"
Expand Down
5 changes: 3 additions & 2 deletions examples/firebase/src/models/Todos.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Collection, createLocalStorageAdapter } from 'signaldb'
import { Collection } from 'signaldb'
import createLocalStorageAdapter from 'signaldb-localstorage'
import maverickjsReactivityAdapter from 'signaldb-plugin-maverickjs'
import syncManager from '../system/syncManager'

const Todos = new Collection<{ id: string, text: string, completed: boolean }>({
reactivity: maverickjsReactivityAdapter,
persistence: createLocalStorageAdapter('todos-firebase'),
persistence: createLocalStorageAdapter('todos-appwrite'),
})
Todos.on('persistence.error', (error) => {
// eslint-disable-next-line no-console
Expand Down
2 changes: 2 additions & 0 deletions examples/firebase/src/system/syncManager.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { SyncManager } from 'signaldb'
import createLocalStorageAdapter from 'signaldb-localstorage'
import { initializeApp } from 'firebase/app'
import { getDatabase, ref, get, set, remove, update, onChildAdded, onChildChanged, onChildRemoved } from 'firebase/database'

Expand All @@ -8,6 +9,7 @@ initializeApp({
const db = getDatabase()

const syncManager = new SyncManager({
persistenceAdapter: id => createLocalStorageAdapter(id),
onError: (options, error) => {
// eslint-disable-next-line no-console
console.error(options, error)
Expand Down
1 change: 1 addition & 0 deletions examples/replication-http/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"react": "19.0.0",
"react-dom": "19.0.0",
"signaldb": "*",
"signaldb-localstorage": "*",
"signaldb-plugin-maverickjs": "*",
"signaldb-react": "*",
"typescript": "5.7.2"
Expand Down
5 changes: 3 additions & 2 deletions examples/replication-http/src/models/Todos.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Collection, createLocalStorageAdapter } from 'signaldb'
import { Collection } from 'signaldb'
import createLocalStorageAdapter from 'signaldb-localstorage'
import maverickjsReactivityAdapter from 'signaldb-plugin-maverickjs'
import syncManager from '../system/syncManager'

const Todos = new Collection<{ id: string, text: string, completed: boolean }>({
reactivity: maverickjsReactivityAdapter,
persistence: createLocalStorageAdapter('todos-http'),
persistence: createLocalStorageAdapter('todos-appwrite'),
})
Todos.on('persistence.error', (error) => {
// eslint-disable-next-line no-console
Expand Down
2 changes: 2 additions & 0 deletions examples/replication-http/src/system/syncManager.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { SyncManager } from 'signaldb'
import createLocalStorageAdapter from 'signaldb-localstorage'

function authenticatedFetch(path: string, options?: RequestInit) {
const databaseId = '65676881edfe6a3e7e2c'
Expand All @@ -15,6 +16,7 @@ function authenticatedFetch(path: string, options?: RequestInit) {
}

const syncManager = new SyncManager({
persistenceAdapter: id => createLocalStorageAdapter(id),
onError: (options, error) => {
// eslint-disable-next-line no-console
console.error(options, error)
Expand Down
1 change: 1 addition & 0 deletions examples/supabase/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"react": "19.0.0",
"react-dom": "19.0.0",
"signaldb": "*",
"signaldb-localstorage": "*",
"signaldb-plugin-maverickjs": "*",
"signaldb-react": "*",
"typescript": "5.7.2"
Expand Down
5 changes: 3 additions & 2 deletions examples/supabase/src/models/Todos.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Collection, createLocalStorageAdapter } from 'signaldb'
import { Collection } from 'signaldb'
import createLocalStorageAdapter from 'signaldb-localstorage'
import maverickjsReactivityAdapter from 'signaldb-plugin-maverickjs'
import syncManager from '../system/syncManager'

const Todos = new Collection<{ id: string, text: string, completed: boolean }>({
reactivity: maverickjsReactivityAdapter,
persistence: createLocalStorageAdapter('todos-supabase'),
persistence: createLocalStorageAdapter('todos-appwrite'),
})
Todos.on('persistence.error', (error) => {
// eslint-disable-next-line no-console
Expand Down
2 changes: 2 additions & 0 deletions examples/supabase/src/system/syncManager.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { SyncManager } from 'signaldb'
import createLocalStorageAdapter from 'signaldb-localstorage'
import { createClient } from '@supabase/supabase-js'

interface Database {
Expand Down Expand Up @@ -47,6 +48,7 @@ const supabase = createClient<Database>(
)

const syncManager = new SyncManager({
persistenceAdapter: id => createLocalStorageAdapter(id),
onError: (options, error) => {
// eslint-disable-next-line no-console
console.error(options, error)
Expand Down
68 changes: 54 additions & 14 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions packages/persistence-fs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# signaldb-plugin-angular

This is the [Angular](https://angular.dev/guide/signals) plugin for [SignalDB](https://github.com/maxnowack/signaldb). SignalDB is a local JavaScript database with a MongoDB-like interface and TypeScript support, enabling optimistic UI with signal-based reactivity across multiple frameworks.

See https://signaldb.js.org/reactivity/angular/ for more information.
Loading

0 comments on commit fdf4895

Please sign in to comment.