function onArtifactsDownloaded()

in scripts/generate.js [72:125]


  function onArtifactsDownloaded () {
    log = ora('Generating APIs').start()

    log.text = 'Cleaning API folder...'
    rimraf.sync(join(apiOutputFolder, '*.js'))

    const allSpec = readdirSync(downloadArtifacts.locations.specFolder)
      .filter(file => file !== '_common.json')
      .filter(file => !file.includes('deprecated'))
      .sort()
      .map(file => require(join(downloadArtifacts.locations.specFolder, file)))

    const namespaces = namespacify(readdirSync(downloadArtifacts.locations.specFolder))
    for (const namespace in namespaces) {
      if (namespace === '_common') continue
      const code = generate(namespace, namespaces[namespace], downloadArtifacts.locations.specFolder, opts.version)
      const filePath = join(apiOutputFolder, `${namespace}.js`)
      writeFileSync(filePath, code, { encoding: 'utf8' })
    }

    writeFileSync(
      requestParamsOutputFile,
      generateRequestTypes(opts.version, allSpec),
      { encoding: 'utf8' }
    )

    const { fn: factory, types } = genFactory(apiOutputFolder, downloadArtifacts.locations.specFolder, namespaces)
    writeFileSync(
      mainOutputFile,
      factory,
      { encoding: 'utf8' }
    )

    const oldTypeDefString = readFileSync(typeDefFile, 'utf8')
    const start = oldTypeDefString.indexOf('/* GENERATED */')
    const end = oldTypeDefString.indexOf('/* /GENERATED */')
    const newTypeDefString = oldTypeDefString.slice(0, start + 15) + '\n' + types + '\n  ' + oldTypeDefString.slice(end)
    writeFileSync(
      typeDefFile,
      newTypeDefString,
      { encoding: 'utf8' }
    )

    lintFiles(log, () => {
      log.text = 'Generating documentation'
      writeFileSync(
        docOutputFile,
        generateDocs(require(join(downloadArtifacts.locations.specFolder, '_common.json')), allSpec),
        { encoding: 'utf8' }
      )

      log.succeed('Done!')
    })
  }