| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 var __create = Object.create; 2 var __defProp = Object.defineProperty; 3 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 4 var __getOwnPropNames = Object.getOwnPropertyNames; 5 var __getProtoOf = Object.getPrototypeOf; 6 var __hasOwnProp = Object.prototype.hasOwnProperty; 7 var __commonJS = (cb, mod) => function __require() { 8 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 9 }; 10 var __copyProps = (to, from, except, desc) => { 11 if (from && typeof from === "object" || typeof from === "function") { 12 for (let key of __getOwnPropNames(from)) 13 if (!__hasOwnProp.call(to, key) && key !== except) 14 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 15 } 16 return to; 17 }; 18 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 19 // If the importer is in node compatibility mode or this is not an ESM 20 // file that has been converted to a CommonJS file using a Babel- 21 // compatible transform (i.e. "__esModule" has not been set), then set 22 // "default" to the CommonJS "module.exports" for node compatibility. 23 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 24 mod 25 )); 26 27 // package-external:@wordpress/api-fetch 28 var require_api_fetch = __commonJS({ 29 "package-external:@wordpress/api-fetch"(exports, module) { 30 module.exports = window.wp.apiFetch; 31 } 32 }); 33 34 // package-external:@wordpress/url 35 var require_url = __commonJS({ 36 "package-external:@wordpress/url"(exports, module) { 37 module.exports = window.wp.url; 38 } 39 }); 40 41 // packages/core-abilities/build-module/index.js 42 var import_api_fetch = __toESM(require_api_fetch()); 43 var import_url = __toESM(require_url()); 44 import { registerAbility, registerAbilityCategory } from "@wordpress/abilities"; 45 var API_BASE = "/wp-abilities/v1"; 46 var ABILITIES_ENDPOINT = `$API_BASE}/abilities`; 47 var CATEGORIES_ENDPOINT = `$API_BASE}/categories`; 48 function createServerCallback(ability) { 49 return async (input) => { 50 let method = "POST"; 51 if (!!ability.meta?.annotations?.readonly) { 52 method = "GET"; 53 } else if (!!ability.meta?.annotations?.destructive && !!ability.meta?.annotations?.idempotent) { 54 method = "DELETE"; 55 } 56 let path = `$ABILITIES_ENDPOINT}/$ability.name}/run`; 57 const options = { 58 method 59 }; 60 if (["GET", "DELETE"].includes(method) && input !== null && input !== void 0) { 61 path = (0, import_url.addQueryArgs)(path, { input }); 62 } else if (method === "POST" && input !== null && input !== void 0) { 63 options.data = { input }; 64 } 65 return (0, import_api_fetch.default)({ 66 path, 67 ...options 68 }); 69 }; 70 } 71 async function initializeCategories() { 72 try { 73 const categories = await (0, import_api_fetch.default)({ 74 path: (0, import_url.addQueryArgs)(CATEGORIES_ENDPOINT, { 75 per_page: -1, 76 context: "edit" 77 }) 78 }); 79 if (categories && Array.isArray(categories)) { 80 for (const category of categories) { 81 registerAbilityCategory(category.slug, { 82 label: category.label, 83 description: category.description, 84 meta: { 85 annotations: { serverRegistered: true } 86 } 87 }); 88 } 89 } 90 } catch (error) { 91 console.error("Failed to fetch ability categories:", error); 92 } 93 } 94 async function initializeAbilities() { 95 try { 96 const abilities = await (0, import_api_fetch.default)({ 97 path: (0, import_url.addQueryArgs)(ABILITIES_ENDPOINT, { 98 per_page: -1, 99 context: "edit" 100 }) 101 }); 102 if (abilities && Array.isArray(abilities)) { 103 for (const ability of abilities) { 104 registerAbility({ 105 ...ability, 106 callback: createServerCallback(ability), 107 meta: { 108 annotations: { 109 ...ability.meta?.annotations, 110 serverRegistered: true 111 } 112 } 113 }); 114 } 115 } 116 } catch (error) { 117 console.error("Failed to fetch abilities:", error); 118 } 119 } 120 async function initialize() { 121 await initializeCategories(); 122 await initializeAbilities(); 123 } 124 initialize();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Thu Apr 16 08:20:10 2026 | Cross-referenced by PHPXref |