@dankupfer/create-dn-starter
Version:
Interactive CLI for creating modular React Native apps with Expo
145 lines (117 loc) • 4.21 kB
text/typescript
// template/src/utils/imports.ts
import * as PublishedComponents from '@dankupfer/dn-components';
import * as PublishedTokens from '@dankupfer/dn-tokens';
// Only import local dev components if they exist
let LocalDevComponents: any = {};
let LocalDevTokens: any = {};
try {
if (process.env.NODE_ENV === 'development') {
// Try to import local dev components
LocalDevComponents = require('../dev/components');
console.log('LocalDevComponents loaded:', Object.keys(LocalDevComponents));
}
} catch (error) {
// No local dev components found - that's fine
console.debug('No local dev components found', error);
}
try {
if (process.env.NODE_ENV === 'development') {
// Try to import local dev tokens
LocalDevTokens = require('../dev/tokens');
}
} catch {
// No local dev tokens found - that's fine
console.debug('No local dev tokens found');
}
// Merge published + local, with local taking precedence
export const Components: any = {
...PublishedComponents,
...LocalDevComponents,
};
console.log('Final Components object keys:', Object.keys(Components));
export const Tokens = {
...PublishedTokens,
...LocalDevTokens,
};
// Add this after the token merging in utils/imports.ts
console.log('Published Tokens keys:', Object.keys(PublishedTokens));
console.log('Local Dev Tokens:', LocalDevTokens);
console.log('Final Tokens keys:', Object.keys(Tokens));
console.log('Final Tokens.icons keys:', Tokens.icons ? Object.keys(Tokens.icons) : 'No icons');
// Export individual components with flexible typing
export const BottomTabs = Components.BottomTabs;
export const PillCarousel = Components.PillCarousel;
export const Header = Components.Header;
export const TestComponent = Components.TestComponent;
export const Tile = Components.Tile;
export const ThemedText = Components.ThemedText;
export const Icon = Components.Icon;
export const useTheme = Components.useTheme;
export const ThemeProvider = Components.ThemeProvider;
export const AmountDisplay = Components.AmountDisplay;
export const IconDev = Components.IconDev;
export const ScreenBuilder = Components.ScreenBuilder;
// Re-export tokens
export const tokens = Tokens;
// Default export for when you want everything
export default {
...Components,
tokens: Tokens,
};
// // template/src/utils/imports.ts
// import * as PublishedComponents from '@dankupfer/dn-components';
// import * as PublishedTokens from '@dankupfer/dn-tokens';
// // Only import local dev components if they exist
// let LocalDevComponents = {};
// let LocalDevTokens = {};
// try {
// if (process.env.NODE_ENV === 'development') {
// // Try to import local dev components
// LocalDevComponents = require('../dev/components');
// console.log('LocalDevComponents loaded:', Object.keys(LocalDevComponents));
// }
// } catch {
// // No local dev components found - that's fine
// console.debug('No local dev components found');
// }
// try {
// if (process.env.NODE_ENV === 'development') {
// // Try to import local dev tokens
// LocalDevTokens = require('../dev/tokens');
// }
// } catch {
// // No local dev tokens found - that's fine
// console.debug('No local dev tokens found');
// }
// // Merge published + local, with local taking precedence
// export const Components = {
// ...PublishedComponents,
// ...LocalDevComponents,
// };
// console.log('Final Components object keys:', Object.keys(Components));
// export const Tokens = {
// ...PublishedTokens,
// ...LocalDevTokens,
// };
// // Re-export individual components for easy consumption
// export const {
// // Core components from published package
// Tile,
// ThemedText,
// Icon,
// useTheme,
// ThemeProvider,
// AmountDisplay,
// BottomTabs,
// PillCarousel,
// Header,
// // Any additional components (published or local) will be available
// ...restComponents
// } = Components;
// // Re-export tokens
// export const tokens = Tokens;
// // Default export for when you want everything
// export default {
// ...Components,
// tokens: Tokens,
// };