eslint-plugin-flowtype
Advanced tools
Comparing version 2.36.0 to 2.37.0
/** | ||
* This script is used to inline assertions into the README.md documents. | ||
*/ | ||
import _ from 'lodash'; | ||
import glob from 'glob'; | ||
import path from 'path'; | ||
import fs from 'fs'; | ||
import glob from 'glob'; | ||
import _ from 'lodash'; | ||
const formatCodeSnippet = (setup) => { | ||
const paragraphs = []; | ||
const paragraphs = []; | ||
if (setup.options) { | ||
paragraphs.push('// Options: ' + JSON.stringify(setup.options)); | ||
} | ||
if (setup.options) { | ||
paragraphs.push('// Options: ' + JSON.stringify(setup.options)); | ||
} | ||
paragraphs.push(setup.code); | ||
if (setup.settings) { | ||
paragraphs.push('// Settings: ' + JSON.stringify(setup.settings)); | ||
} | ||
if (setup.errors) { | ||
setup.errors.forEach((message) => { | ||
paragraphs.push('// Message: ' + message.message); | ||
}); | ||
} | ||
paragraphs.push(setup.code); | ||
if (setup.rules) { | ||
paragraphs.push('// Additional rules: ' + JSON.stringify(setup.rules)); | ||
} | ||
if (setup.errors) { | ||
setup.errors.forEach((message) => { | ||
paragraphs.push('// Message: ' + message.message); | ||
}); | ||
} | ||
return paragraphs.join('\n'); | ||
if (setup.rules) { | ||
paragraphs.push('// Additional rules: ' + JSON.stringify(setup.rules)); | ||
} | ||
return paragraphs.join('\n'); | ||
}; | ||
const getAssertions = () => { | ||
const assertionFiles = glob.sync(path.resolve(__dirname, './../tests/rules/assertions/*.js')); | ||
const assertionFiles = glob.sync(path.resolve(__dirname, './../tests/rules/assertions/*.js')); | ||
const assertionNames = _.map(assertionFiles, (filePath) => { | ||
return path.basename(filePath, '.js'); | ||
}); | ||
const assertionNames = _.map(assertionFiles, (filePath) => { | ||
return path.basename(filePath, '.js'); | ||
}); | ||
const assertionCodes = _.map(assertionFiles, (filePath) => { | ||
const codes = require(filePath); | ||
const assertionCodes = _.map(assertionFiles, (filePath) => { | ||
const codes = require(filePath); // eslint-disable-line global-require | ||
return { | ||
valid: _.map(codes.valid, formatCodeSnippet), | ||
invalid: _.map(codes.invalid, formatCodeSnippet) | ||
}; | ||
}); | ||
return { | ||
invalid: _.map(codes.invalid, formatCodeSnippet), | ||
valid: _.map(codes.valid, formatCodeSnippet) | ||
}; | ||
}); | ||
return _.zipObject(assertionNames, assertionCodes); | ||
return _.zipObject(assertionNames, assertionCodes); | ||
}; | ||
const updateDocuments = (assertions) => { | ||
const readmeDocumentPath = path.join(__dirname, './../README.md'); | ||
const readmeDocumentPath = path.join(__dirname, './../README.md'); | ||
let documentBody; | ||
let documentBody = fs.readFileSync(readmeDocumentPath, 'utf8'); | ||
documentBody = fs.readFileSync(readmeDocumentPath, 'utf8'); | ||
documentBody = documentBody.replace(/<!-- assertions ([a-z]+?) -->/ig, (assertionsBlock) => { | ||
let exampleBody; | ||
documentBody = documentBody.replace(/<!-- assertions ([a-z]+?) -->/ig, (assertionsBlock) => { | ||
let exampleBody; | ||
const ruleName = assertionsBlock.match(/assertions ([a-z]+)/i)[1]; | ||
const ruleName = assertionsBlock.match(/assertions ([a-z]+)/i)[1]; | ||
const ruleAssertions = assertions[ruleName]; | ||
const ruleAssertions = assertions[ruleName]; | ||
if (!ruleAssertions) { | ||
throw new Error('No assertions available for rule "' + ruleName + '".'); | ||
if (!ruleAssertions) { | ||
throw new Error('No assertions available for rule "' + ruleName + '".'); | ||
} | ||
return assertionsBlock; | ||
} | ||
exampleBody = ''; | ||
exampleBody = ''; | ||
if (ruleAssertions.invalid.length) { | ||
exampleBody += 'The following patterns are considered problems:\n\n```js\n' + ruleAssertions.invalid.join('\n\n') + '\n```\n\n'; | ||
} | ||
if (ruleAssertions.invalid.length) { | ||
exampleBody += 'The following patterns are considered problems:\n\n```js\n' + ruleAssertions.invalid.join('\n\n') + '\n```\n\n'; | ||
} | ||
if (ruleAssertions.valid.length) { | ||
exampleBody += 'The following patterns are not considered problems:\n\n```js\n' + ruleAssertions.valid.join('\n\n') + '\n```\n\n'; | ||
} | ||
if (ruleAssertions.valid.length) { | ||
exampleBody += 'The following patterns are not considered problems:\n\n```js\n' + ruleAssertions.valid.join('\n\n') + '\n```\n\n'; | ||
} | ||
return exampleBody; | ||
}); | ||
return exampleBody; | ||
}); | ||
fs.writeFileSync(readmeDocumentPath, documentBody); | ||
fs.writeFileSync(readmeDocumentPath, documentBody); | ||
}; | ||
updateDocuments(getAssertions()); |
@@ -23,2 +23,3 @@ { | ||
"gitdown": "^2.5.0", | ||
"glob": "^7.1.2", | ||
"husky": "^0.11.7", | ||
@@ -56,3 +57,3 @@ "jsonlint": "^1.6.2", | ||
}, | ||
"version": "2.36.0" | ||
"version": "2.37.0" | ||
} |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
177181
2141
3813
16