nx-populate-files
v0.0.12
Published
Nx plugin to dynamically populate file content
Downloads
31
Maintainers
Readme
nx-populate-files
Nx plugin to dynamically populate file content.
Table of Contents
Introduction
nx-populate-files
is an Nx plugin to write files based on dynamic content. Acts the same as calling loadAndPopulateFiles from your JS code.
Usage
Register the populate-files
executor and provide the filePath
to the file that default exports file content, matching the parameters to populateFile().
// src/config.ts
export default {
filePath: './foo.json',
content: { bar: 123 },
} satisfies PopulateFileParams;
project.json
:
{
"targets": {
"populate-files": {
"executor": "nx-populate-files:populate-files",
"options": {
"filePath": "{projectRoot}/dist/config.js",
"cwd": "{projectRoot}"
}
}
}
}
If caching this target, it is recommended to include all the source files for your config as input, and declare the written files as output.
executors
populate-files
Loads the content at filePath
, and writes the content for each set of params.
options
A required object.
| property | required | type | default value | description |
|----------|----------|------|---------------|-------------|
| filePath | ✅ | string
| ❌ | Path to file that default exports the config for content to populate files |
| check | ❌ | boolean
| true
if in a CI environment. Else false
| If true
, will fail if writing the files 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 params.filePath
is a relative file. |
Types
PopulateFileParams
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 'nx-populate-files';
export default {
filePath: './foo.json',
content: { bar: 123 },
} satisfies PopulateFileParams;
Note this type can also be imported from populate-files and load-populate-files directly.
Also See
populate-files
Populate a file based on dynamic content, enforcing changes are complete in CI environments.
load-populate-files
Load and populate files as a JS method.