scolladon/sfdx-git-delta

View on GitHub
src/service/botHandler.ts

Summary

Maintainability
A
0 mins
Test Coverage
'use strict'
import { parse } from 'path'

import { DOT, PATH_SEP } from '../constant/fsConstants'
import { fillPackageWithParameter } from '../utils/packageHelper'

import ShareFolderHandler from './sharedFolderHandler'

const BOT_TYPE = 'Bot'
const BOT_EXTENSION = 'bot'

export default class BotHandler extends ShareFolderHandler {
  protected override _getElementName() {
    const parsedPath = this._getParsedPath()
    const elementName = new Set([
      parsedPath.dir.split(PATH_SEP).pop(),
      parsedPath.name,
    ])
    return [...elementName].join(DOT)
  }
  public override async handleAddition() {
    await super.handleAddition()
    await this._addParentBot()
  }

  protected async _addParentBot() {
    const botName = this.parentFolder.split(PATH_SEP).pop() as string
    fillPackageWithParameter({
      store: this.diffs.package,
      type: BOT_TYPE,
      member: botName,
    })

    if (!this.config.generateDelta) return

    const botPath = `${
      parse(this.line).dir
    }${PATH_SEP}${botName}.${BOT_EXTENSION}`

    await this._copyWithMetaFile(botPath)
  }
}