UNPKG

react-native-asset

Version:

Linking and unlinking of assets in your react-native app, works for fonts and sounds

110 lines (109 loc) 4.26 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.runCli = void 0; const dntShim = __importStar(require("./_dnt.shims.js")); const path = __importStar(require("./deps/jsr.io/@std/path/1.1.4/mod.js")); const parse_args_js_1 = require("./deps/jsr.io/@std/cli/1.0.29/parse_args.js"); const main_js_1 = require("./main.js"); const node_url_1 = require("node:url"); const runCli = async () => { const args = await (0, parse_args_js_1.parseArgs)(dntShim.Deno.args, { alias: { a: "assets", "ios-a": "ios-assets", "android-a": "android-assets", p: "path", "n-u": "no-unlink", }, collect: ["assets", "ios-assets", "android-assets"], string: ["assets", "ios-assets", "android-assets", "path"], boolean: ["no-unlink"], default: { path: dntShim.Deno.cwd(), noUnlink: false, }, }); const reactNativeConfigPath = path.join(args.path, `react-native.config.js`); let reactNativeConfigExists = false; try { const _ = await dntShim.Deno.lstat(reactNativeConfigPath); reactNativeConfigExists = true; } catch (err) { if (!(err instanceof dntShim.Deno.errors.NotFound)) { throw err; } } const reactNativeConfig = reactNativeConfigExists ? (await Promise.resolve(`${(0, node_url_1.pathToFileURL)(reactNativeConfigPath).href}`).then(s => __importStar(require(s)))).default : {}; const filteredAssets = args.assets.filter(Boolean); const filteredIosAssets = args["ios-assets"].filter(Boolean); const filteredAndroidAssets = args["android-assets"].filter(Boolean); const merged = { assets: filteredAssets.length !== 0 ? filteredAssets : (reactNativeConfig.assets ?? undefined), iosAssets: filteredIosAssets.length !== 0 ? filteredIosAssets : (reactNativeConfig.iosAssets ?? undefined), androidAssets: filteredAndroidAssets.length !== 0 ? filteredAndroidAssets : (reactNativeConfig.androidAssets ?? undefined), }; await (0, main_js_1.linkAssets)({ rootPath: args.path, shouldUnlink: !args.noUnlink, platforms: { ios: { enabled: merged.assets !== undefined || merged.iosAssets !== undefined, assets: [ ...(merged.iosAssets ?? []), ...(merged.assets ?? []), ], }, android: { enabled: merged.assets !== undefined || merged.androidAssets !== undefined, assets: [ ...(merged.androidAssets ?? []), ...(merged.assets ?? []), ], }, }, }); }; exports.runCli = runCli;