UNPKG

@mdfriday/foundry

Version:

The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.

95 lines 4.2 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.loadConfigWithParams = loadConfigWithParams; const config_1 = require("../entity/config"); const dir_1 = require("../entity/dir"); const root_1 = require("../entity/root"); const module_1 = require("../entity/module"); const service_1 = require("../entity/service"); const language_1 = require("../entity/language"); const taxonomy_1 = require("../entity/taxonomy"); const loader_1 = require("./loader"); const sourcedescriptor_1 = require("./sourcedescriptor"); const path = __importStar(require("path")); /** * Load configuration with custom parameters */ async function loadConfigWithParams(fs, configFilename, workingDir, modulesDir, params = {}) { const cleanWorkingDir = path.resolve(workingDir); const cleanModulesDir = path.resolve(modulesDir); const cleanPublishDir = path.resolve(dir_1.DEFAULT_PUBLISH_DIR); const baseDirs = { workingDir: cleanWorkingDir, modulesDir: cleanModulesDir, publishDir: cleanPublishDir, cacheDir: '' }; baseDirs.cacheDir = await getCacheDir(fs, baseDirs.cacheDir); const loader = new loader_1.ConfigLoader((0, sourcedescriptor_1.newSourceDescriptor)(fs, configFilename), baseDirs); try { const provider = await loader.loadConfigByDefault(); // Merge additional parameters for (const [key, value] of Object.entries(params)) { provider.set(key, value); } const absPublishDir = path.resolve(provider.get('publishDir') || dir_1.DEFAULT_PUBLISH_DIR); await fs.mkdirAll(absPublishDir, 0o777); return (0, config_1.newConfig)(fs, provider, (0, root_1.newRoot)(provider.get(''), provider.getParams('params')), (0, dir_1.newDir)(baseDirs.workingDir, baseDirs.modulesDir, absPublishDir), (0, module_1.newModule)(provider.get('module') || {}), (0, service_1.newService)(provider.get('')), provider.isSet('languages') ? (0, language_1.newLanguage)(provider.get('languages')) : (0, language_1.newLanguage)(provider.get('')), provider.isSet('taxonomies') ? (0, taxonomy_1.newTaxonomy)(provider.get('taxonomies')) : (0, taxonomy_1.newTaxonomy)(provider.get(''))); } finally { loader.deleteMergeStrategies(); } } /** * Get cache directory */ async function getCacheDir(fs, cacheDir) { if (cacheDir !== '') { return cacheDir; } // Default cache directory logic - simplified const homeDir = process.env.HOME || process.env.USERPROFILE || ''; const defaultCacheDir = path.join(homeDir, '.cache', 'mdf'); try { await fs.mkdirAll(defaultCacheDir, 0o755); return defaultCacheDir; } catch { // If we can't create cache dir, use temp return path.join('/tmp', 'hugo-cache'); } } //# sourceMappingURL=config.js.map