1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = getHeaderSearchPath;
- function _path() {
- const data = require("path");
- _path = function () {
- return data;
- };
- return data;
- }
- function _lodash() {
- const data = require("lodash");
- _lodash = function () {
- return data;
- };
- return data;
- }
- /**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
- /**
- * Given an array of directories, it returns the one that contains
- * all the other directories in a given array inside it.
- *
- * Example:
- * Given an array of directories: ['/Users/Kureev/a', '/Users/Kureev/b']
- * the returned folder is `/Users/Kureev`
- *
- * Check `getHeaderSearchPath.spec.js` for more use-cases.
- */
- const getOuterDirectory = directories => directories.reduce((topDir, currentDir) => {
- const currentFolders = currentDir.split(_path().posix.sep);
- const topMostFolders = topDir.split(_path().posix.sep);
- if (currentFolders.length === topMostFolders.length && (0, _lodash().last)(currentFolders) !== (0, _lodash().last)(topMostFolders)) {
- return currentFolders.slice(0, -1).join(_path().posix.sep);
- }
- return currentFolders.length < topMostFolders.length ? currentDir : topDir;
- });
- /**
- * Given an array of headers it returns search path so Xcode can resolve
- * headers when referenced like below:
- * ```
- * #import "CodePush.h"
- * ```
- * If all files are located in one directory (directories.length === 1),
- * we simply return a relative path to that location.
- *
- * Otherwise, we loop through them all to find the outer one that contains
- * all the headers inside. That location is then returned with /** appended at
- * the end so Xcode marks that location as `recursive` and will look inside
- * every folder of it to locate correct headers.
- */
- function getHeaderSearchPath(sourceDir, headers) {
- const directories = (0, _lodash().union)(headers.map(_path().posix.dirname));
- return directories.length === 1 ? `"$(SRCROOT)/${_path().posix.relative(sourceDir, directories[0])}"` : `"$(SRCROOT)/${_path().posix.relative(sourceDir, getOuterDirectory(directories))}/**"`;
- }
- //# sourceMappingURL=getHeaderSearchPath.js.map
|