"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.config = exports.StringUtils = void 0;
var typescript_ioc_1 = require("typescript-ioc");
/**
 * 字符串工具
 * @date 2020-09-17 10:00:14
 * @author 吴锋霖
 */
var StringUtils = /** @class */ (function () {
    function StringUtils() {
    }
    /**
      * 是否为空
      * @param parameters
      */
    StringUtils.isEmpty = function (parameters) {
        if (!parameters && parameters != false && parameters != 0) {
            return true;
        }
        return parameters.toString().trim().length == 0;
    };
    /**
     * 是不否为空
     * @param parameters
     */
    StringUtils.isNotEmpty = function (parameters) {
        return !this.isEmpty(parameters);
    };
    /**
     * 截取返回第一次出现[delimiter]定界符之前的子字符串
     * StringUtils.substringBefore('cm.ketyop.stc.cm-tools', '.') = cm
     * @param str 字符串
     * @param delimiter 定界符
     * @param missingDelimiterValue 如果字符串不包含定界符，则返回[missingDelimiterValue]，默认为原始字符串。
     */
    StringUtils.substringBefore = function (str, delimiter, missingDelimiterValue) {
        if (missingDelimiterValue === void 0) { missingDelimiterValue = undefined; }
        if (this.isEmpty(str)) {
            return str;
        }
        var index = str.indexOf(delimiter);
        if (this.isEmpty(missingDelimiterValue)) {
            missingDelimiterValue = str;
        }
        return index == -1 ? missingDelimiterValue : str.substring(0, index);
    };
    /**
     * 截取返回最后一次出现[delimiter]定界符之前的子字符串
     * StringUtils.substringBefore('cm.ketyop.stc.cm-tools', '.') = cm.ketyop.stc
     * @param str 字符串
     * @param delimiter 定界符
     * @param missingDelimiterValue 如果字符串不包含定界符，则返回[missingDelimiterValue]，默认为原始字符串。
     */
    StringUtils.substringBeforeLast = function (str, delimiter, missingDelimiterValue) {
        if (missingDelimiterValue === void 0) { missingDelimiterValue = undefined; }
        if (this.isEmpty(str)) {
            return str;
        }
        var index = str.lastIndexOf(delimiter);
        if (this.isEmpty(missingDelimiterValue)) {
            missingDelimiterValue = str;
        }
        return index == -1 ? missingDelimiterValue : str.substring(0, index);
    };
    /**
     * 截取返回第一次出现[delimiter]定界符之后的子字符串
     *
     * StringUtils.substringAfter('cm.ketyop.stc.cm-tools', '.') = ketyop.stc.cm-tools
     * @param str 字符串
     * @param delimiter 定界符
     * @param missingDelimiterValue 如果字符串不包含定界符，则返回[missingDelimiterValue]，默认为原始字符串。
     */
    StringUtils.substringAfter = function (str, delimiter, missingDelimiterValue) {
        if (missingDelimiterValue === void 0) { missingDelimiterValue = undefined; }
        if (this.isEmpty(str)) {
            return str;
        }
        var index = str.indexOf(delimiter);
        if (this.isEmpty(missingDelimiterValue)) {
            missingDelimiterValue = str;
        }
        return index == -1 ? missingDelimiterValue : str.substring(index + 1, str.length);
    };
    /**
     * 截取返回最后一次出现[delimiter]定界符之后的子字符串
     *
     * StringUtils.substringAfterLast('cm.ketyop.stc.cm-tools', '.') = cm-tools
     * @param str 字符串
     * @param delimiter 定界符
     * @param missingDelimiterValue 如果字符串不包含定界符，则返回[missingDelimiterValue]，默认为原始字符串。
     */
    StringUtils.substringAfterLast = function (str, delimiter, missingDelimiterValue) {
        if (missingDelimiterValue === void 0) { missingDelimiterValue = undefined; }
        if (this.isEmpty(str)) {
            return str;
        }
        var index = str.lastIndexOf(delimiter);
        if (this.isEmpty(missingDelimiterValue)) {
            missingDelimiterValue = str;
        }
        return index == -1 ? missingDelimiterValue : str.substring(index + 1, str.length);
    };
    StringUtils.getValue = function (name) {
        return typescript_ioc_1.Container.getValue(name);
    };
    return StringUtils;
}());
exports.StringUtils = StringUtils;
exports.config = StringUtils.getValue('config');
//# sourceMappingURL=StringUtils.js.map