Add dependency
This commit is contained in:
parent
55470c090d
commit
6947a1adba
1260 changed files with 111297 additions and 0 deletions
186
@capacitor/cli/dist/plugin.js
vendored
Normal file
186
@capacitor/cli/dist/plugin.js
vendored
Normal file
|
|
@ -0,0 +1,186 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getAllElements = exports.getFilePath = exports.getAssets = exports.getJSModules = exports.getPluginType = exports.getPlatformElement = exports.getPluginPlatform = exports.printPlugins = exports.fixName = exports.getDependencies = exports.resolvePlugin = exports.getPlugins = exports.getIncludedPluginPackages = void 0;
|
||||
const tslib_1 = require("tslib");
|
||||
const utils_fs_1 = require("@ionic/utils-fs");
|
||||
const path_1 = require("path");
|
||||
const colors_1 = tslib_1.__importDefault(require("./colors"));
|
||||
const errors_1 = require("./errors");
|
||||
const log_1 = require("./log");
|
||||
const node_1 = require("./util/node");
|
||||
const xml_1 = require("./util/xml");
|
||||
function getIncludedPluginPackages(config, platform) {
|
||||
var _a, _b, _c, _d;
|
||||
const { extConfig } = config.app;
|
||||
switch (platform) {
|
||||
case 'android':
|
||||
return (_b = (_a = extConfig.android) === null || _a === void 0 ? void 0 : _a.includePlugins) !== null && _b !== void 0 ? _b : extConfig.includePlugins;
|
||||
case 'ios':
|
||||
return (_d = (_c = extConfig.ios) === null || _c === void 0 ? void 0 : _c.includePlugins) !== null && _d !== void 0 ? _d : extConfig.includePlugins;
|
||||
}
|
||||
}
|
||||
exports.getIncludedPluginPackages = getIncludedPluginPackages;
|
||||
async function getPlugins(config, platform) {
|
||||
var _a;
|
||||
const possiblePlugins = (_a = getIncludedPluginPackages(config, platform)) !== null && _a !== void 0 ? _a : getDependencies(config);
|
||||
const resolvedPlugins = await Promise.all(possiblePlugins.map(async (p) => resolvePlugin(config, p)));
|
||||
return resolvedPlugins.filter((p) => !!p);
|
||||
}
|
||||
exports.getPlugins = getPlugins;
|
||||
async function resolvePlugin(config, name) {
|
||||
try {
|
||||
const packagePath = (0, node_1.resolveNode)(config.app.rootDir, name, 'package.json');
|
||||
if (!packagePath) {
|
||||
(0, errors_1.fatal)(`Unable to find ${colors_1.default.strong(`node_modules/${name}`)}.\n` +
|
||||
`Are you sure ${colors_1.default.strong(name)} is installed?`);
|
||||
}
|
||||
const rootPath = (0, path_1.dirname)(packagePath);
|
||||
const meta = await (0, utils_fs_1.readJSON)(packagePath);
|
||||
if (!meta) {
|
||||
return null;
|
||||
}
|
||||
if (meta.capacitor) {
|
||||
return {
|
||||
id: name,
|
||||
name: fixName(name),
|
||||
version: meta.version,
|
||||
rootPath,
|
||||
repository: meta.repository,
|
||||
manifest: meta.capacitor,
|
||||
};
|
||||
}
|
||||
const pluginXMLPath = (0, path_1.join)(rootPath, 'plugin.xml');
|
||||
const xmlMeta = await (0, xml_1.readXML)(pluginXMLPath);
|
||||
return {
|
||||
id: name,
|
||||
name: fixName(name),
|
||||
version: meta.version,
|
||||
rootPath: rootPath,
|
||||
repository: meta.repository,
|
||||
xml: xmlMeta.plugin,
|
||||
};
|
||||
}
|
||||
catch (e) {
|
||||
// ignore
|
||||
}
|
||||
return null;
|
||||
}
|
||||
exports.resolvePlugin = resolvePlugin;
|
||||
function getDependencies(config) {
|
||||
var _a, _b;
|
||||
return [
|
||||
...Object.keys((_a = config.app.package.dependencies) !== null && _a !== void 0 ? _a : {}),
|
||||
...Object.keys((_b = config.app.package.devDependencies) !== null && _b !== void 0 ? _b : {}),
|
||||
];
|
||||
}
|
||||
exports.getDependencies = getDependencies;
|
||||
function fixName(name) {
|
||||
name = name
|
||||
.replace(/\//g, '_')
|
||||
.replace(/-/g, '_')
|
||||
.replace(/@/g, '')
|
||||
.replace(/_\w/g, m => m[1].toUpperCase());
|
||||
return name.charAt(0).toUpperCase() + name.slice(1);
|
||||
}
|
||||
exports.fixName = fixName;
|
||||
function printPlugins(plugins, platform, type = 'capacitor') {
|
||||
if (plugins.length === 0) {
|
||||
return;
|
||||
}
|
||||
let msg;
|
||||
const plural = plugins.length === 1 ? '' : 's';
|
||||
switch (type) {
|
||||
case 'cordova':
|
||||
msg = `Found ${plugins.length} Cordova plugin${plural} for ${colors_1.default.strong(platform)}:\n`;
|
||||
break;
|
||||
case 'incompatible':
|
||||
msg = `Found ${plugins.length} incompatible Cordova plugin${plural} for ${colors_1.default.strong(platform)}, skipped install:\n`;
|
||||
break;
|
||||
case 'capacitor':
|
||||
msg = `Found ${plugins.length} Capacitor plugin${plural} for ${colors_1.default.strong(platform)}:\n`;
|
||||
break;
|
||||
}
|
||||
msg += plugins.map(p => `${p.id}${colors_1.default.weak(`@${p.version}`)}`).join('\n');
|
||||
log_1.logger.info(msg);
|
||||
}
|
||||
exports.printPlugins = printPlugins;
|
||||
function getPluginPlatform(p, platform) {
|
||||
const platforms = p.xml.platform;
|
||||
if (platforms) {
|
||||
const platforms = p.xml.platform.filter(function (item) {
|
||||
return item.$.name === platform;
|
||||
});
|
||||
return platforms[0];
|
||||
}
|
||||
return [];
|
||||
}
|
||||
exports.getPluginPlatform = getPluginPlatform;
|
||||
function getPlatformElement(p, platform, elementName) {
|
||||
const platformTag = getPluginPlatform(p, platform);
|
||||
if (platformTag) {
|
||||
const element = platformTag[elementName];
|
||||
if (element) {
|
||||
return element;
|
||||
}
|
||||
}
|
||||
return [];
|
||||
}
|
||||
exports.getPlatformElement = getPlatformElement;
|
||||
function getPluginType(p, platform) {
|
||||
var _a, _b, _c, _d;
|
||||
switch (platform) {
|
||||
case 'ios':
|
||||
return (_b = (_a = p.ios) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : 0 /* PluginType.Core */;
|
||||
case 'android':
|
||||
return (_d = (_c = p.android) === null || _c === void 0 ? void 0 : _c.type) !== null && _d !== void 0 ? _d : 0 /* PluginType.Core */;
|
||||
}
|
||||
return 0 /* PluginType.Core */;
|
||||
}
|
||||
exports.getPluginType = getPluginType;
|
||||
/**
|
||||
* Get each JavaScript Module for the given plugin
|
||||
*/
|
||||
function getJSModules(p, platform) {
|
||||
return getAllElements(p, platform, 'js-module');
|
||||
}
|
||||
exports.getJSModules = getJSModules;
|
||||
/**
|
||||
* Get each asset tag for the given plugin
|
||||
*/
|
||||
function getAssets(p, platform) {
|
||||
return getAllElements(p, platform, 'asset');
|
||||
}
|
||||
exports.getAssets = getAssets;
|
||||
function getFilePath(config, plugin, path) {
|
||||
if (path.startsWith('node_modules')) {
|
||||
let pathSegments = path.split('/').slice(1);
|
||||
if (pathSegments[0].startsWith('@')) {
|
||||
pathSegments = [
|
||||
pathSegments[0] + '/' + pathSegments[1],
|
||||
...pathSegments.slice(2),
|
||||
];
|
||||
}
|
||||
const filePath = (0, node_1.resolveNode)(config.app.rootDir, ...pathSegments);
|
||||
if (!filePath) {
|
||||
throw new Error(`Can't resolve module ${pathSegments[0]}`);
|
||||
}
|
||||
return filePath;
|
||||
}
|
||||
return (0, path_1.join)(plugin.rootPath, path);
|
||||
}
|
||||
exports.getFilePath = getFilePath;
|
||||
/**
|
||||
* For a given plugin, return all the plugin.xml elements with elementName, checking root and specified platform
|
||||
*/
|
||||
function getAllElements(p, platform, elementName) {
|
||||
let modules = [];
|
||||
if (p.xml[elementName]) {
|
||||
modules = modules.concat(p.xml[elementName]);
|
||||
}
|
||||
const platformModules = getPluginPlatform(p, platform);
|
||||
if (platformModules === null || platformModules === void 0 ? void 0 : platformModules[elementName]) {
|
||||
modules = modules.concat(platformModules[elementName]);
|
||||
}
|
||||
return modules;
|
||||
}
|
||||
exports.getAllElements = getAllElements;
|
||||
Loading…
Add table
Add a link
Reference in a new issue