You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
2.1 KiB
42 lines
2.1 KiB
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.generatorCopyTpl = exports.generatorCopy = void 0;
|
|
const path_1 = __importDefault(require("path"));
|
|
/**
|
|
* Takes in a file path in the `./templates` directory. Copies that
|
|
* file to the destination, with the `.tpl` extension stripped.
|
|
*
|
|
* @param {Generator} generator A Yeoman Generator instance
|
|
* @param {string} templateDir Absolute path to template directory
|
|
* @returns {Function} A curried function that takes a file path and copies it
|
|
*/
|
|
const generatorCopy = (generator, templateDir) => (filePath) => {
|
|
const sourceParts = templateDir.split(path_1.default.delimiter);
|
|
sourceParts.push(...filePath.split('/'));
|
|
const targetParts = path_1.default.dirname(filePath).split('/');
|
|
targetParts.push(path_1.default.basename(filePath, '.tpl'));
|
|
generator.fs.copy(path_1.default.join(...sourceParts), generator.destinationPath(path_1.default.join.apply(null, targetParts)));
|
|
};
|
|
exports.generatorCopy = generatorCopy;
|
|
/**
|
|
* Takes in a file path in the `./templates` directory. Copies that
|
|
* file to the destination, with the `.tpl` extension and `_` prefix
|
|
* stripped. Passes `this.props` to the template.
|
|
*
|
|
* @param {Generator} generator A Yeoman Generator instance
|
|
* @param {string} templateDir Absolute path to template directory
|
|
* @param {any} templateData An object containing the data passed to
|
|
* the template files.
|
|
* @returns {Function} A curried function that takes a file path and copies it
|
|
*/
|
|
const generatorCopyTpl = (generator, templateDir, templateData) => (filePath) => {
|
|
const sourceParts = templateDir.split(path_1.default.delimiter);
|
|
sourceParts.push(...filePath.split('/'));
|
|
const targetParts = path_1.default.dirname(filePath).split('/');
|
|
targetParts.push(path_1.default.basename(filePath, '.tpl').slice(1));
|
|
generator.fs.copyTpl(path_1.default.join(...sourceParts), generator.destinationPath(path_1.default.join.apply(null, targetParts)), templateData);
|
|
};
|
|
exports.generatorCopyTpl = generatorCopyTpl;
|
|
|