Skip to content

Commit fd422ea

Browse files
committed
refactor: cleaner feature flag server module split
1 parent a8e2922 commit fd422ea

File tree

17 files changed

+109
-109
lines changed

17 files changed

+109
-109
lines changed

apps/webapp/app/components/admin/FeatureFlagsDialog.tsx

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ import {
1111
import { Button } from "~/components/primitives/Buttons";
1212
import { Callout } from "~/components/primitives/Callout";
1313
import { cn } from "~/utils/cn";
14-
import { FEATURE_FLAG } from "~/v3/featureFlags";
15-
import type { FlagControlType } from "~/v3/featureFlags.server";
14+
import { FEATURE_FLAG, type FlagControlType } from "~/v3/featureFlags";
1615
import { UNSET_VALUE, BooleanControl, EnumControl, StringControl } from "./FlagControls";
1716

1817
const HIDDEN_FLAGS = [FEATURE_FLAG.defaultWorkerInstanceGroupId];
@@ -126,8 +125,7 @@ export function FeatureFlagsDialog({
126125
const control = data.controlTypes[key];
127126
const isOverridden = key in overrides;
128127
const globalValue = data.globalFlags[key as keyof typeof data.globalFlags];
129-
const globalDisplay =
130-
globalValue !== undefined ? String(globalValue) : "unset";
128+
const globalDisplay = globalValue !== undefined ? String(globalValue) : "unset";
131129

132130
return (
133131
<div
@@ -215,24 +213,17 @@ export function FeatureFlagsDialog({
215213
</details>
216214
)}
217215

218-
{saveError && (
219-
<Callout variant="error">{saveError}</Callout>
220-
)}
216+
{saveError && <Callout variant="error">{saveError}</Callout>}
221217

222218
<DialogFooter>
223219
<Button variant="tertiary/small" onClick={() => onOpenChange(false)}>
224220
Cancel
225221
</Button>
226-
<Button
227-
variant="primary/small"
228-
onClick={handleSave}
229-
disabled={!isDirty || isSaving}
230-
>
222+
<Button variant="primary/small" onClick={handleSave} disabled={!isDirty || isSaving}>
231223
{isSaving ? "Saving..." : "Save changes"}
232224
</Button>
233225
</DialogFooter>
234226
</DialogContent>
235227
</Dialog>
236228
);
237229
}
238-

apps/webapp/app/presenters/OrganizationsPresenter.server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import {
1010
} from "./SelectBestEnvironmentPresenter.server";
1111
import { sortEnvironments } from "~/utils/environmentSort";
1212
import { defaultAvatar, parseAvatar } from "~/components/primitives/Avatar";
13-
import { flags, validatePartialFeatureFlags } from "~/v3/featureFlags.server";
13+
import { flags } from "~/v3/featureFlags.server";
14+
import { validatePartialFeatureFlags } from "~/v3/featureFlags";
1415

1516
export class OrganizationsPresenter {
1617
#prismaClient: PrismaClient;

apps/webapp/app/presenters/v3/RegionsPresenter.server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { type Project } from "~/models/project.server";
22
import { type User } from "~/models/user.server";
3-
import { FEATURE_FLAG, makeFlag } from "~/v3/featureFlags.server";
3+
import { FEATURE_FLAG } from "~/v3/featureFlags";
4+
import { makeFlag } from "~/v3/featureFlags.server";
45
import { BasePresenter } from "./basePresenter.server";
56
import { getCurrentPlan } from "~/services/platform.v3.server";
67

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.logs/route.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import {
3737
ResizablePanelGroup,
3838
} from "~/components/primitives/Resizable";
3939
import { Button } from "~/components/primitives/Buttons";
40-
import { FEATURE_FLAG, validateFeatureFlagValue } from "~/v3/featureFlags.server";
40+
import { FEATURE_FLAG, validateFeatureFlagValue } from "~/v3/featureFlags";
4141

4242
// Valid log levels for filtering
4343
const validLevels: LogLevel[] = ["TRACE", "DEBUG", "INFO", "WARN", "ERROR"];

apps/webapp/app/routes/admin.api.orgs.$orgId.feature-flags.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,8 @@ import { Prisma } from "@trigger.dev/database";
44
import { z } from "zod";
55
import { prisma } from "~/db.server";
66
import { requireUser } from "~/services/session.server";
7-
import {
8-
flags as getGlobalFlags,
9-
validatePartialFeatureFlags,
10-
getAllFlagControlTypes,
11-
} from "~/v3/featureFlags.server";
7+
import { flags as getGlobalFlags } from "~/v3/featureFlags.server";
8+
import { validatePartialFeatureFlags, getAllFlagControlTypes } from "~/v3/featureFlags";
129

1310
const ParamsSchema = z.object({
1411
orgId: z.string(),
@@ -75,7 +72,10 @@ export async function action({ request, params }: ActionFunctionArgs) {
7572

7673
let featureFlags: typeof Prisma.JsonNull | Record<string, unknown>;
7774

78-
if (body === null || (typeof body === "object" && !Array.isArray(body) && Object.keys(body).length === 0)) {
75+
if (
76+
body === null ||
77+
(typeof body === "object" && !Array.isArray(body) && Object.keys(body).length === 0)
78+
) {
7979
featureFlags = Prisma.JsonNull;
8080
} else {
8181
const validationResult = validatePartialFeatureFlags(body as Record<string, unknown>);

apps/webapp/app/routes/admin.api.v1.feature-flags.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { ActionFunctionArgs, json } from "@remix-run/server-runtime";
22
import { prisma } from "~/db.server";
33
import { authenticateApiRequestWithPersonalAccessToken } from "~/services/personalAccessToken.server";
4-
import { makeSetMultipleFlags, validatePartialFeatureFlags } from "~/v3/featureFlags.server";
4+
import { makeSetMultipleFlags } from "~/v3/featureFlags.server";
5+
import { validatePartialFeatureFlags } from "~/v3/featureFlags";
56

67
export async function action({ request }: ActionFunctionArgs) {
78
// Next authenticate the request

apps/webapp/app/routes/admin.api.v1.orgs.$organizationId.feature-flags.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { ActionFunctionArgs, LoaderFunctionArgs, json } from "@remix-run/server-
22
import { z } from "zod";
33
import { prisma } from "~/db.server";
44
import { authenticateApiRequestWithPersonalAccessToken } from "~/services/personalAccessToken.server";
5-
import { validatePartialFeatureFlags } from "~/v3/featureFlags.server";
5+
import { validatePartialFeatureFlags } from "~/v3/featureFlags";
66

77
const ParamsSchema = z.object({
88
organizationId: z.string(),

apps/webapp/app/routes/admin.feature-flags.tsx

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ import { redirect, typedjson, useTypedLoaderData } from "remix-typedjson";
77
import { z } from "zod";
88
import { prisma } from "~/db.server";
99
import { requireUser } from "~/services/session.server";
10-
import { FEATURE_FLAG } from "~/v3/featureFlags";
1110
import {
12-
flags as getGlobalFlags,
11+
FEATURE_FLAG,
12+
type FlagControlType,
1313
getAllFlagControlTypes,
1414
validatePartialFeatureFlags,
15-
} from "~/v3/featureFlags.server";
16-
import type { FlagControlType } from "~/v3/featureFlags.server";
15+
} from "~/v3/featureFlags";
16+
import { flags as getGlobalFlags } from "~/v3/featureFlags.server";
1717
import { Button } from "~/components/primitives/Buttons";
1818
import { Callout } from "~/components/primitives/Callout";
1919
import {
@@ -157,9 +157,7 @@ export default function AdminFeatureFlagsRoute() {
157157
});
158158
};
159159

160-
const workerGroupMap = new Map(
161-
(workerGroups as WorkerGroup[]).map((wg) => [wg.id, wg.name])
162-
);
160+
const workerGroupMap = new Map((workerGroups as WorkerGroup[]).map((wg) => [wg.id, wg.name]));
163161

164162
const resolveWorkerGroupDisplay = (id: string) => {
165163
const name = workerGroupMap.get(id);
@@ -172,8 +170,8 @@ export default function AdminFeatureFlagsRoute() {
172170
<main className="flex h-full min-w-0 flex-1 flex-col overflow-y-auto px-4 pb-4 lg:order-last">
173171
<div className="max-w-2xl space-y-4">
174172
<p className="text-sm text-text-dimmed">
175-
Global defaults for all organizations. Org-level overrides take precedence.
176-
When not set, each consumer uses its own default.
173+
Global defaults for all organizations. Org-level overrides take precedence. When not set,
174+
each consumer uses its own default.
177175
</p>
178176

179177
<div className="flex flex-col gap-1.5">
@@ -283,10 +281,7 @@ export default function AdminFeatureFlagsRoute() {
283281

284282
<div className="flex justify-end gap-2">
285283
{isDirty && (
286-
<Button
287-
variant="tertiary/small"
288-
onClick={() => setValues({ ...initialValues })}
289-
>
284+
<Button variant="tertiary/small" onClick={() => setValues({ ...initialValues })}>
290285
Discard
291286
</Button>
292287
)}

apps/webapp/app/routes/resources.orgs.$organizationSlug.can-view-logs-page/route.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { type LoaderFunctionArgs } from "@remix-run/server-runtime";
22
import { typedjson } from "remix-typedjson";
33
import { requireUser } from "~/services/session.server";
44
import { prisma } from "~/db.server";
5-
import { FEATURE_FLAG, validateFeatureFlagValue } from "~/v3/featureFlags.server";
5+
import { FEATURE_FLAG, validateFeatureFlagValue } from "~/v3/featureFlags";
66
import { OrganizationParamsSchema } from "~/utils/pathBuilder";
77

88
async function hasLogsPageAccess(

apps/webapp/app/services/runsRepository/runsRepository.server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import parseDuration from "parse-duration";
88
import { z } from "zod";
99
import { timeFilters } from "~/components/runs/v3/SharedFilters";
1010
import { type PrismaClient, type PrismaClientOrTransaction } from "~/db.server";
11-
import { FEATURE_FLAG, makeFlag } from "~/v3/featureFlags.server";
11+
import { FEATURE_FLAG } from "~/v3/featureFlags";
12+
import { makeFlag } from "~/v3/featureFlags.server";
1213
import { startActiveSpan } from "~/v3/tracer.server";
1314
import { logger } from "../logger.server";
1415
import { ClickHouseRunsRepository } from "./clickhouseRunsRepository.server";

0 commit comments

Comments
 (0)