MCPcopy
hub / github.com/webpack/webpack / _getParsed

Method _getParsed

lib/DotenvPlugin.js:318–357  ·  view source on GitHub ↗

* Get parsed env variables from `.env` files * @private * @param {InputFileSystem} fs input file system * @param {string} dir dir to load `.env` files * @param {string} mode mode * @returns {Promise<{ parsed: Env, fileDependencies: string[], missingDependencies: string[] }>} parsed env var

(fs, dir, mode)

Source from the content-addressed store, hash-verified

316 * @returns {Promise<{ parsed: Env, fileDependencies: string[], missingDependencies: string[] }>} parsed env variables and dependencies
317 */
318 async _getParsed(fs, dir, mode) {
319 /** @type {string[]} */
320 const fileDependencies = [];
321 /** @type {string[]} */
322 const missingDependencies = [];
323
324 // Get env files to load
325 const envFiles = this._getEnvFilesForMode(fs, dir, mode);
326
327 // Read all files
328 const contents = await Promise.all(
329 envFiles.map((filePath) =>
330 this._loadFile(fs, filePath).then(
331 (content) => {
332 fileDependencies.push(filePath);
333 return content;
334 },
335 () => {
336 // File doesn't exist, add to missingDependencies (this is normal)
337 missingDependencies.push(filePath);
338 return "";
339 }
340 )
341 )
342 );
343
344 // Parse all files and merge (later files override earlier ones)
345 // Similar to Vite's implementation
346 const parsed = /** @type {Env} */ (Object.create(null));
347
348 for (const content of contents) {
349 if (!content) continue;
350 const entries = parse(content);
351 for (const key in entries) {
352 parsed[key] = entries[key];
353 }
354 }
355
356 return { parsed, fileDependencies, missingDependencies };
357 }
358
359 /**
360 * Loads the provided compiler.

Callers 1

_loadEnvMethod · 0.95

Calls 5

_getEnvFilesForModeMethod · 0.95
_loadFileMethod · 0.95
parseFunction · 0.70
pushMethod · 0.45
createMethod · 0.45

Tested by

no test coverage detected