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-constantsUsage
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:
CURRENCIESarray 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_RANGESarray with configurations - Types:
TimeRange,TimeRangeConfig
UI Colors (ui/colors.ts)
- Chart color palette:
CHART_COLORSarray - Dynamic color selection:
getChartColor(index)function
UI Status (ui/status.ts)
- Status type mappings:
STATUS_STATESobject - Platform-agnostic colors:
STATUS_COLORSwith 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 typecheckLicense
MIT