"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bundleAsync = bundleAsync; function _lodash() { const data = _interopRequireDefault(require("lodash")); _lodash = function () { return data; }; return data; } function _fsExtra() { const data = _interopRequireDefault(require("fs-extra")); _fsExtra = function () { return data; }; return data; } function _path() { const data = _interopRequireDefault(require("path")); _path = function () { return data; }; return data; } function _url() { const data = _interopRequireDefault(require("url")); _url = function () { return data; }; return data; } function _ExponentTools() { const data = require("./ExponentTools"); _ExponentTools = function () { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const EXPO_DOMAINS = ['expo.io', 'exp.host', 'expo.test', 'localhost']; const ASSETS_DIR_DEFAULT_URL = 'https://d1wp6m56sqw74a.cloudfront.net/~assets'; async function bundleAsync(context, assets, dest) { if (!assets) { return; } await _fsExtra().default.ensureDir(dest); const urlResolver = createAssetsUrlResolver(context); const batches = _lodash().default.chunk(assets, 5); for (const batch of batches) { await Promise.all(batch.map(async asset => { const extensionIndex = asset.lastIndexOf('.'); const prefixLength = 'asset_'.length; const hash = extensionIndex >= 0 ? asset.substring(prefixLength, extensionIndex) : asset.substring(prefixLength); await (0, _ExponentTools().saveUrlToPathAsync)(urlResolver(hash), _path().default.join(dest, asset)); })); } } function createAssetsUrlResolver(context) { let assetsDirUrl = ASSETS_DIR_DEFAULT_URL; if (context && context.published) { const { assetUrlOverride = './assets' } = context.config; const publishedUrl = context.published.url; const { hostname } = _url().default.parse(publishedUrl); const maybeExpoDomain = _lodash().default.takeRight(hostname.split('.'), 2).join('.'); if (!_lodash().default.includes(EXPO_DOMAINS, maybeExpoDomain)) { assetsDirUrl = _url().default.resolve(publishedUrl, assetUrlOverride); } } return hash => `${assetsDirUrl}/${hash}`; } //# sourceMappingURL=../__sourcemaps__/detach/AssetBundle.js.map