12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // node
- const fs = require('fs')
- const path = require('path')
- // npm
- const fetch = require('node-fetch')
- const semver = require('semver')
- // pkg
- const pkg = require('../package.json')
- const ghBase = 'https://api.github.com'
- const repoUrlPath = 'fomantic/Fomantic-UI'
- const npmBase = 'https://registry.npmjs.org'
- const npmPackage = 'fomantic-ui'
- const getGitHubVersion = async function () {
- return fetch(`${ghBase}/repos/${repoUrlPath}/milestones`)
- .then(r => r.json())
- .then(milestones => milestones.filter(m => m.title.indexOf('x') === -1)[0].title)
- }
- const getCurrentNpmVersion = async function () {
- return fetch(`${npmBase}/${npmPackage}`)
- .then(r => r.json())
- .then(p => p['dist-tags'].nightly)
- }
- const getNpmPreRelease = async function () {
- return fetch(`${npmBase}/${npmPackage}`)
- .then(r => r.json())
- .then(p => p['dist-tags'].nightly)
- .then(v => semver.prerelease(v))
- .then(pr => pr === null ? ['beta', 0] : pr)
- }
- const getNightlyVersion = async function () {
- const nextVersion = await getGitHubVersion()
- const currentNightlyWithPre = semver.parse(await getCurrentNpmVersion())
- const currentNightly = `${currentNightlyWithPre.major}.${currentNightlyWithPre.minor}.${currentNightlyWithPre.patch}`
- if (!semver.gt(nextVersion, currentNightly)) {
- if (semver.minor(nextVersion) === semver.minor(currentNightly)) {
- const preRelease = await getNpmPreRelease()
- return semver.inc(
- `${nextVersion}-${preRelease[0]}.${preRelease[1]}`,
- 'prerelease'
- )
- }
- }
- return `${nextVersion}-beta.0`
- }
- getNightlyVersion()
- .then(nightlyVersion => {
- pkg.version = nightlyVersion
- })
- .then(() => {
- fs.writeFileSync(
- path.resolve(__dirname, '../package.json'),
- JSON.stringify(pkg, null, 2)
- )
- })
- .then(() => console.log(`Done (${pkg.version})`))
|