JSPM

@cranberry-money/shared-constants

3.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 614
  • Score
    100M100P100Q89498F
  • License MIT

Shared constants for MyPortfolio platform

Package Exports

  • @cranberry-money/shared-constants

Readme

@myportfolio/shared-constants

Shared constants for the MyPortfolio platform, supporting both web (Blueberry) and mobile (Blackberry) applications.

Installation

npm install @myportfolio/shared-constants

Usage

import { 
  CURRENCY_AUD, 
  DEFAULT_CURRENCY, 
  CHART_COLORS,
  getChartColor,
  TIME_RANGES 
} from '@myportfolio/shared-constants';

// Currency constants
const defaultCurr = DEFAULT_CURRENCY; // 'AUD'

// Chart colors for data visualization
const portfolioColors = allocations.map((_, i) => getChartColor(i));

// Time range configurations
const availableRanges = TIME_RANGES; // [{ label: '1W', value: '1W', days: 7 }, ...]

Available Constants

Common (common.ts)

  • Number formatting: DECIMAL_PLACES, quantity thresholds
  • Error types: ERROR_TYPE_BUSINESS_LOGIC, ERROR_TYPE_PERMISSION, etc.
  • Sort directions: SORT_DIRECTION_ASC, SORT_DIRECTION_DESC
  • Locale settings: LOCALE_AUSTRALIA

Currency (currency.ts)

  • Currency codes: CURRENCY_AUD, CURRENCY_USD
  • Default currency: DEFAULT_CURRENCY
  • Currency info: CURRENCIES array with symbols and names
  • Helper: getCurrencyInfo(code) function

HTTP (http.ts)

  • HTTP headers: HTTP_HEADER_CONTENT_TYPE
  • Content types: CONTENT_TYPE_APPLICATION_JSON

Time (time.ts)

  • Time calculations: MILLISECONDS_PER_DAY
  • Default periods: DEFAULT_RECENT_TRANSACTIONS_DAYS
  • Time ranges: TIME_RANGES array with configurations
  • Types: TimeRange, TimeRangeConfig

UI Colors (ui/colors.ts)

  • Chart color palette: CHART_COLORS array
  • Dynamic color selection: getChartColor(index) function

UI Status (ui/status.ts)

  • Status type mappings: STATUS_STATES object
  • Platform-agnostic colors: STATUS_COLORS with hex values
  • Types: StatusType

Platform Compatibility

This package is designed to work across:

  • Web applications (React) - Direct import of constants
  • Mobile applications (React Native) - Platform-agnostic hex colors and values
  • Node.js environments - For server-side consistency

Platform-Specific Adaptations

Web (Tailwind CSS)

import { STATUS_COLORS } from '@myportfolio/shared-constants';

// Adapt hex colors to Tailwind classes
const statusClasses = {
  pending: 'text-warning-600',
  success: 'text-success-600',
  // ... map STATUS_COLORS to your design system
};

Mobile (React Native)

import { STATUS_COLORS, CHART_COLORS } from '@myportfolio/shared-constants';

const styles = StyleSheet.create({
  pendingStatus: {
    color: STATUS_COLORS.pending, // Direct hex usage
  },
  chartData: {
    backgroundColor: CHART_COLORS[0], // Direct hex usage
  },
});

Development

# Build the package
npm run build

# Watch for changes  
npm run dev

# Type check
npm run typecheck

License

MIT