"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LoaderGenerator = exports.makeLoaderName = void 0; const path_1 = __importDefault(require("path")); const addon_generator_1 = __importDefault(require("./addon-generator")); const helpers_1 = require("./utils/helpers"); /** * Formats a string into webpack loader format * (eg: 'style-loader', 'raw-loader') * * @param {string} name A loader name to be formatted * @returns {string} The formatted string */ function makeLoaderName(name) { name = helpers_1.toKebabCase(name); if (!/loader$/.test(name)) { name += '-loader'; } return name; } exports.makeLoaderName = makeLoaderName; /** * A yeoman generator class for creating a webpack * loader project. It adds some starter loader code * and runs `webpack-defaults`. * * @class LoaderGenerator * @extends {Generator} */ exports.LoaderGenerator = addon_generator_1.default([ { default: 'my-loader', filter: makeLoaderName, message: 'Loader name', name: 'name', type: 'input', validate: (str) => str.length > 0, }, ], path_1.default.resolve(__dirname, '../loader-template'), [ 'src/cjs.js.tpl', 'test/test-utils.js.tpl', 'test/unit.test.js.tpl', 'test/functional.test.js.tpl', 'test/fixtures/simple-file.js.tpl', 'examples/simple/webpack.config.js.tpl', 'examples/simple/src/index.js.tpl', 'examples/simple/src/lazy-module.js.tpl', 'examples/simple/src/static-esm-module.js.tpl', ], ['src/_index.js.tpl'], (gen) => ({ name: gen.props.name })); exports.default = exports.LoaderGenerator;