How to use ern-api-gen - 6 common examples

To help you get started, we’ve selected a few ern-api-gen examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github electrode-io / electrode-native / ern-local-cli / src / commands / create-api.ts View on Github external
throw new Error('react-native-electrode-bridge version needs to be defined')
  }

  const reactNative = await manifest.getNativeDependency(
    PackagePath.fromString('react-native'),
    { manifestId }
  )
  if (!reactNative) {
    throw new Error(
      'react-native-electrode-bridge not found in manifest. cannot infer version to use'
    )
  }

  log.info(`Generating ${apiName} API`)

  await ApiGen.generateApi({
    apiAuthor,
    apiSchemaPath: schemaPath,
    apiVersion,
    bridgeVersion: `${bridgeDep.version || ''}`,
    name: apiName,
    npmScope: scope,
    packageName,
    reactNativeVersion: reactNative.version,
  })
  log.info('Success')
}
github electrode-io / electrode-native / ern-local-cli / src / commands / create-api.js View on Github external
const bridgeDep = await manifest.getNativeDependency(PackagePath.fromString('react-native-electrode-bridge'))
    if (!bridgeDep) {
      throw new Error('react-native-electrode-bridge not found in manifest. cannot infer version to use')
    }
    if (!bridgeDep.version) {
      throw new Error('react-native-electrode-bridge version needs to be defined')
    }

    const reactNative = await manifest.getNativeDependency(PackagePath.fromString('react-native'))
    if (!reactNative) {
      throw new Error('react-native-electrode-bridge not found in manifest. cannot infer version to use')
    }

    log.info(`Generating ${apiName} API`)

    await ApiGen.generateApi({
      bridgeVersion: `${bridgeDep.version || ''}`,
      reactNativeVersion: reactNative.version,
      name: apiName,
      npmScope: scope,
      apiSchemaPath: schemaPath,
      apiVersion: apiVersion,
      apiAuthor: apiAuthor,
      packageName: packageName
    })
    log.info('Success!')
  } catch (e) {
    coreUtils.logErrorAndExitProcess(e)
  }
}
github electrode-io / electrode-native / ern-local-cli / src / commands / regen-api.js View on Github external
skipVersion: boolean,
  bridgeVersion: string
} = {}) {
  try {
    if (!bridgeVersion) {
      const bridgeDep = await manifest.getNativeDependency(PackagePath.fromString('react-native-electrode-bridge'))
      if (!bridgeDep) {
        throw new Error('react-native-electrode-bridge not found in manifest. please provide explicit version')
      }
      if (!bridgeDep.version) {
        throw new Error('react-native-electrode-bridge version not defined. This should not happen')
      }
      bridgeVersion = bridgeDep.version
    }

    await ApiGen.regenerateCode({bridgeVersion, skipVersion})
  } catch (e) {
    coreUtils.logErrorAndExitProcess(e)
  }
}
github electrode-io / electrode-native / ern-local-cli / src / commands / regen-api.ts View on Github external
const bridgeDep = await manifest.getNativeDependency(electrodeBridgePkg, {
      manifestId,
    })
    if (!bridgeDep) {
      throw new Error(
        `react-native-electrode-bridge is not found in manifest. Specify explicit --bridgeVersion in the command.\n ${errorMessage}`
      )
    }
    if (!bridgeDep.version) {
      throw new Error(
        `react-native-electrode-bridge version not defined. Specify explicit --bridgeVersion in the command. \n ${errorMessage}`
      )
    }
    bridgeVersion = bridgeDep.version
  }
  await ApiGen.regenerateCode({ bridgeVersion, skipVersion })
}
github electrode-io / electrode-native / ern-api-impl-gen / src / generators / ApiImplGen.js View on Github external
apiPackagePath: PackagePath,
    paths: {
      workingDirectory: string,
      pluginsDownloadDirectory: string,
      apiImplHull: string,
      outDirectory: string
    },
    reactNativeVersion: string,
    platforms: Array,
    regen: boolean = false) {
    log.debug(`Inside generateApiImplementation for api:${apiPackagePath.toString()},  platforms:${platforms.toString()}`)

    await this.downloadApiAndDependencies(apiPackagePath, paths.pluginsDownloadDirectory, reactNativeVersion)

    const schemaJson = path.join(paths.pluginsDownloadDirectory, 'node_modules', apiPackagePath.basePath, 'schema.json')
    const apis:Array = await ApiGenUtils.extractApiEventsAndRequests(schemaJson)
    this.updatePackageJsonWithApiNames(paths.outDirectory, apis)

    const generators: Array = this.getGenerators(platforms)
    for (let generator of generators) {
      try {
        if (generator) {
          await generator.generate(apiPackagePath, paths, reactNativeVersion, plugins, apis, regen)
        }
      } catch (e) {
        throw new Error(`API implementation project generation failed: ${e}`)
      }
    }

    log.info(chalk.green(`API implementation project was successfully generated in ${paths.outDirectory}`))
  }
github electrode-io / electrode-native / ern-api-impl-gen / src / generators / ApiImplGen.ts View on Github external
reactNativeVersion: string,
    platforms: string[],
    regen: boolean = false
  ) {
    log.debug(
      `Inside generateApiImplementation for api:${apiPackagePath.toString()},  platforms:${platforms.toString()}`
    )

    const schemaJson = path.join(
      paths.outDirectory,
      'node_modules',
      apiPackagePath.basePath,
      'schema.json'
    )

    const apis: any[] = await ApiGenUtils.extractApiEventsAndRequests(
      schemaJson
    )

    this.updatePackageJsonWithApiNames(paths.outDirectory, apis)

    const reactNativeElectrodeBridge: any = await readPackageJson(
      path.join(
        paths.outDirectory,
        'node_modules/react-native-electrode-bridge'
      )
    )

    const generators: ApiImplGeneratable[] = this.getGenerators(platforms)
    for (const generator of generators) {
      try {
        if (generator) {

ern-api-gen

Electrode Native API Generator

Apache-2.0
Latest version published 7 months ago

Package Health Score

55 / 100
Full package analysis