How to use the mrm-core.json function in mrm-core

To help you get started, we’ve selected a few mrm-core examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github sapegin / mrm / src / tasks / eslint / index.js View on Github external
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}`;
		}
	}
github sapegin / mrm / src / tasks / stylelint / index.js View on Github external
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',
							],
						},
					],
				},
github sapegin / mrm / src / tasks / travis / index.js View on Github external
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);
	}
github sapegin / mrm / src / tasks / package / index.js View on Github external
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: {},
github sapegin / mrm / src / tasks / lintstaged / index.js View on Github external
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';