UNPKG

purgetss

Version:

A package that simplifies mobile app creation for Titanium developers.

202 lines (172 loc) 8.12 kB
/* eslint-disable camelcase */ /** * PurgeTSS v7.1 - Constants and Paths * * All project paths, directories, and static constants used throughout PurgeTSS. * Extracted from src/index.js during refactorization. * * @fileoverview Central constants configuration * @version 7.1.0 * @author César Estrada * @since 2025-07-15 */ import path from 'path' import fs from 'fs' import { fileURLToPath } from 'url' // Get current working directory export const cwd = process.cwd() // ============================================================================ // PROJECT PATHS - Alloy/Titanium Project Structure // ============================================================================ // Alloy Project Folders export const projectsLibFolder = `${cwd}/app/lib` export const classicProjectLibFolder = `${cwd}/Resources/lib` export const projectsAppTSS = `${cwd}/app/styles/app.tss` export const projects_AppTSS = `${cwd}/app/styles/_app.tss` export const projectsAlloyJMKFile = `${cwd}/app/alloy.jmk` export const projectsFontsFolder = `${cwd}/app/assets/fonts` export const projectsSemanticColorsJSON = `${cwd}/app/assets/semantic.colors.json` export const projectsFontAwesomeJS = `${cwd}/app/lib/fontawesome.js` // ============================================================================ // PURGETSS PATHS - PurgeTSS Output Structure // ============================================================================ export const projectsPurgeTSSFolder = `${cwd}/purgetss` export const projectsConfigJS = `${cwd}/purgetss/config.cjs` export const projectsTailwind_TSS = `${cwd}/purgetss/styles/utilities.tss` export const projectsPurge_TSS_Fonts_Folder = `${cwd}/purgetss/fonts` export const projectsPurge_TSS_Brand_Folder = `${cwd}/purgetss/brand` export const projectsPurge_TSS_Images_Folder = `${cwd}/purgetss/images` export const projectsPurge_TSS_Styles_Folder = `${cwd}/purgetss/styles` export const projectsFA_TSS_File = `${cwd}/purgetss/styles/fontawesome.tss` // ============================================================================ // SOURCE PATHS - PurgeTSS Module Sources // ============================================================================ // Get project root (one level up from src/) export const projectRoot = path.resolve(fileURLToPath(import.meta.url), '../../..') // JavaScript Icon Modules (generated) export const srcLibFA = path.resolve(projectRoot, './dist/fontawesome.js') export const srcLibMI = path.resolve(projectRoot, './dist/materialicons.js') export const srcLibMS = path.resolve(projectRoot, './dist/materialsymbols.js') export const srcLibF7 = path.resolve(projectRoot, './dist/framework7icons.js') export const srcPurgeTSSLibrary = path.resolve(projectRoot, './dist/purgetss.ui.js') // TSS Files (generated) export const srcTailwindTSS = path.resolve(projectRoot, './dist/utilities.tss') export const srcFontAwesomeTSSFile = path.resolve(projectRoot, './dist/fontawesome.tss') export const srcFramework7FontTSSFile = path.resolve(projectRoot, './dist/framework7icons.tss') export const srcMaterialIconsTSSFile = path.resolve(projectRoot, './dist/materialicons.tss') export const srcMaterialSymbolsTSSFile = path.resolve(projectRoot, './dist/materialsymbols.tss') // Templates and Assets export const srcFonts_Folder = path.resolve(projectRoot, './assets/fonts') export const srcReset_TSS_File = path.resolve(projectRoot, './dist/reset.tss') export const srcConfigFile = path.resolve(projectRoot, './lib/templates/purgetss.config.js.cjs') // ============================================================================ // FONTAWESOME PRO PATHS // ============================================================================ // Pro - Primary locations export const srcFA_Pro_CSS = `${cwd}/node_modules/@fortawesome/fontawesome-pro/css/all.css` export const srcFA_Pro_Web_Fonts_Folder = `${cwd}/node_modules/@fortawesome/fontawesome-pro/webfonts/` // Pro - Alternate locations (fallback) export const srcFA_Pro_CSS_Alt = `${cwd}/app/lib/node_modules/@fortawesome/fontawesome-pro/css/all.css` export const srcFA_Pro_Web_Fonts_Folder_Alt = `${cwd}/app/lib/node_modules/@fortawesome/fontawesome-pro/webfonts/` // Pro - Templates and Reset Files export const srcFA_ProReset_TSS_File = './lib/templates/fontawesome/pro-reset.tss' export const srcFA_ProTemplateTSS_File = './lib/templates/fontawesome/pro-template.tss' // Pro - Font Family Mappings export const srcFA_ProFontFamilies = { 'fa-thin-100.ttf': 'FontAwesome7Pro-Thin.ttf', 'fa-light-300.ttf': 'FontAwesome7Pro-Light.ttf', 'fa-brands-400.ttf': 'FontAwesome7Brands-Regular.ttf', 'fa-regular-400.ttf': 'FontAwesome7Pro-Regular.ttf', 'fa-solid-900.ttf': 'FontAwesome7Pro-Solid.ttf' } // ============================================================================ // FONTAWESOME BETA PATHS // ============================================================================ export const srcFA_Beta_CSSFile = `${cwd}/purgetss/fontawesome-beta/css/all.css` export const srcFA_Beta_Web_Fonts_Folder = `${cwd}/purgetss/fontawesome-beta/webfonts/` export const srcFA_Beta_ResetTSS = './lib/templates/fontawesome/beta-reset.tss' export const srcFA_Beta_TemplateTSS = './lib/templates/fontawesome/beta-template.tss' // Beta - Font Family Mappings export const srcFA_Beta_FontFamilies = { 'fa-thin-100.ttf': 'FontAwesome7Pro-Thin.ttf', 'fa-light-300.ttf': 'FontAwesome7Pro-Light.ttf', 'fa-brands-400.ttf': 'FontAwesome7Brands-Regular.ttf', 'fa-regular-400.ttf': 'FontAwesome7Pro-Regular.ttf', 'fa-solid-900.ttf': 'FontAwesome7Pro-Solid.ttf' } // ============================================================================ // PACKAGE INFORMATION // ============================================================================ // Load package.json for version info and metadata export const PurgeTSSPackageJSON = JSON.parse( fs.readFileSync(path.resolve(projectRoot, './package.json'), 'utf8') ) // ============================================================================ // CONFIGURATION DEFAULTS // ============================================================================ // Default configuration that will be loaded dynamically export const defaultConfigPaths = { main: projectsConfigJS, template: srcConfigFile } // ============================================================================ // EXPORT GROUPS FOR CONVENIENCE // ============================================================================ // Project structure paths export const projectPaths = { lib: projectsLibFolder, classicLib: classicProjectLibFolder, appTSS: projectsAppTSS, _appTSS: projects_AppTSS, alloyJMK: projectsAlloyJMKFile, fonts: projectsFontsFolder, fontAwesomeJS: projectsFontAwesomeJS } // PurgeTSS output paths export const purgePaths = { folder: projectsPurgeTSSFolder, config: projectsConfigJS, tailwindTSS: projectsTailwind_TSS, fontsFolder: projectsPurge_TSS_Fonts_Folder, stylesFolder: projectsPurge_TSS_Styles_Folder, fontAwesomeTSS: projectsFA_TSS_File } // Source module paths export const sourcePaths = { root: projectRoot, fonts: srcFonts_Folder, reset: srcReset_TSS_File, config: srcConfigFile, libs: { fontAwesome: srcLibFA, materialIcons: srcLibMI, materialSymbols: srcLibMS, framework7: srcLibF7, purgeTSS: srcPurgeTSSLibrary }, tssFiles: { tailwind: srcTailwindTSS, fontAwesome: srcFontAwesomeTSSFile, framework7: srcFramework7FontTSSFile, materialIcons: srcMaterialIconsTSSFile, materialSymbols: srcMaterialSymbolsTSSFile } } // FontAwesome Pro paths export const fontAwesomeProPaths = { css: srcFA_Pro_CSS, cssAlt: srcFA_Pro_CSS_Alt, fonts: srcFA_Pro_Web_Fonts_Folder, fontsAlt: srcFA_Pro_Web_Fonts_Folder_Alt, reset: srcFA_ProReset_TSS_File, template: srcFA_ProTemplateTSS_File, fontFamilies: srcFA_ProFontFamilies } // FontAwesome Beta paths export const fontAwesomeBetaPaths = { css: srcFA_Beta_CSSFile, fonts: srcFA_Beta_Web_Fonts_Folder, reset: srcFA_Beta_ResetTSS, template: srcFA_Beta_TemplateTSS, fontFamilies: srcFA_Beta_FontFamilies }