load-populate-files
is a small library to simplify usage of populate-files, which will dynamically write files based on calculated content.
Instead of calling populateFiles()
directly, we can can export the file configs, and defer the execution of file writing to loadAndPopulateFiles()
.
This is useful for CLI scripts, or NX plugins like nx-populate-files.
npm i load-populate-files
Populate-files is an ESM module. That means it must be import
ed. To load from a CJS module, use dynamic import const { loadAndPopulateFiles } = await import('load-populate-files');
.
Provide the file path to a file that default exports the parameters for populateFiles()
Options are supported the same as populateFiles()
.
// config.ts
export default [
{
filePath: './foo.json',
content: { bar: 123 },
},
{
filePath: './abc.js',
content: `
console.log('Hello World!');
`,
},
];
// index.ts
await loadAndPopulateFiles('./config.js');
Loads the config specified at filePath
, and passes that to populateFiles().
The loaded file may either be a single object config, or an array of separate configs.
An optional object as the secondary parameter. Passed to underlying populateFiles()
call.
property | type | default | description |
---|---|---|---|
check | boolean |
true if in a CI environment. Else false
|
If true , will fail if writing the file would result in changing the files content. Useful for CI environments to make sure the version-controlled code is up to date before deployment. |
dryRun | boolean |
false |
If true , will not write file regardless of changes. Can still fail if check is true . |
cwd | string | URL |
process.env.PWD |
Used as the current working directory if filePath is a relative file. Will be re-used in filePaths derived from loaded config |
Type of the exported config at the specified file. Represents the parametesr to populateFiles()
. It is highly recommended to combine with the satisfies
keyword to ensure your exported config will succeed.
import type { PopulateFileParams } from 'load-populate-files';
export default {
filePath: './foo.json',
content: { bar: 123 },
} satisfies PopulateFileParams;
Note this type can also be imported from populate-files directly.
Used internally to interpret cwd
option.
Populate and format a file based on dynamic content.
Load and populate files as an nx target.