function main( context ) {
	/**
	* Reports the error message.
	*
	* @private
	* @param {ASTNode} node - node to report
	*/
	function report( node ) {
		context.report({
			'node': node,
			'message': 'require() call contains a relative path which does not begin with a leading `./`',
			'fix': fixer
		});

		/**
		* Fixes the lint error.
		*
		* @private
		* @param {Object} fixer - ESLint fixer
		* @returns {Object} fix
		*/
		function fixer( fixer ) {
			var source = context.getSourceCode();
			var value = source.getText( node );
			var start = value.indexOf( '\'' );
			var end = value.lastIndexOf( '\'' );
			var str = value.substring( start+1, end );
			return fixer.replaceText( node, 'require( \'./'+str+'\' )' );
		}
	}

	/**
	* Checks whether require path is an absolute file path.
	*
	* @private
	* @param {ASTNode} node - node to examine
	*/
	function validate( node ) {
		var value;
		if ( node.callee.name === 'require' ) {
			value = node.arguments[ 0 ].value;
			if (
				value &&
				value[ 0 ] === '.' &&
				value[ 1 ] !== '/'
			) {
				report( node );
			}
		}
	}

	return {
		'CallExpression': validate
	};
}
Rule for validating that relative paths in `require` calls begin with a leading `./`.

@param {Object} context - ESLint context
@returns {Object} validators