Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function task(config) {
config.defaults({
eslintPreset: 'eslint:recommended',
eslintPeerDependencies: [],
});
const preset = config.values().eslintPreset;
const packages = config.values().eslintPeerDependencies;
packages.push('eslint');
if (preset !== 'eslint:recommended') {
packages.push(`eslint-config-${preset}`);
}
// .eslintrc
const eslintrc = json('.eslintrc');
if (!eslintrc.get('extends', '').startsWith(preset)) {
eslintrc.set('extends', preset).save();
}
// package.json
const pkg = packageJson();
// Keep custom extensions
let exts = '';
const lintScript = pkg.getScript('lint');
if (lintScript) {
const args = minimist(lintScript.split(' ').slice(1));
if (args.ext && args.ext !== 'js') {
exts = ` --ext ${args.ext}`;
}
}
function task(config) {
config.default({
stylelintExtensions: '.css',
stylelintPreset: 'stylelint-config-standard',
});
const { indent } = config.values();
const ext = config.values().stylelintExtensions;
const preset = config.values().stylelintPreset;
const packages = ['stylelint', preset];
// .stylelintrc
const stylelintrc = json('.stylelintrc');
if (stylelintrc.get('extends') !== preset) {
stylelintrc
.merge({
extends: preset,
rules: {
indentation: indent,
'selector-pseudo-class-no-unknown': [
true,
{
ignorePseudoClasses: [
// CSS Modules
'global',
],
},
],
},
function task(config) {
const { github, readmeFile } = config
.defaults({ github: gitUsername(), readmeFile: 'Readme.md' })
.require('github')
.values();
const pkg = json('package.json');
// .travis.yml
const travisYml = yaml('.travis.yml');
travisYml.merge({
language: 'node_js',
cache: {
directories: ['node_modules'],
},
});
// Enable caching for Yarn
if (fs.existsSync('yarn.lock')) {
travisYml.set('cache.yarn', true);
}
function task(config) {
const { name, url, github } = config
.defaults({ github: gitUsername(), readmeFile: 'Readme.md' })
.defaults(meta)
.require('name', 'url', 'github')
.values();
const packageName = path.basename(process.cwd());
const repository = `${github}/${name}`;
// Create package.json (no update)
json('package.json', {
name: packageName,
version: '1.0.0',
description: '',
author: {
name,
url,
},
homepage: `https://github.com/${repository}`,
repository,
license: 'MIT',
engines: {
node: '>=4',
},
main: 'index.js',
files: ['index.js'],
scripts: {},
module.exports = function() {
// package.json
json('package.json')
.merge({
scripts: {
precommit: 'lint-staged',
},
'lint-staged': {
'*.js': ['eslint --fix', 'git add'],
},
})
.save();
// package.json: dependencies
install(packages);
};
module.exports.description = 'Adds lint-staged';