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.
53 lines
1.7 KiB
53 lines
1.7 KiB
"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;
|
|
|