appbase-console-sdk
v1.13.6
Published
AppBase Console SDK for AppBase Console integrations
Readme
AppBase Console SDK
This SDK is compatible with the AppBase Console and AppBase server API surface bundled in this repository.
appbase-console-sdk is an AppBase-owned Console SDK baseline used by the
console/ workspace through a local file dependency. Publish it only to the
configured AppBase npm registry, and only when APPBASE_NPM_REGISTRY_URL and
APPBASE_NPM_TOKEN are both configured.
Installation
NPM
To install from the configured AppBase npm registry:
npm install appbase-console-sdk --save --registry "$APPBASE_NPM_REGISTRY_URL"If you're using a bundler, import the AppBase Console SDK when you need it:
import { Client, Account } from "appbase-console-sdk";CDN
Public CDN distribution is not the default AppBase release path. Use the configured AppBase npm registry unless an AppBase-owned CDN distribution has been explicitly configured.
Getting Started
Add your Web Platform
For you to init your SDK and interact with AppBase services you need to add a web platform to your project. To add a new platform, go to your AppBase console, choose the project you created in the step before and click the 'Add Platform' button.
From the options, choose to add a Web platform and add your client app hostname. By adding your hostname to your project platform you are allowing cross-domain communication between your project and the AppBase API.
Init your SDK
Initialize your SDK with your AppBase server API endpoint and project ID which can be found in your project settings page.
// Init your Web SDK
const client = new Client();
client
.setEndpoint('http://localhost/v1') // Your AppBase endpoint
.setProject('455x34dfkj') // Your project ID
;Make Your First Request
Once your SDK object is set, access any of the AppBase services and choose any request to send. Full documentation for any service method is maintained with the AppBase API and SDK documentation in this repository.
const account = new Account(client);
// Register User
account.create(ID.unique(), "[email protected]", "password", "Walter O'Brien")
.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Full Example
// Init your Web SDK
const client = new Client();
client
.setEndpoint('http://localhost/v1') // Your AppBase endpoint
.setProject('455x34dfkj')
;
const account = new Account(client);
// Register User
account.create(ID.unique(), "[email protected]", "password", "Walter O'Brien")
.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});Type Safety with Models
The AppBase Console SDK provides type safety when working with database documents through generic methods. Methods like listDocuments, getDocument, and others accept a generic type parameter that allows you to specify your custom model type for full type safety.
TypeScript:
interface Book {
name: string;
author: string;
releaseYear?: string;
category?: string;
genre?: string[];
isCheckedOut: boolean;
}
const databases = new Databases(client);
try {
const documents = await databases.listDocuments<Book>(
'your-database-id',
'your-collection-id'
);
documents.documents.forEach(book => {
console.log(`Book: ${book.name} by ${book.author}`); // Now you have full type safety
});
} catch (error) {
console.error('AppBase error:', error);
}JavaScript (with JSDoc for type hints):
/**
* @typedef {Object} Book
* @property {string} name
* @property {string} author
* @property {string} [releaseYear]
* @property {string} [category]
* @property {string[]} [genre]
* @property {boolean} isCheckedOut
*/
const databases = new Databases(client);
try {
/** @type {Models.DocumentList<Book>} */
const documents = await databases.listDocuments(
'your-database-id',
'your-collection-id'
);
documents.documents.forEach(book => {
console.log(`Book: ${book.name} by ${book.author}`); // Type hints available in IDE
});
} catch (error) {
console.error('AppBase error:', error);
}Tip: Use the AppBase type generation workflow, when enabled for your environment, to generate TypeScript interfaces based on your AppBase database schema.
Error Handling
The AppBase Console SDK currently raises an AppBaseException object with message, code and response properties. You can handle any errors by catching the exception and present the message to the user or handle it yourself based on the provided error information. Below is an example.
try {
const user = await account.create(ID.unique(), "[email protected]", "password", "Walter O'Brien");
console.log('User created:', user);
} catch (error) {
console.error('AppBase error:', error.message);
}Learn more
Use the AppBase repository documentation for SDK generation, versioning and publishing rules:
docs/sdks/monorepo-generation.mdpackages/sdks/README.md
Contribution
This library is maintained as the AppBase Console SDK baseline. Do not hand-edit generated API surfaces unless the change is part of an explicit Console SDK baseline update.
License
Please see the BSD-3-Clause license file bundled with this package for more information.
