@wscsports/blaze-rtn-sdk
Version:
WSC Sports Blaze SDK component for React Native
68 lines (66 loc) • 2.48 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const config_plugins_1 = require("@expo/config-plugins");
const fs_1 = __importDefault(require("fs"));
const util_1 = require("util");
// Promisify readFile and writeFile for async/await usage
const readFile = (0, util_1.promisify)(fs_1.default.readFile);
const writeFile = (0, util_1.promisify)(fs_1.default.writeFile);
const withMultiplePodSources = (config, { sources } = {}) => {
if (!sources || sources.length === 0) {
return config;
}
// Use withDangerousMod to modify the Podfile directly
return (0, config_plugins_1.withDangerousMod)(config, [
'ios',
async (config) => {
const file = config.modRequest.platformProjectRoot + '/Podfile';
let podfileContents = await readFile(file, 'utf8');
// Prepend source URLs to the Podfile
sources.forEach(source => {
if (!podfileContents.includes(`source '${source}'`)) {
podfileContents = `source '${source}'\n` + podfileContents;
}
});
await writeFile(file, podfileContents, 'utf8');
return config;
}
]);
};
const withBlaze = (config, { gprUsr, gprKey } = {}) => {
// Modify iOS Podfile
const iosSources = [
'https://github.com/WSCSports/blaze-specs-ios.git',
'https://cdn.cocoapods.org/'
];
config = withMultiplePodSources(config, { sources: iosSources });
// Modify Android build.gradle
config = (0, config_plugins_1.withProjectBuildGradle)(config, async (config) => {
const buildGradle = config.modResults;
const user = gprUsr || process.env.GPR_USER;
const key = gprKey || process.env.GPR_API_KEY;
if (!buildGradle.contents.includes('https://maven.pkg.github.com/WSCSports/blaze-android-release')) {
buildGradle.contents =
`${buildGradle.contents}
allprojects {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/WSCSports/blaze-android-release")
credentials {
username = "${user}"
password = "${key}"
}
}
}
}
`;
}
return config;
});
return config;
};
exports.default = withBlaze;