liferay-npm-bundler-preset-reactjs
Version:
liferay npm bundler preset react
44 lines (43 loc) • 1.4 kB
JavaScript
;
/**
* SPDX-FileCopyrightText: © 2020 Liferay, Inc. <https://liferay.com>
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProjectType = void 0;
var ProjectType;
(function (ProjectType) {
ProjectType["CREATE_REACT_APP"] = "create-react-app";
ProjectType["ANGULAR_CLI"] = "angular-cli";
ProjectType["VUE_CLI"] = "vue-cli";
})(ProjectType = exports.ProjectType || (exports.ProjectType = {}));
/**
* Reflects project type (React, Angular, ...)
*/
class Probe {
constructor(project) {
this._project = project;
}
/**
* Return true if project is of type create-react-app
* @return the project type or undefined if nothing detected
*/
get type() {
if (this._hasDependency('react-scripts')) {
return ProjectType.CREATE_REACT_APP;
}
if (this._hasDependency('@angular/cli')) {
return ProjectType.ANGULAR_CLI;
}
if (this._hasDependency('@vue/cli-service')) {
return ProjectType.VUE_CLI;
}
return undefined;
}
_hasDependency(pkgName) {
const { pkgJson } = this._project;
return ((pkgJson['dependencies'] && pkgJson['dependencies'][pkgName]) ||
(pkgJson['devDependencies'] && pkgJson['devDependencies'][pkgName]));
}
}
exports.default = Probe;