UNPKG

arcstrum-sdk

Version:

Arcstrum SDK for authentication and database management

39 lines (38 loc) 2.42 kB
// db-express-middleware.ts import { ArcstrumDBClient } from '../db.js'; import { ArcstrumMediaClient } from '../media.js'; // import your new media client export function ArcstrumMiddleware({ userId, token, apiBase, mediaApiBase }) { const dbClient = new ArcstrumDBClient({ userId, token, apiBase }); const mediaClient = new ArcstrumMediaClient({ userId, token, apiBase: mediaApiBase || apiBase }); return async (req, res, next) => { req.arcstrum = { // DB client proxies listDatabases: () => dbClient.listDatabases(), createDatabase: (dbFile) => dbClient.createDatabase(dbFile), deleteDatabase: (dbFile) => dbClient.deleteDatabase(dbFile), renameDatabase: (oldName, newName) => dbClient.renameDatabase(oldName, newName), getTables: (dbFile) => dbClient.getTables(dbFile), queryTable: (dbFile, table) => dbClient.queryTable(dbFile, table), insertRow: (dbFile, table, row) => dbClient.insertRow(dbFile, table, row), deleteRow: (dbFile, table, row) => dbClient.deleteRow(dbFile, table, row), execSql: (dbFile, sql) => dbClient.execSql(dbFile, sql), validateSql: (sql) => dbClient.validateSql(sql), getUsageAnalytics: () => dbClient.getUsageAnalytics(), getTableSchema: (dbFile, table) => dbClient.getTableSchema(dbFile, table), getDbStats: (dbFile) => dbClient.getDbStats(dbFile), getPreviewRows: (dbFile, table, limit) => dbClient.getPreviewRows(dbFile, table, limit), getColumnInfo: (dbFile, table) => dbClient.getColumnInfo(dbFile, table), searchTable: (dbFile, table, filters) => dbClient.searchTable(dbFile, table, filters), getDbMetadata: (dbFile) => dbClient.getDbMetadata(dbFile), updateDbMetadata: (dbFile, metadata) => dbClient.updateDbMetadata(dbFile, metadata), deleteDbMetadata: (dbFile) => dbClient.deleteDbMetadata(dbFile), query: (dbFile, sql) => dbClient.query(dbFile, sql), // Media client proxies uploadMediaFile: (file) => mediaClient.uploadFile(file), listMediaFiles: () => mediaClient.listFiles(), getMediaFileUrl: (filename) => mediaClient.getFileUrl(filename), deleteMediaFile: (filename) => mediaClient.deleteFile(filename), }; next(); }; }