//@ts-nocheck const util = require('util'); const exec = util.promisify(require('child_process').exec); const path = require('path'); const fs = require('fs'); const semver = require('semver'); const { spawn } = require('node:child_process'); // const { exec } = require('node:child_process'); console.log('Building and Publishing UIKIT'); // UIKIT Directory const uikitDir = path.resolve(process.cwd(), 'libs/uikit'); // Dist Directory const distPath = path.resolve(process.cwd(), 'dist/libs/uikit'); console.log(distPath); const configChildProcess = async () => { const test = spawn('npm config list', { shell: true }); const conf = spawn( `npm config set @RadityaD:registry https://gitlab.com/api/v4/projects/${process.env.PROJECT_ID}/packages/npm/`, { shell: true } ); return new Promise((resolveFunc, rej) => { test.stdout.on('data', (data) => { console.log(`${data}`); resolveFunc(); }); conf.on('exit', (code) => { resolveFunc(); console.log('set child process'); }); }); }; // Config // const configPublish = async () => { // // const content = `@RadityaD:registry=https://gitlab.com/api/v4/projects/${process.env.PROJECT_ID}/packages/npm/\n//gitlab.com/api/v4/projects/${process.env.PROJECT_ID}/packages/npm/:_authToken="${process.env.NPM_ACTOKEN}"`; // const registry = `registry=https://gitlab.com/api/v4/projects/${process.env.PROJECT_ID}/packages/npm/:_authToken="${process.env.NPM_ACTOKEN}"`; // // Write NPMRC // await fs.appendFile(`${process.cwd()}/.npmrc`, registry, (err: any) => { // if (err) throw Error(err); // }); // }; const buildFunction = () => { const build = spawn('yarn nx run uikit:build', { shell: true }); return new Promise((resolveFunc, rejectFunc) => { build.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); build.stderr.on('data', (data) => { console.error(`stderr: ${data}`); }); build.on('error', (code) => { rejectFunc(code); console.log(`build process exited with code ${code}`); }); // On finish building do versioning build.on('exit', (code) => { console.log('Finished Building UIKIT'); resolveFunc(code); }); }); }; const versioningFunction = () => { const version = spawn('npm version patch --no-git-tag-version', { shell: true, cwd: `${process.cwd()}/dist/libs/uikit`, }); return new Promise((resolveFunc, rejectFunc) => { version.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); version.stderr.on('data', (data) => { console.error(`stderr: ${data}`); }); version.on('error', (code) => { console.log(`versioning process exited with code ${code}`); rejectFunc(code); }); version.on('exit', (code) => { resolveFunc(code); }); }); }; const publishFunction = () => { const pub = spawn( `npm publish --registry https://gitlab.com/api/v4/projects/${process.env.PROJECT_ID}/packages/npm/`, { cwd: distPath, shell: true, } ); return new Promise((resolveFunc, rejectFunc) => { pub.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); pub.stderr.on('data', (data) => { console.error(`stderr: ${data}`); }); pub.on('error', (code) => { console.log(`pubing process exited with code ${code}`); rejectFunc(code); }); pub.on('exit', (code) => { resolveFunc(code); }); }); }; const main = async () => { // Build console.log('- Build'); await buildFunction(); // Version console.log('- Version'); await versioningFunction(); // Config console.log('- Config'); // await configPublish(); await configChildProcess(); // Publish console.log('- Publish'); await publishFunction(); }; main();