better-auth-feature-flags
Version:
Ship features safely with feature flags, A/B testing, and progressive rollouts - Better Auth plugin for modern release management
99 lines (97 loc) • 5.45 kB
JavaScript
import {
__name
} from "./chunk-SHUYVCID.js";
// src/client-admin.ts
function featureFlagsAdminClient() {
return {
id: "feature-flags-admin-client",
// HTTP methods for route inference/devtools
pathMethods: {
"/feature-flags/admin/flags": "GET",
"/feature-flags/admin/flags/:id": "GET",
"/feature-flags/admin/flags/:id/enable": "POST",
"/feature-flags/admin/flags/:id/disable": "POST",
"/feature-flags/admin/flags/:flagId/rules": "GET",
"/feature-flags/admin/flags/:flagId/rules/:ruleId": "GET",
"/feature-flags/admin/flags/:flagId/rules/reorder": "POST",
"/feature-flags/admin/flags/:flagId/stats": "GET",
"/feature-flags/admin/overrides": "GET",
"/feature-flags/admin/overrides/:id": "GET",
"/feature-flags/admin/metrics/usage": "GET",
"/feature-flags/admin/audit": "GET",
"/feature-flags/admin/audit/:id": "GET",
"/feature-flags/admin/environments": "GET",
"/feature-flags/admin/environments/:id": "GET",
"/feature-flags/admin/export": "POST"
},
getAtoms: /* @__PURE__ */ __name(() => ({}), "getAtoms"),
getActions(fetch) {
const get = /* @__PURE__ */ __name((path, query) => fetch(path, { method: "GET", query }), "get");
const post = /* @__PURE__ */ __name((path, body) => fetch(path, { method: "POST", body }), "post");
const patch = /* @__PURE__ */ __name((path, body) => fetch(path, { method: "PATCH", body }), "patch");
const del = /* @__PURE__ */ __name((path) => fetch(path, { method: "DELETE" }), "del");
return {
featureFlags: {
admin: {
flags: {
list: /* @__PURE__ */ __name((query) => get("/feature-flags/admin/flags", query), "list"),
create: /* @__PURE__ */ __name((data) => post("/feature-flags/admin/flags", data), "create"),
get: /* @__PURE__ */ __name((id) => get(`/feature-flags/admin/flags/${id}`), "get"),
update: /* @__PURE__ */ __name((id, updates) => patch(`/feature-flags/admin/flags/${id}`, updates), "update"),
delete: /* @__PURE__ */ __name((id) => del(`/feature-flags/admin/flags/${id}`), "delete"),
enable: /* @__PURE__ */ __name((id) => post(`/feature-flags/admin/flags/${id}/enable`), "enable"),
disable: /* @__PURE__ */ __name((id) => post(`/feature-flags/admin/flags/${id}/disable`), "disable")
},
rules: {
list: /* @__PURE__ */ __name((flagId) => get(`/feature-flags/admin/flags/${flagId}/rules`), "list"),
create: /* @__PURE__ */ __name((flagId, data) => post(`/feature-flags/admin/flags/${flagId}/rules`, data), "create"),
get: /* @__PURE__ */ __name((flagId, ruleId) => get(`/feature-flags/admin/flags/${flagId}/rules/${ruleId}`), "get"),
update: /* @__PURE__ */ __name((flagId, ruleId, updates) => patch(
`/feature-flags/admin/flags/${flagId}/rules/${ruleId}`,
updates
), "update"),
delete: /* @__PURE__ */ __name((flagId, ruleId) => del(`/feature-flags/admin/flags/${flagId}/rules/${ruleId}`), "delete"),
reorder: /* @__PURE__ */ __name((flagId, ids) => post(`/feature-flags/admin/flags/${flagId}/rules/reorder`, {
ids
}), "reorder")
},
overrides: {
list: /* @__PURE__ */ __name((query) => get("/feature-flags/admin/overrides", query), "list"),
create: /* @__PURE__ */ __name((data) => post("/feature-flags/admin/overrides", data), "create"),
get: /* @__PURE__ */ __name((id) => get(`/feature-flags/admin/overrides/${id}`), "get"),
update: /* @__PURE__ */ __name((id, updates) => patch(`/feature-flags/admin/overrides/${id}`, updates), "update"),
delete: /* @__PURE__ */ __name((id) => del(`/feature-flags/admin/overrides/${id}`), "delete")
},
analytics: {
stats: {
get: /* @__PURE__ */ __name((flagId, query) => get(`/feature-flags/admin/flags/${flagId}/stats`, query), "get")
},
usage: {
get: /* @__PURE__ */ __name((query) => get("/feature-flags/admin/metrics/usage", query), "get")
}
},
audit: {
list: /* @__PURE__ */ __name((query) => get("/feature-flags/admin/audit", query), "list"),
get: /* @__PURE__ */ __name((id) => get(`/feature-flags/admin/audit/${id}`), "get")
},
environments: {
list: /* @__PURE__ */ __name((query) => get("/feature-flags/admin/environments", query), "list"),
create: /* @__PURE__ */ __name((data) => post("/feature-flags/admin/environments", data), "create"),
update: /* @__PURE__ */ __name((id, updates) => patch(`/feature-flags/admin/environments/${id}`, updates), "update"),
delete: /* @__PURE__ */ __name((id) => del(`/feature-flags/admin/environments/${id}`), "delete")
},
exports: {
create: /* @__PURE__ */ __name((data) => post("/feature-flags/admin/export", data), "create")
}
}
}
};
}
};
}
__name(featureFlagsAdminClient, "featureFlagsAdminClient");
var client_admin_default = featureFlagsAdminClient;
export {
client_admin_default as default,
featureFlagsAdminClient
};