@lacspace/sdk
v1.0.0
Published
A TypeScript SDK for Lacspace platforms, simplifying e-commerce and auth tasks
Downloads
14
Maintainers
Readme
@lacspace/sdk
A TypeScript SDK for Lacspace platforms, simplifying integration with e-commerce, auth, and more.
Features
- E-commerce Tools: Manage products, carts, and checkouts for platforms like Grocista and SparkHue.
- Auth Module: Handle login and registration across Lacspace platforms.
- CLI Setup: Configure platform-specific APIs with
npx lacspace-sdk. - Type-Safe: Built with TypeScript for robust development.
- Depends on @lacspace/api: Reuses API config for HTTP requests.
Installation
npm install @lacspace/sdk
For TypeScript projects:
npm init -y
npm install typescript --save-dev
npx tsc --init
Setup
Run the CLI to configure your platform:
npx lacspace-sdk
Select a platform (e.g., Grocista, SparkHue) and provide:
API_URL (required): e.g., https://api.grocista.com/api.
API_KEY (optional): e.g., 99f74459341f35151e1092d0bf6a18ab5986d449687e28380c90cccaLacSpacE.
Timestamp (optional): Defaults to Date.now().
This creates lacspace-api-config.json:
{
"platform": "Grocista",
"API_URL": "https://api.grocista.com/api",
"API_KEY": "99f74459341f35151e1092d0bf6a18ab5986d449687e28380c90cccaLacSpacE",
"timestamp": "1623456789000"
}
Usage
E-commerce: Fetch Products
import LacspaceSDK from '@lacspace/sdk';
LacspaceSDK.ecommerce.getProducts()
.then(products => console.log('Products:', products))
.catch(err => console.error('Error:', err));
E-commerce: Add to Cart
import LacspaceSDK from '@lacspace/sdk';
LacspaceSDK.ecommerce.addToCart({ productId: '123', quantity: 2 })
.then(() => console.log('Added to cart'))
.catch(err => console.error('Error:', err));
Auth: User Login
import LacspaceSDK from '@lacspace/sdk';
LacspaceSDK.auth.login({ username: 'john_doe', password: 'secure123' })
.then(user => console.log('Logged in:', user))
.catch(err => console.error('Error:', err));
Auth: User Registration
import LacspaceSDK from '@lacspace/sdk';
LacspaceSDK.auth.register({ username: 'jane_doe', password: 'secure123', email: '[email protected]' })
.then(user => console.log('Registered:', user))
.catch(err => console.error('Error:', err));
Update Configuration
To update platform settings:
npx lacspace-sdk
Example updated config:
{
"platform": "SparkHue",
"API_URL": "https://api.sparkhue.com/api",
"API_KEY": null,
"timestamp": null
}
Development
Clone or set up the project.
Install dependencies:
npm install
Build:
npm run build
Test:
npm test
Testing
Example test in src/test.ts:
import LacspaceSDK from './index';
import fs from 'fs-extra';
import path from 'path';
const configPath = path.join(process.cwd(), 'lacspace-api-config.json');
describe('LacspaceSDK', () => {
beforeAll(() => {
fs.writeJsonSync(configPath, {
platform: 'Grocista',
API_URL: 'https://api.grocista.com/api',
API_KEY: 'test-key',
timestamp: Date.now().toString(),
});
});
it('should initialize SDK', () => {
expect(LacspaceSDK).toBeDefined();
});
});
Publishing
npm version patch
npm run build
npm publish --access public
License
MIT```