react-native-integrate
Version:
Automate integration of additional code into React Native projects
38 lines (37 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addMapsCapability = addMapsCapability;
const constants_1 = require("../../constants");
const applyObjectModification_1 = require("../../utils/applyObjectModification");
const plistTask_1 = require("../plistTask");
function addMapsCapability(args) {
let plistContent = (0, plistTask_1.readPListContent)(args.targetName, constants_1.Constants.PLIST_FILE_NAME, true);
const capabilityValues = {
CFBundleDocumentTypes: [
{
CFBundleTypeName: 'MKDirectionsRequest',
LSItemContentTypes: ['com.apple.maps.directionsrequest'],
},
],
MKDirectionsApplicationSupportedModes: args.routing.map(x => mapsCapabilityRouting[x]),
};
plistContent = (0, applyObjectModification_1.applyObjectModification)(plistContent, {
set: capabilityValues,
strategy: 'merge_distinct',
});
(0, plistTask_1.writePListContent)(plistContent, args.targetName);
}
const mapsCapabilityRouting = {
bike: 'MKDirectionsModeBike',
bus: 'MKDirectionsModeBus',
car: 'MKDirectionsModeCar',
ferry: 'MKDirectionsModeFerry',
other: 'MKDirectionsModeOther',
pedestrian: 'MKDirectionsModePedestrian',
plane: 'MKDirectionsModePlane',
'ride-share': 'MKDirectionsModeRideShare',
'street-car': 'MKDirectionsModeStreetCar',
subway: 'MKDirectionsModeSubway',
taxi: 'MKDirectionsModeTaxi',
train: 'MKDirectionsModeTrain',
};