138 lines
3.1 KiB
JavaScript
138 lines
3.1 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
|
|
function _mkdirp() {
|
|
const data = _interopRequireDefault(require("mkdirp"));
|
|
|
|
_mkdirp = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _path() {
|
|
const data = _interopRequireDefault(require("path"));
|
|
|
|
_path = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _fs() {
|
|
const data = _interopRequireDefault(require("fs"));
|
|
|
|
_fs = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
var _filterPlatformAssetScales = _interopRequireDefault(require("./filterPlatformAssetScales"));
|
|
|
|
var _getAssetDestPathAndroid = _interopRequireDefault(require("./getAssetDestPathAndroid"));
|
|
|
|
var _getAssetDestPathIOS = _interopRequireDefault(require("./getAssetDestPathIOS"));
|
|
|
|
function _cliTools() {
|
|
const data = require("@react-native-community/cli-tools");
|
|
|
|
_cliTools = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
/**
|
|
* 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.
|
|
*
|
|
*/
|
|
function saveAssets(assets, platform, assetsDest) {
|
|
if (!assetsDest) {
|
|
_cliTools().logger.warn('Assets destination folder is not set, skipping...');
|
|
|
|
return Promise.resolve();
|
|
}
|
|
|
|
const getAssetDestPath = platform === 'android' ? _getAssetDestPathAndroid.default : _getAssetDestPathIOS.default;
|
|
const filesToCopy = Object.create(null); // Map src -> dest
|
|
|
|
assets.forEach(asset => {
|
|
const validScales = new Set((0, _filterPlatformAssetScales.default)(platform, asset.scales));
|
|
asset.scales.forEach((scale, idx) => {
|
|
if (!validScales.has(scale)) {
|
|
return;
|
|
}
|
|
|
|
const src = asset.files[idx];
|
|
|
|
const dest = _path().default.join(assetsDest, getAssetDestPath(asset, scale));
|
|
|
|
filesToCopy[src] = dest;
|
|
});
|
|
});
|
|
return copyAll(filesToCopy);
|
|
}
|
|
|
|
function copyAll(filesToCopy) {
|
|
const queue = Object.keys(filesToCopy);
|
|
|
|
if (queue.length === 0) {
|
|
return Promise.resolve();
|
|
}
|
|
|
|
_cliTools().logger.info(`Copying ${queue.length} asset files`);
|
|
|
|
return new Promise((resolve, reject) => {
|
|
const copyNext = error => {
|
|
if (error) {
|
|
reject(error);
|
|
return;
|
|
}
|
|
|
|
if (queue.length === 0) {
|
|
_cliTools().logger.info('Done copying assets');
|
|
|
|
resolve();
|
|
} else {
|
|
// queue.length === 0 is checked in previous branch, so this is string
|
|
const src = queue.shift();
|
|
const dest = filesToCopy[src];
|
|
copy(src, dest, copyNext);
|
|
}
|
|
};
|
|
|
|
copyNext();
|
|
});
|
|
}
|
|
|
|
function copy(src, dest, callback) {
|
|
const destDir = _path().default.dirname(dest);
|
|
|
|
(0, _mkdirp().default)(destDir, err => {
|
|
if (err) {
|
|
callback(err);
|
|
return;
|
|
}
|
|
|
|
_fs().default.createReadStream(src).pipe(_fs().default.createWriteStream(dest)).on('finish', callback);
|
|
});
|
|
}
|
|
|
|
var _default = saveAssets;
|
|
exports.default = _default;
|
|
|
|
//# sourceMappingURL=saveAssets.js.map
|