/* eslint-disable no-process-exit */ /* eslint-disable no-console */ /* eslint-disable no-sync */ 'use strict'; const fs = require ('fs'); const child_process = require ('child_process'); const pkg = JSON.parse (fs.readFileSync ('package.json', 'utf-8')); [ ,, pkg.version ] = process.argv; fs.writeFileSync ('package.json', JSON.stringify (pkg, null, 2)); child_process.execSync ('yarn lint', { stdio: 'inherit' }); child_process.execSync ('yarn test', { stdio: 'inherit' }); child_process.execSync ('yarn compile', { stdio: 'inherit' }); if (typeof pkg.description === 'undefined' || pkg.description === '') { console.log ('description undefined'); process.exit (1); } if (typeof pkg.repository === 'undefined') { console.log ('repository undefined'); process.exit (1); } function major (version) { return version.replace (/\.[0-9]+$/ui, ''); } if (fs.existsSync ('README.md')) { const readme = fs.readFileSync ('README.md', 'utf-8'); // eslint-disable-next-line prefer-named-capture-group const version = (/version: ([0-9.]+)/ui).exec (readme); if ( version === null || major (version[1]) !== major (pkg.version) ) { console.log ('readme version does not match package version'); process.exit (1); } else { child_process.execSync ('yarn publish --access public'); } } else { console.log ('readme does not exist'); process.exit (1); }