UNPKG

trifid-core

Version:
44 lines (43 loc) 1.41 kB
import { cwdResolver, envResolver, fileCallback, fileResolver, } from "../resolvers.js"; /** * * @param value Array of paths. * @param context Configuration file full path. */ export const extendsResolver = (value, context) => { return value.map((path) => { return fileCallback(context)(fileResolver(cwdResolver(path), context)); }); }; /** * Recursively expand resolver prefixes (`env:`, `cwd:`, `file:`) found in any * string contained in `value`. The shape of `value` is preserved. * * @param value Value to expand. * @param context Configuration file full path. */ export const applyResolvers = (value, context) => { if (value !== null && typeof value === 'object') { const record = value; for (const k of Object.keys(record)) { record[k] = applyResolvers(record[k], context); } return value; } if (typeof value === 'string') { return fileResolver(cwdResolver(envResolver(value)), context); } return value; }; export const templateResolver = (value, context) => { return applyResolvers(value, context); }; export const serverResolver = (value, context) => { return applyResolvers(value, context); }; export const globalsResolver = (value, context) => { return applyResolvers(value, context); }; export const pluginsResolver = (value, context) => { return applyResolvers(value, context); };