chore(ci): script releases

This commit is contained in:
Leifer Mendez
2022-12-09 13:50:01 +01:00
parent 2e906bce79
commit 40b0d9691e
11 changed files with 88 additions and 44 deletions

1
.eslintignore Normal file
View File

@@ -0,0 +1 @@
packages/docs/*

View File

@@ -10,5 +10,9 @@ module.exports = {
parserOptions: { parserOptions: {
ecmaVersion: 'latest', ecmaVersion: 'latest',
}, },
rules: {}, rules: {
'no-unsafe-negation': 'off',
'no-prototype-builtins': 'off',
'no-useless-escape': 'off',
},
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "@bot-whatsapp/bot", "name": "@bot-whatsapp/bot",
"version": "0.0.1", "version": "0.0.4-alpha.0",
"description": "", "description": "",
"main": "./lib/bundle.bot.cjs", "main": "./lib/bundle.bot.cjs",
"scripts": { "scripts": {

View File

@@ -19,7 +19,7 @@ class ProviderClass extends EventEmitter {
* *
*/ */
sendMessage = async (userId, message, sendMessage) => { sendMessage = async (userId, message) => {
if (NODE_ENV !== 'production') if (NODE_ENV !== 'production')
console.log('[sendMessage]', { userId, message }) console.log('[sendMessage]', { userId, message })
return message return message

View File

@@ -1,6 +1,6 @@
{ {
"name": "@bot-whatsapp/cli", "name": "@bot-whatsapp/cli",
"version": "0.0.1", "version": "0.0.2-alpha.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"devDependencies": { "devDependencies": {

View File

@@ -1,6 +1,6 @@
{ {
"name": "create-bot-whatsapp", "name": "create-bot-whatsapp",
"version": "0.0.1", "version": "0.0.9-alpha.0",
"description": "", "description": "",
"main": "./lib/bin/bundle.create.cjs", "main": "./lib/bin/bundle.create.cjs",
"dependencies": { "dependencies": {

View File

@@ -1,6 +1,6 @@
{ {
"name": "@bot-whatsapp/database", "name": "@bot-whatsapp/database",
"version": "0.0.1", "version": "0.0.2-alpha.0",
"description": "Esto es el conector a mysql, pg, mongo", "description": "Esto es el conector a mysql, pg, mongo",
"main": "./lib/mock/index.cjs", "main": "./lib/mock/index.cjs",
"keywords": [], "keywords": [],

View File

@@ -1,6 +1,6 @@
{ {
"name": "@bot-whatsapp/provider", "name": "@bot-whatsapp/provider",
"version": "0.0.1", "version": "0.0.2-alpha.0",
"description": "Esto es el conector a Twilio, Meta, etc...", "description": "Esto es el conector a Twilio, Meta, etc...",
"main": "./lib/mock/index.cjs", "main": "./lib/mock/index.cjs",
"keywords": [], "keywords": [],

View File

@@ -81,7 +81,7 @@ class TwilioProvider extends ProviderClass {
* @param {*} buttons [] * @param {*} buttons []
* @returns * @returns
*/ */
sendButtons = async (number, message, buttons = []) => { sendButtons = async () => {
console.log(``) console.log(``)
console.log( console.log(
`[NOTA]: Actualmente enviar botons con Twilio esta en desarrollo` `[NOTA]: Actualmente enviar botons con Twilio esta en desarrollo`

View File

@@ -1,13 +1,7 @@
const { const { Client, LocalAuth, MessageMedia, Buttons } = require('whatsapp-web.js')
Client,
LocalAuth,
MessageMedia,
Buttons,
List,
} = require('whatsapp-web.js')
const { ProviderClass } = require('@bot-whatsapp/bot') const { ProviderClass } = require('@bot-whatsapp/bot')
const { Console } = require('console') const { Console } = require('console')
const { createWriteStream, existsSync } = require('fs') const { createWriteStream } = require('fs')
const { const {
cleanNumber, cleanNumber,
generateImage, generateImage,
@@ -134,19 +128,19 @@ class WebWhatsappProvider extends ProviderClass {
* @param {*} buttons [] * @param {*} buttons []
* @returns * @returns
*/ */
sendList = async (number, message, listInput = []) => { // sendList = async (number, message, listInput = []) => {
let sections = [ // let sections = [
{ // {
title: 'sectionTitle', // title: 'sectionTitle',
rows: [ // rows: [
{ title: 'ListItem1', description: 'desc' }, // { title: 'ListItem1', description: 'desc' },
{ title: 'ListItem2' }, // { title: 'ListItem2' },
], // ],
}, // },
] // ]
let list = new List('List body', 'btnText', sections, 'Title', 'footer') // let list = new List('List body', 'btnText', sections, 'Title', 'footer')
return this.vendor.sendMessage(number, list) // return this.vendor.sendMessage(number, list)
} // }
/** /**
* Enviar un mensaje solo texto * Enviar un mensaje solo texto

View File

@@ -1,11 +1,23 @@
const { writeFile, readFileSync } = require('fs') const { writeFile, readFileSync } = require('fs')
const { join } = require('path') const { join } = require('path')
const { exec, spawn } = require('node:child_process') const { spawn, execFile } = require('node:child_process')
const process = require('node:process')
const util = require('node:util')
const OS_ENVIROMENT_WIN = process.platform.includes('win32')
const semver = require('semver') const semver = require('semver')
const NPM_COMMAND = OS_ENVIROMENT_WIN ? 'npm.cmd' : 'npm'
const [PKG_ARG, PKG_ARG_VERSION] = process.argv.slice(2) || [null] const [PKG_ARG, PKG_ARG_VERSION] = process.argv.slice(2) || [null]
const PATH_PACKAGES = join(__dirname, '..', `packages`) const PATH_PACKAGES = join(__dirname, '..', `packages`)
const cmd = util.promisify(execFile)
/**
* Leer package json
* @param {*} packageName
* @returns
*/
const readPackage = (packageName = null) => { const readPackage = (packageName = null) => {
const pkgJson = join(PATH_PACKAGES, packageName, 'package.json') const pkgJson = join(PATH_PACKAGES, packageName, 'package.json')
const rawFile = readFileSync(pkgJson, 'utf-8') const rawFile = readFileSync(pkgJson, 'utf-8')
@@ -14,18 +26,27 @@ const readPackage = (packageName = null) => {
return JSON.parse(rawFile) return JSON.parse(rawFile)
} }
/**
* Actualizar package json
* @param {*} packageName
* @param {*} newPkgJson
*/
const updatePackage = (packageName = null, newPkgJson) => { const updatePackage = (packageName = null, newPkgJson) => {
return new Promise((resolve, reject) => {
const pkgJson = join(PATH_PACKAGES, packageName, 'package.json') const pkgJson = join(PATH_PACKAGES, packageName, 'package.json')
if (!Object.keys(newPkgJson).length) throw new Error(`ERROR_FILE_READ`)
writeFile(pkgJson, newPkgJson, (err) => { writeFile(pkgJson, newPkgJson, (err) => {
if (err) throw err if (err) reject(err)
resolve(true)
})
}) })
} }
/** /**
* Actualizar ramdon version de package * Actualizar version
* @param {*} packageName * @param {*} packageName
*/ */
const updateVersion = (packageName = null, number = null) => { const updateVersion = async (packageName = null, number = null) => {
if (!packageName) throw new Error(`PATH_ERROR_PACKAGE: ${packageName}`) if (!packageName) throw new Error(`PATH_ERROR_PACKAGE: ${packageName}`)
const pkgJsonObject = readPackage(packageName) const pkgJsonObject = readPackage(packageName)
@@ -42,20 +63,44 @@ const updateVersion = (packageName = null, number = null) => {
null, null,
2 2
) )
updatePackage(packageName, newPkgJson) await updatePackage(packageName, newPkgJson)
return { version: newVersion } return { version: newVersion }
} }
// const publishRelease = async (packageName) => { const packRelease = async (packageName) => {
// const pkgTarName = `builder.io-qwik-${version}.tgz` const pkgJson = join(PATH_PACKAGES, packageName)
// await execa('npm', ['pack'], { cwd: distPkgDir }) const { stdout } = await cmd(NPM_COMMAND, ['pack'], {
// } stdio: 'inherit',
cwd: pkgJson,
})
return stdout
}
const publishRelease = async (packageName, latest = false) => {
const args = !latest ? ['--tag', 'next'] : ['--access', 'public']
const pkgJson = join(PATH_PACKAGES, packageName)
const { stdout } = await cmd(NPM_COMMAND, ['publish'].concat(args), {
stdio: 'inherit',
cwd: pkgJson,
})
console.log(stdout)
return stdout
}
/** /**
* Recibe los argumentos entrantes * Recibe los argumentos entrantes
*/ */
if (PKG_ARG) {
const main = async () => {
if (PKG_ARG) {
const pkgName = PKG_ARG ? PKG_ARG.split('=').at(1) : null const pkgName = PKG_ARG ? PKG_ARG.split('=').at(1) : null
const pkgNumber = PKG_ARG_VERSION ? PKG_ARG_VERSION.split('=').at(1) : null const pkgNumber = PKG_ARG_VERSION
updateVersion(pkgName, pkgNumber) ? PKG_ARG_VERSION.split('=').at(1)
: null
await updateVersion(pkgName, pkgNumber)
await packRelease(pkgName)
await publishRelease(pkgName)
}
} }
main()