diff --git a/antwar.config.js b/antwar.config.js index 50e1c9ba3e32..97d1a03217cf 100644 --- a/antwar.config.js +++ b/antwar.config.js @@ -89,6 +89,7 @@ module.exports = { vote: () => require('./src/components/Vote/Vote.jsx').default, organization: () => require('./src/components/Organization/Organization.jsx').default, 'starter-kits': () => require('./src/components/StarterKits/StarterKits.jsx').default, + compatibility: () => require('./src/components/Compatibility/Compatibility.jsx').default, /************************* Redirects for Old Content diff --git a/package.json b/package.json index a5484d407b0c..7a9165471361 100644 --- a/package.json +++ b/package.json @@ -80,6 +80,7 @@ "ncp": "^2.0.0", "node-sass": "^4.5.3", "npm-run-all": "^4.1.1", + "package-json": "^4.0.1", "postcss-loader": "^2.0.6", "prism-languages": "^0.3.3", "prismjs": "^1.9.0", diff --git a/src/scripts/fetch_compat.js b/src/scripts/fetch_compat.js new file mode 100644 index 000000000000..66b222cbc639 --- /dev/null +++ b/src/scripts/fetch_compat.js @@ -0,0 +1,52 @@ +#!/usr/bin/env node + +const fs = require('fs'); +const path = require('path'); +const fetchPackageNames = require("./fetch_package_names"); +const _ = require("lodash"); + +const fetchArgsArray = [ + { + organization: "webpack-contrib", + suffix: "-loader" + }, + { + organization: "webpack-contrib", + suffix: "-plugin" + } +]; + +async function fetchPackageNamesPromise(organization, suffix) { + return new Promise((resolve, reject) => { + fetchPackageNames({organization, suffix}, (err, data) => { + if (err) { + reject(err); + } + resolve(data); + }); + }); +} + +async function getPackageJsonFiles(namesArray) { + const packageJson = require("package-json"); + return Promise.all(namesArray.map((name) => packageJson(name, {allMetadata: true}) )); +} + +async function main() { + try { + const [loaderNames, pluginNames] = await Promise.all( + fetchArgsArray.map(({organization, suffix}) => fetchPackageNamesPromise(organization, suffix)) + ); + + const packageFiles = await getPackageJsonFiles([...loaderNames, ...pluginNames].map(d => d.name)); + + console.log(packageFiles); + + // TODO: Write to disk the JSON file that gets fetched and then add to script workflow. + // This should be saved in ./src/Compatibility/packages.json + } catch (e) { + console.error(e); + } +} + +main(); diff --git a/src/scripts/fetch_package_names.js b/src/scripts/fetch_package_names.js index 054f4f36e609..684f03e843fa 100644 --- a/src/scripts/fetch_package_names.js +++ b/src/scripts/fetch_package_names.js @@ -21,8 +21,8 @@ function main() { } fetchPackageNames({ - organization: organization, - suffix: suffix + organization, + suffix }, function(err, d) { if (err) { return console.error(err); diff --git a/yarn.lock b/yarn.lock index 39810d198eec..48ed4eca6ed2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5207,7 +5207,7 @@ p-map@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" -package-json@^4.0.0: +package-json@^4.0.0, package-json@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" dependencies: