UNPKG

@modern-js/module-tools

Version:

Simple, powerful, high-performance modern npm package development solution.

114 lines (113 loc) 4.85 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var platform_exports = {}; __export(platform_exports, { buildPlatform: () => buildPlatform }); module.exports = __toCommonJS(platform_exports); var import_utils = require("@modern-js/utils"); var import_color = require("../constants/color"); const buildPlatform = async (options, api, context) => { const runner = api.useHookRunners(); const platformBuilders = await runner.registerBuildPlatform(); if (platformBuilders.length === 0) { if (options.platform === true) { import_utils.logger.info("No executable platform build tasks"); } else if (Array.isArray(options.platform) && options.platform.length === 1) { import_utils.logger.info(`No build tasks with platform "${options.platform[0]}" found`); } else if (Array.isArray(options.platform) && options.platform.length > 1) { import_utils.logger.info(`No build tasks with platform ${options.platform.join(",")} found`); } else { import_utils.logger.info("Unknown platform", JSON.stringify(options.platform)); } return; } await runner.beforeBuildPlatform(platformBuilders); let errorMsg = null; try { if (options.platform === true) { for (const platformBuilder of platformBuilders) { const currentPlatform = Array.isArray(platformBuilder.platform) ? platformBuilder.platform[0] : platformBuilder.platform; import_utils.logger.info(import_utils.chalk.underline.rgb(...import_color.blue)(`Running [${currentPlatform}] build task:`)); await runner.buildPlatform({ platform: currentPlatform }); await platformBuilder.build(currentPlatform, { isTsProject: context.isTsProject }); import_utils.logger.info(import_utils.chalk.rgb(...import_color.gray)(`Done for [${currentPlatform}] task`)); } } else if (Array.isArray(options.platform) && options.platform.length === 1) { const targetPlatform = options.platform[0]; const selectPlatformBuilder = platformBuilders.find((builder) => { if (Array.isArray(builder.platform)) { return builder.platform.includes(targetPlatform); } return builder.platform === targetPlatform; }); if (!selectPlatformBuilder) { import_utils.logger.info(`The specified "${targetPlatform}" build does not exist`); return; } import_utils.logger.info(import_utils.chalk.underline.rgb(...import_color.blue)(`Running [${targetPlatform}] build task:`)); await runner.buildPlatform({ platform: targetPlatform }); await selectPlatformBuilder.build(targetPlatform, { isTsProject: context.isTsProject }); import_utils.logger.info(import_utils.chalk.rgb(...import_color.gray)(`Done for [${targetPlatform}] task`)); } else if (Array.isArray(options.platform) && options.platform.length > 1) { for (const platform of options.platform) { const foundBuilder = platformBuilders.find((builder) => { if (Array.isArray(builder.platform)) { return builder.platform.includes(platform); } return builder.platform === platform; }); if (!foundBuilder) { import_utils.logger.info(`skip ${platform} build, because it does not exist`); continue; } import_utils.logger.info(import_utils.chalk.underline.rgb(...import_color.blue)(`Running [${platform}] build task:`)); await runner.buildPlatform({ platform }); await foundBuilder.build(platform, { isTsProject: context.isTsProject }); import_utils.logger.info(import_utils.chalk.rgb(...import_color.gray)(`Done for [${platform}] task`)); } } } catch (e) { if (e instanceof Error) { errorMsg = e; } else { errorMsg = String(e); } } await runner.afterBuildPlatform({ status: errorMsg === null ? "success" : "fail", message: errorMsg }); }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { buildPlatform });