n8n/packages/node-dev/src/Create.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

33 lines
978 B
TypeScript
Raw Normal View History

import { copyFile } from 'fs/promises';
import type { ReplaceInFileConfig } from 'replace-in-file';
import { replaceInFile } from 'replace-in-file';
2019-06-23 03:35:23 -07:00
/**
* Creates a new credentials or node
*
* @param {string} sourceFilePath The path to the source template file
* @param {string} destinationFilePath The path the write the new file to
* @param {object} replaceValues The values to replace in the template file
*/
export async function createTemplate(
sourceFilePath: string,
destinationFilePath: string,
replaceValues: object,
): Promise<void> {
// Copy the file to then replace the values in it
await copyFile(sourceFilePath, destinationFilePath);
2019-06-23 03:35:23 -07:00
// Replace the variables in the template file
const options: ReplaceInFileConfig = {
2020-10-22 06:46:03 -07:00
files: [destinationFilePath],
2019-06-23 03:35:23 -07:00
from: [],
to: [],
};
options.from = Object.keys(replaceValues).map((key) => {
return new RegExp(key, 'g');
});
options.to = Object.values(replaceValues);
await replaceInFile(options);
}