History

refactor(shared): remove unused runtime helpers and exports (#10166)

Julius Marminge committed 2 months ago

Commit 0671e341 parent d0f855b13 files · +16 −93Browse files

Unified · Split

13 files
  1. apps/web/src/sourceControlPresentation.ts +0 −2
  2. packages/shared/src/Net.ts +1 −0
  3. packages/shared/src/agentAwareness.ts +1 −1
  4. packages/shared/src/composerTrigger.ts +0 −12
  5. packages/shared/src/httpReadiness.ts +1 −1
  6. packages/shared/src/model.ts +2 −7
  7. packages/shared/src/observability.ts +1 −1
  8. packages/shared/src/orchestrationTiming.ts +1 −1
  9. packages/shared/src/relayClient.ts +1 −1
  10. packages/shared/src/schemaJson.ts +2 −2
  11. packages/shared/src/schemaYaml.ts +4 −52
  12. packages/shared/src/sourceControl.ts +1 −12
  13. packages/shared/src/usageLimits.ts +1 −1
apps/web/src/sourceControlPresentation.ts+0−2
@@ -3,8 +3,6 @@ import type { ElementType } from "react"; · 2 unmodified lines
3import type { SourceControlProviderInfo, SourceControlProviderKind } from "@t3tools/contracts";3import type { SourceControlProviderInfo, SourceControlProviderKind } from "@t3tools/contracts";
4export {4export {
5 DEFAULT_CHANGE_REQUEST_TERMINOLOGY,5 DEFAULT_CHANGE_REQUEST_TERMINOLOGY,
6 formatChangeRequestAction,
7 formatCreateChangeRequestPhrase,
8 getChangeRequestTerminology,6 getChangeRequestTerminology,
9 resolveChangeRequestPresentation,7 resolveChangeRequestPresentation,
10 type ChangeRequestPresentation,8 type ChangeRequestPresentation,
packages/shared/src/Net.ts+1−0
@@ -63,6 +63,7 @@ export class NetService extends Context.Service<NetService, NetServiceShape>()( · 62 unmodified lines
63 "@t3tools/shared/Net/NetService",63 "@t3tools/shared/Net/NetService",
64) {}64) {}
65 65
66/** @public Service construction is part of the canonical Effect module API. */
66export const make = () => {67export const make = () => {
67 /**68 /**
68 * Returns true when a TCP server can bind to {host, port}.69 * Returns true when a TCP server can bind to {host, port}.
packages/shared/src/agentAwareness.ts+1−1
@@ -43,7 +43,7 @@ export interface ProjectThreadAwarenessInput { · 42 unmodified lines
43 >;43 >;
44}44}
45 45
46export function buildAgentAwarenessDeepLink(input: {46function buildAgentAwarenessDeepLink(input: {
47 readonly environmentId: EnvironmentId;47 readonly environmentId: EnvironmentId;
48 readonly threadId: ThreadId;48 readonly threadId: ThreadId;
49}): string {49}): string {
packages/shared/src/composerTrigger.ts+0−12
@@ -115,18 +115,6 @@ export function detectComposerTrigger( · 114 unmodified lines
115 };115 };
116}116}
117 117
118export function parseStandaloneComposerSlashCommand(
119 text: string,
120): Exclude<ComposerSlashCommand, "model"> | null {
121 const match = /^\/(plan|default)\s*$/i.exec(text.trim());
122 if (!match) {
123 return null;
124 }
125 const command = match[1]?.toLowerCase();
126 if (command === "plan") return "plan";
127 return "default";
128}
129
130export function replaceTextRange(118export function replaceTextRange(
131 text: string,119 text: string,
132 rangeStart: number,120 rangeStart: number,
packages/shared/src/httpReadiness.ts+1−1
@@ -5,7 +5,7 @@ import * as Ref from "effect/Ref"; · 4 unmodified lines
5import * as Schedule from "effect/Schedule";5import * as Schedule from "effect/Schedule";
6import { HttpClient, HttpClientRequest } from "effect/unstable/http";6import { HttpClient, HttpClientRequest } from "effect/unstable/http";
7 7
8export const DEFAULT_HTTP_READY_PROBE_TIMEOUT_MS = 1_000;8const DEFAULT_HTTP_READY_PROBE_TIMEOUT_MS = 1_000;
9 9
10/**10/**
11 * Normalizes an arbitrary readiness probe failure into a plain, structured value11 * Normalizes an arbitrary readiness probe failure into a plain, structured value
packages/shared/src/model.ts+2−7
@@ -35,7 +35,7 @@ function getRawSelectionValueById( · 34 unmodified lines
35 return selection?.value;35 return selection?.value;
36}36}
37 37
38export function getProviderOptionSelectionValue(38function getProviderOptionSelectionValue(
39 selections: ReadonlyArray<ProviderOptionSelection> | null | undefined,39 selections: ReadonlyArray<ProviderOptionSelection> | null | undefined,
40 id: string,40 id: string,
41): string | boolean | undefined {41): string | boolean | undefined {
@@ -298,11 +298,6 @@ export function readCustomModelEntries(value: unknown): CustomModelDefinition[] · 256 unmodified lines
298 return entries;298 return entries;
299}299}
300 300
301/** Slugs of a `customModels` setting, in stored order. */
302export function readCustomModelSlugs(value: unknown): string[] {
303 return readCustomModelEntries(value).map((entry) => entry.slug);
304}
305
306/**301/**
307 * Write a definition back to the compact stored shape: a bare slug when it302 * Write a definition back to the compact stored shape: a bare slug when it
308 * carries nothing custom, otherwise an entry with only the set fields.303 * carries nothing custom, otherwise an entry with only the set fields.
@@ -361,7 +356,7 @@ export function resolveSelectableModel( · 52 unmodified lines
361}356}
362 357
363/** Trim a string, returning null for empty/missing values. */358/** Trim a string, returning null for empty/missing values. */
364export function trimOrNull<T extends string>(value: T | null | undefined): T | null {359function trimOrNull<T extends string>(value: T | null | undefined): T | null {
365 if (typeof value !== "string") return null;360 if (typeof value !== "string") return null;
366 const trimmed = value.trim() as T;361 const trimmed = value.trim() as T;
367 return trimmed || null;362 return trimmed || null;
packages/shared/src/observability.ts+1−1
@@ -303,7 +303,7 @@ export function truncateTraceAttributes(attributes: TraceAttributes): TraceAttri · 302 unmodified lines
303 return truncated ?? attributes;303 return truncated ?? attributes;
304}304}
305 305
306export function spanToTraceRecord(span: SerializableSpan): EffectTraceRecord {306function spanToTraceRecord(span: SerializableSpan): EffectTraceRecord {
307 const status = span.status as Extract<Tracer.SpanStatus, { _tag: "Ended" }>;307 const status = span.status as Extract<Tracer.SpanStatus, { _tag: "Ended" }>;
308 const parentSpanId = Option.getOrUndefined(span.parent)?.spanId;308 const parentSpanId = Option.getOrUndefined(span.parent)?.spanId;
309 309
packages/shared/src/orchestrationTiming.ts+1−1
@@ -28,7 +28,7 @@ export function formatDuration(durationMs: number): string { · 27 unmodified lines
28 return parts.join(" ");28 return parts.join(" ");
29}29}
30 30
31export function isLatestTurnSettled(31function isLatestTurnSettled(
32 latestTurn: LatestTurnTiming | null,32 latestTurn: LatestTurnTiming | null,
33 session: SessionActivityState | null,33 session: SessionActivityState | null,
34): boolean {34): boolean {
packages/shared/src/relayClient.ts+1−1
@@ -20,7 +20,7 @@ import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; · 19 unmodified lines
20import { HostProcessArchitecture, HostProcessPlatform } from "./hostProcess.ts";20import { HostProcessArchitecture, HostProcessPlatform } from "./hostProcess.ts";
21 21
22export const CLOUDFLARED_VERSION = "2026.5.2";22export const CLOUDFLARED_VERSION = "2026.5.2";
23export const CLOUDFLARED_PATH_ENV_NAME = "T3CODE_CLOUDFLARED_PATH";23const CLOUDFLARED_PATH_ENV_NAME = "T3CODE_CLOUDFLARED_PATH";
24 24
25export type RelayClientExecutableSource = "override" | "managed" | "path";25export type RelayClientExecutableSource = "override" | "managed" | "path";
26 26
packages/shared/src/schemaJson.ts+2−2
@@ -199,12 +199,12 @@ const parseLenientJsonGetter = SchemaGetter.onSome((input: string) => { · 198 unmodified lines
199 * strips trailing commas and JS-style comments before parsing.199 * strips trailing commas and JS-style comments before parsing.
200 * Encoding produces strict JSON via `JSON.stringify`.200 * Encoding produces strict JSON via `JSON.stringify`.
201 */201 */
202export const fromLenientJsonString = new SchemaTransformation.Transformation(202const fromLenientJsonString = new SchemaTransformation.Transformation(
203 parseLenientJsonGetter,203 parseLenientJsonGetter,
204 SchemaGetter.stringifyJson(),204 SchemaGetter.stringifyJson(),
205);205);
206 206
207export const prettyJsonString = SchemaGetter.parseJson<string>().compose(207const prettyJsonString = SchemaGetter.parseJson<string>().compose(
208 SchemaGetter.stringifyJson({ space: 2 }),208 SchemaGetter.stringifyJson({ space: 2 }),
209);209);
210 210
packages/shared/src/schemaYaml.ts+4−52
@@ -32,32 +32,8 @@ function formatYamlParseError(error: unknown): string { · 31 unmodified lines
32 return `Invalid YAML (code=${error.code}${location}).`;32 return `Invalid YAML (code=${error.code}${location}).`;
33}33}
34 34
35/**35/** Parses YAML during decoding, reporting parse failures as InvalidValue issues. */
36 * Parses a YAML string into a value.36function parseYaml<E extends string>(options?: YamlParseOptions): SchemaGetter.Getter<unknown, E> {
37 *
38 * **When to use**
39 *
40 * Use when you need a schema getter to parse a present encoded YAML string
41 * during decoding.
42 *
43 * **Details**
44 *
45 * Parse failures become `SchemaIssue.InvalidValue` values.
46 *
47 * **Example** (Parse YAML)
48 *
49 * ```ts
50 * import { parseYaml } from "@t3tools/shared/schemaYaml"
51 *
52 * const parse = parseYaml<string>()
53 * // Getter<unknown, string>
54 * ```
55 *
56 * @see {@link stringifyYaml} for the inverse operation
57 */
58export function parseYaml<E extends string>(
59 options?: YamlParseOptions,
60): SchemaGetter.Getter<unknown, E> {
61 return SchemaGetter.transformOrFail((input: E) =>37 return SchemaGetter.transformOrFail((input: E) =>
62 Effect.try({38 Effect.try({
63 try: () => parseYamlString(input, options) as unknown,39 try: () => parseYamlString(input, options) as unknown,
@@ -66,32 +42,8 @@ export function parseYaml<E extends string>( · 2 unmodified lines
66 );42 );
67}43}
68 44
69/**45/** Serializes YAML during encoding, reporting stringify failures as InvalidValue issues. */
70 * Stringifies a present value as YAML.46function stringifyYaml(options?: YamlStringifyOptions): SchemaGetter.Getter<string, unknown> {
71 *
72 * **When to use**
73 *
74 * Use when you need a schema getter to serialize a present decoded value to
75 * YAML text during encoding.
76 *
77 * **Details**
78 *
79 * Stringify failures become `SchemaIssue.InvalidValue` values.
80 *
81 * **Example** (Stringify YAML)
82 *
83 * ```ts
84 * import { stringifyYaml } from "@t3tools/shared/schemaYaml"
85 *
86 * const stringify = stringifyYaml()
87 * // Getter<string, unknown>
88 * ```
89 *
90 * @see {@link parseYaml} for the inverse operation
91 */
92export function stringifyYaml(
93 options?: YamlStringifyOptions,
94): SchemaGetter.Getter<string, unknown> {
95 return SchemaGetter.transformOrFail((input: unknown) =>47 return SchemaGetter.transformOrFail((input: unknown) =>
96 Effect.try({48 Effect.try({
97 try: () => stringifyYamlValue(input, options),49 try: () => stringifyYamlValue(input, options),
packages/shared/src/sourceControl.ts+1−12
@@ -92,23 +92,12 @@ export function resolveChangeRequestPresentation( · 91 unmodified lines
92 }92 }
93}93}
94 94
95export function resolveChangeRequestPresentationForKind(95function resolveChangeRequestPresentationForKind(
96 kind: SourceControlProviderKind,96 kind: SourceControlProviderKind,
97): ChangeRequestPresentation {97): ChangeRequestPresentation {
98 return resolveChangeRequestPresentation({ kind, name: "", baseUrl: "" });98 return resolveChangeRequestPresentation({ kind, name: "", baseUrl: "" });
99}99}
100 100
101export function formatChangeRequestAction(
102 verb: "View" | "Create",
103 presentation: ChangeRequestPresentation,
104): string {
105 return `${verb} ${presentation.shortName}`;
106}
107
108export function formatCreateChangeRequestPhrase(presentation: ChangeRequestPresentation): string {
109 return `create ${presentation.shortName}`;
110}
111
112export function getChangeRequestTerminology(101export function getChangeRequestTerminology(
113 provider: SourceControlProviderInfo | null | undefined,102 provider: SourceControlProviderInfo | null | undefined,
114): ChangeRequestTerminology {103): ChangeRequestTerminology {
packages/shared/src/usageLimits.ts+1−1
@@ -161,7 +161,7 @@ export function limitsNotice(limits: ServerProviderUsageLimits): string | null { · 160 unmodified lines
161 return limits.windows.length === 0 ? "No limits reported." : null;161 return limits.windows.length === 0 ? "No limits reported." : null;
162}162}
163 163
164export function resetMillis(window: ServerProviderUsageWindow): number | null {164function resetMillis(window: ServerProviderUsageWindow): number | null {
165 if (window.resetsAt === undefined) return null;165 if (window.resetsAt === undefined) return null;
166 const at = Date.parse(window.resetsAt);166 const at = Date.parse(window.resetsAt);
167 return Number.isFinite(at) ? at : null;167 return Number.isFinite(at) ? at : null;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t