@lacspace/analytics
v1.0.0
Published
A TypeScript package for tracking analytics on Lacspace platforms
Maintainers
Readme
@lacspace/analytics
A TypeScript package for tracking analytics on Lacspace platforms like SmartRetail, EduConnect, and Eventify.
Features
- Event Tracking: Log user actions (e.g., purchases, logins) with a single method.
- Batch Processing: Queue and send events in bulk for efficiency.
- CLI Setup: Configure analytics endpoints with
npx lacspace-analytics. - Type-Safe: Built with TypeScript for robust development.
- Depends on @lacspace/api: Reuses API config for HTTP requests.
Installation
npm install @lacspace/analytics
For TypeScript projects:
npm init -y
npm install typescript --save-dev
npx tsc --init
Setup
Run the CLI to configure analytics:
npx lacspace-analytics
Select a platform (e.g., SmartRetail, EduConnect) and provide:
API_URL (required): e.g., https://api.smartretail.com/api.
API_KEY (optional): e.g., 99f74459341f35151e1092d0bf6a18ab5986d449687e28380c90cccaLacSpacE.
Timestamp (optional): Defaults to Date.now().
This creates lacspace-api-config.json:
{
"platform": "SmartRetail",
"API_URL": "https://api.smartretail.com/api",
"API_KEY": "99f74459341f35151e1092d0bf6a18ab5986d449687e28380c90cccaLacSpacE",
"timestamp": "1623456789000"
}
Usage
Track a Single Event
Log a user action:
import LacspaceAnalytics from '@lacspace/analytics';
LacspaceAnalytics.trackEvent('purchase', { productId: '123', price: 29.99 })
.then(() => console.log('Event tracked'))
.catch(err => console.error('Error:', err));
Queue and Flush Events
Queue multiple events and send in bulk:
import LacspaceAnalytics from '@lacspace/analytics';
LacspaceAnalytics.queueEvent('view', { page: 'home' });
LacspaceAnalytics.queueEvent('click', { button: 'buy-now' });
LacspaceAnalytics.flushEvents()
.then(() => console.log('Events flushed'))
.catch(err => console.error('Error:', err));
Update Configuration
To update analytics settings:
npx lacspace-analytics
Example updated config:
{
"platform": "EduConnect",
"API_URL": "https://api.educonnect.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 LacspaceAnalytics from './index';
import fs from 'fs-extra';
import path from 'path';
const configPath = path.join(process.cwd(), 'lacspace-api-config.json');
describe('LacspaceAnalytics', () => {
beforeAll(() => {
fs.writeJsonSync(configPath, {
platform: 'SmartRetail',
API_URL: 'https://api.smartretail.com/api',
API_KEY: 'test-key',
timestamp: Date.now().toString(),
});
});
it('should initialize analytics', () => {
expect(LacspaceAnalytics).toBeDefined();
});
});
Publishing
npm version patch
npm run build
npm publish --access public
License
MIT```