Get the name of the current Lime CRM application.
The application name identifies which Lime CRM database/application the user is currently connected to.
The application name
import {
createLogger,
PlatformServiceName,
} from '@limetech/lime-web-components';
const repository = platform.get(PlatformServiceName.Application);
const logger = createLogger('my-component');
const appName = repository.getApplicationName();
logger.info(`Connected to: ${appName}`); // "Connected to: CustomerCRM"
Get the currently logged in user.
Returns the User object containing information about the authenticated user, including their username, full name, email, groups, and associated coworker record if applicable.
The current User object, or undefined if not authenticated
import { PlatformServiceName } from '@limetech/lime-web-components';
const repository = platform.get(PlatformServiceName.Application);
const user = repository.getCurrentUser();
const showAdminFeatures = user?.groups.some(
(group) => group.name === 'Administrators'
);
Get the current interface language.
Returns the two-letter ISO 639-1 language code for the current user interface language. This should be used for localizing component text and formatting locale-specific data like dates and numbers.
A two-letter language code (e.g., "en", "sv", "de", "fi")
import { PlatformServiceName } from '@limetech/lime-web-components';
const repository = platform.get(PlatformServiceName.Application);
const language = repository.getLanguage();
const locale = language === 'sv' ? 'sv-SE' : 'en-US';
const formatted = new Date().toLocaleDateString(locale);
Get the current session information.
The session contains detailed information about the current user session including login time, session timeout, enabled features, database connection details, and whether the user has administrative privileges.
The current Session object, or undefined if no active session
import { PlatformServiceName } from '@limetech/lime-web-components';
const repository = platform.get(PlatformServiceName.Application);
const session = repository.getSession();
const showAdminFeatures = session?.admin === true;
// `expirationTime` is optional, so a session without one never counts as
// expiring soon.
let expiresSoon = false;
if (session?.expirationTime) {
const expiresAt = new Date(session.expirationTime);
const minutesLeft = (expiresAt.getTime() - Date.now()) / 60_000;
expiresSoon = minutesLeft < 5;
}
Subscribe to state changes with optional transformation and filtering.
The subscription will immediately invoke the callback with the current state (if any), then continue to call it whenever the state changes. The map and filter options allow you to transform and selectively receive updates.
Function called with state updates (after map/filter applied)
Optionaloptions: StateOptionsOptional transformations and filters for the subscription
Unsubscribe function - call this to stop receiving updates
import { PlatformServiceName } from '@limetech/lime-web-components';
const repository = platform.get(PlatformServiceName.Application);
const logger = platform
.get(PlatformServiceName.Logger)
.createLogger('my-component');
// Basic subscription
const unsubscribeState = repository.subscribe((state) => {
logger.debug('State updated', { state });
});
// With transformations
const unsubscribeUserName = repository.subscribe(
(userName) => logger.debug('User', { userName }),
{ map: [(state) => state.currentUser?.fullname] }
);
Repository for accessing application-level state and metadata.
The ApplicationRepository provides access to global application information including the current user, session details, application name, and language settings. It extends StateRepository to provide reactive subscriptions to these values, allowing components to automatically update when application state changes.
This repository is typically available immediately when a component loads and provides essential context about the running application and the authenticated user.
Example: Use decorators for reactive state management
Example: Direct repository access, useful for one-time reads