legal-markdown-js
Version:
Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version
66 lines • 2.34 kB
JavaScript
/**
* Path Constants from Environment Variables
*
* This module provides centralized access to path constants loaded from
* environment variables via dotenv. It ensures consistent path usage
* across the application and provides sensible defaults.
*
* The .env file is discovered from multiple locations in order of precedence:
* 1. Current working directory
* 2. User's home directory
* 3. User's config directory (~/.config/legal-markdown-js/)
*
* @module
*/
import * as path from 'path';
import { discoverAndLoadEnv } from '../utils/env-discovery.js';
// Discover and load environment variables from .env file
const loadedEnvPath = discoverAndLoadEnv();
// Optional: Log which .env file was loaded for debugging
if (process.env.NODE_ENV !== 'test' &&
process.env.NODE_ENV !== 'ci' &&
loadedEnvPath &&
process.env.DEBUG_ENV === 'true') {
console.log(`Loaded environment configuration from: ${loadedEnvPath}`);
}
/**
* Path constants loaded from environment variables
*/
export const PATHS = {
/**
* Directory containing images assets
* @default "src/assets/images"
*/
IMAGES_DIR: (process.env.IMAGES_DIR || '').trim() || 'src/assets/images',
/**
* Directory containing CSS styles
* @default "src/styles"
*/
STYLES_DIR: (process.env.STYLES_DIR || '').trim() || 'src/styles',
/**
* Default directory for input files
* @default "input"
*/
DEFAULT_INPUT_DIR: (process.env.DEFAULT_INPUT_DIR || '').trim() || 'input',
/**
* Default directory for output files
* @default "output"
*/
DEFAULT_OUTPUT_DIR: (process.env.DEFAULT_OUTPUT_DIR || '').trim() || 'output',
/**
* Directory for archiving processed input files
* @default "processed"
*/
ARCHIVE_DIR: (process.env.ARCHIVE_DIR || '').trim() || 'processed',
};
/**
* Resolved absolute paths based on current working directory
*/
export const RESOLVED_PATHS = {
IMAGES_DIR: path.resolve(process.cwd(), PATHS.IMAGES_DIR),
STYLES_DIR: path.resolve(process.cwd(), PATHS.STYLES_DIR),
DEFAULT_INPUT_DIR: path.resolve(process.cwd(), PATHS.DEFAULT_INPUT_DIR),
DEFAULT_OUTPUT_DIR: path.resolve(process.cwd(), PATHS.DEFAULT_OUTPUT_DIR),
ARCHIVE_DIR: path.resolve(process.cwd(), PATHS.ARCHIVE_DIR),
};
//# sourceMappingURL=paths.js.map