mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-02 13:39:30 +08:00
56 lines
1.7 KiB
Text
56 lines
1.7 KiB
Text
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
const icon_index = require('./index.cjs');
|
|
|
|
const stringToIcon = (value, validate, allowSimpleName, provider = "") => {
|
|
const colonSeparated = value.split(":");
|
|
if (value.slice(0, 1) === "@") {
|
|
if (colonSeparated.length < 2 || colonSeparated.length > 3) {
|
|
return null;
|
|
}
|
|
provider = colonSeparated.shift().slice(1);
|
|
}
|
|
if (colonSeparated.length > 3 || !colonSeparated.length) {
|
|
return null;
|
|
}
|
|
if (colonSeparated.length > 1) {
|
|
const name2 = colonSeparated.pop();
|
|
const prefix = colonSeparated.pop();
|
|
const result = {
|
|
provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,
|
|
prefix,
|
|
name: name2
|
|
};
|
|
return validate && !validateIcon(result) ? null : result;
|
|
}
|
|
const name = colonSeparated[0];
|
|
const dashSeparated = name.split("-");
|
|
if (dashSeparated.length > 1) {
|
|
const result = {
|
|
provider,
|
|
prefix: dashSeparated.shift(),
|
|
name: dashSeparated.join("-")
|
|
};
|
|
return validate && !validateIcon(result) ? null : result;
|
|
}
|
|
if (allowSimpleName && provider === "") {
|
|
const result = {
|
|
provider,
|
|
prefix: "",
|
|
name
|
|
};
|
|
return validate && !validateIcon(result, allowSimpleName) ? null : result;
|
|
}
|
|
return null;
|
|
};
|
|
const validateIcon = (icon, allowSimpleName) => {
|
|
if (!icon) {
|
|
return false;
|
|
}
|
|
return !!((icon.provider === "" || icon.provider.match(icon_index.matchName)) && (allowSimpleName && icon.prefix === "" || icon.prefix.match(icon_index.matchName)) && icon.name.match(icon_index.matchName));
|
|
};
|
|
|
|
exports.stringToIcon = stringToIcon;
|
|
exports.validateIcon = validateIcon;
|