1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | function _mkdirp() {
|
9 | const data = _interopRequireDefault(require("mkdirp"));
|
10 |
|
11 | _mkdirp = function () {
|
12 | return data;
|
13 | };
|
14 |
|
15 | return data;
|
16 | }
|
17 |
|
18 | function _path() {
|
19 | const data = _interopRequireDefault(require("path"));
|
20 |
|
21 | _path = function () {
|
22 | return data;
|
23 | };
|
24 |
|
25 | return data;
|
26 | }
|
27 |
|
28 | function _fs() {
|
29 | const data = _interopRequireDefault(require("fs"));
|
30 |
|
31 | _fs = function () {
|
32 | return data;
|
33 | };
|
34 |
|
35 | return data;
|
36 | }
|
37 |
|
38 | var _filterPlatformAssetScales = _interopRequireDefault(require("./filterPlatformAssetScales"));
|
39 |
|
40 | var _getAssetDestPathAndroid = _interopRequireDefault(require("./getAssetDestPathAndroid"));
|
41 |
|
42 | var _getAssetDestPathIOS = _interopRequireDefault(require("./getAssetDestPathIOS"));
|
43 |
|
44 | function _cliTools() {
|
45 | const data = require("@react-native-community/cli-tools");
|
46 |
|
47 | _cliTools = function () {
|
48 | return data;
|
49 | };
|
50 |
|
51 | return data;
|
52 | }
|
53 |
|
54 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
55 |
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 | function saveAssets(assets, platform, assetsDest) {
|
64 | if (!assetsDest) {
|
65 | _cliTools().logger.warn('Assets destination folder is not set, skipping...');
|
66 |
|
67 | return Promise.resolve();
|
68 | }
|
69 |
|
70 | const getAssetDestPath = platform === 'android' ? _getAssetDestPathAndroid.default : _getAssetDestPathIOS.default;
|
71 | const filesToCopy = Object.create(null);
|
72 |
|
73 | assets.forEach(asset => {
|
74 | const validScales = new Set((0, _filterPlatformAssetScales.default)(platform, asset.scales));
|
75 | asset.scales.forEach((scale, idx) => {
|
76 | if (!validScales.has(scale)) {
|
77 | return;
|
78 | }
|
79 |
|
80 | const src = asset.files[idx];
|
81 |
|
82 | const dest = _path().default.join(assetsDest, getAssetDestPath(asset, scale));
|
83 |
|
84 | filesToCopy[src] = dest;
|
85 | });
|
86 | });
|
87 | return copyAll(filesToCopy);
|
88 | }
|
89 |
|
90 | function copyAll(filesToCopy) {
|
91 | const queue = Object.keys(filesToCopy);
|
92 |
|
93 | if (queue.length === 0) {
|
94 | return Promise.resolve();
|
95 | }
|
96 |
|
97 | _cliTools().logger.info(`Copying ${queue.length} asset files`);
|
98 |
|
99 | return new Promise((resolve, reject) => {
|
100 | const copyNext = error => {
|
101 | if (error) {
|
102 | reject(error);
|
103 | return;
|
104 | }
|
105 |
|
106 | if (queue.length === 0) {
|
107 | _cliTools().logger.info('Done copying assets');
|
108 |
|
109 | resolve();
|
110 | } else {
|
111 |
|
112 | const src = queue.shift();
|
113 | const dest = filesToCopy[src];
|
114 | copy(src, dest, copyNext);
|
115 | }
|
116 | };
|
117 |
|
118 | copyNext();
|
119 | });
|
120 | }
|
121 |
|
122 | function copy(src, dest, callback) {
|
123 | const destDir = _path().default.dirname(dest);
|
124 |
|
125 | (0, _mkdirp().default)(destDir, err => {
|
126 | if (err) {
|
127 | callback(err);
|
128 | return;
|
129 | }
|
130 |
|
131 | _fs().default.createReadStream(src).pipe(_fs().default.createWriteStream(dest)).on('finish', callback);
|
132 | });
|
133 | }
|
134 |
|
135 | var _default = saveAssets;
|
136 | exports.default = _default; |
\ | No newline at end of file |