@rnaga/wp-node
Version:
👉 **[View Full Documentation at rnaga.github.io/wp-node →](https://rnaga.github.io/wp-node/)**
74 lines (73 loc) • 3.24 kB
JavaScript
;
/* eslint-disable no-case-declarations */
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MetaUtil = void 0;
const component_1 = require("../../decorators/component");
const components_1 = require("../components");
const meta_1 = require("../meta");
const comment_util_1 = require("./comment.util");
const post_util_1 = require("./post.util");
const term_util_1 = require("./term.util");
const user_util_1 = require("./user.util");
let MetaUtil = class MetaUtil {
components;
constructor(components) {
this.components = components;
}
get(table, id) {
return this.components.get(meta_1.Meta, [table, id]);
}
async getValue(table, id, key) {
return await this.get(table, id).get(key);
}
// https://github.com/WordPress/WordPress/blob/master/wp-includes/meta.php
// is_protected_meta
isProtected(metaKey,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
metaType) {
const sanitizedKey = metaKey.replace(/[^\x20-\x7E\p{L}]/gu, "");
const protectedKey = sanitizedKey.length > 0 && sanitizedKey[0] === "_";
// @todo: add hook
return protectedKey;
}
async getObjectSubtype(type, id) {
let subType = undefined;
switch (type) {
case "post":
const postUtil = this.components.get(post_util_1.PostUtil);
const post = await postUtil.get(id);
subType = post.props?.post_type;
break;
case "term":
const termUtil = this.components.get(term_util_1.TermUtil);
const term = await termUtil.get(id);
subType = term.props?.taxonomy;
break;
case "comment":
const commentUtil = this.components.get(comment_util_1.CommentUtil);
const comment = await commentUtil.get(id);
subType = comment.props?.comment_ID ? "comment" : undefined;
break;
case "user":
const userUtil = this.components.get(user_util_1.UserUtil);
const user = await userUtil.get(id);
subType = user.props?.ID ? "user" : undefined;
break;
}
return subType;
}
};
exports.MetaUtil = MetaUtil;
exports.MetaUtil = MetaUtil = __decorate([
(0, component_1.component)(),
__metadata("design:paramtypes", [components_1.Components])
], MetaUtil);