UNPKG

expo-wakeword

Version:

Voice/Wake-word detection library for Expo (React Native)

59 lines (55 loc) 2.24 kB
"use strict"; const { withProjectBuildGradle, withAppBuildGradle, WarningAggregator, } = require('@expo/config-plugins'); const { mergeContents } = require('@expo/config-plugins/build/utils/generateCode'); const MODULE_NAME = 'react-native-wakeword'; const androidPlugin = (config, props = {}) => { config = withProjectBuildGradle(config, ({ modResults, ...subConfig }) => { if (modResults.language !== 'groovy') { WarningAggregator.addWarningAndroid('withWakeword', `Cannot automatically configure project build.gradle because it's not groovy`); return { modResults, ...subConfig }; } modResults.contents = applyMavenUrl(modResults.contents); return { modResults, ...subConfig }; }); config = withAppBuildGradle(config, ({ modResults, ...subConfig }) => { if (modResults.language !== 'groovy') { WarningAggregator.addWarningAndroid('withWakeword', `Cannot automatically configure app build.gradle because it's not groovy`); return { modResults, ...subConfig }; } modResults.contents = applyAppGradle(modResults.contents); return { modResults, ...subConfig }; }); return config; }; const applyMavenUrl = (buildGradle) => { const newSrc = ` // react-native-wakeword added maven { url "\${project(":${MODULE_NAME}").projectDir}/libs" } maven { url("\${project(':${MODULE_NAME}').projectDir}/libs") } maven { url("\${project(':${MODULE_NAME}').projectDir}/libs") } // End react-native-wakeword added `.trim(); return mergeContents({ tag: `${MODULE_NAME}-maven`, src: buildGradle, newSrc, anchor: /allprojects\s*\{[^}]*repositories\s*\{/, offset: 1, comment: "//", }).contents; }; const applyAppGradle = (buildGradle) => { const newSrc = `Project wakeword = project(':${MODULE_NAME}')`; return mergeContents({ tag: `${MODULE_NAME}-project`, src: buildGradle, newSrc, anchor: /android\s?\{/, offset: 1, comment: "//", }).contents; }; module.exports = androidPlugin; //# sourceMappingURL=androidPlugin.js.map