Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions apps/i15-1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@ To run this locally:
- If you want to test against mocked behaviour run `turbo dev --filter @atlas/i15-1`
1. Navigate to http://localhost:5173/

## Updating Queue Types

You can generate types from the queue API automatically using the following command:

`pnpm --filter i15-1 generate:queue`

This will generate from main on GitHub, to target a branch, use:

`npx @hey-api/openapi-ts -i https://raw.githubusercontent.com/DiamondLightSource/daq-queuing-service/{BRANCH_NAME}/docs/reference/rest_api.json -o /workspaces/atlas/apps/i15-1/generated/queue`

## Updating Supergraph Schema Types

1. Navigate to app containing folder (i.e. `.../atlas/apps/i15-1`)
Expand Down
29 changes: 18 additions & 11 deletions apps/i15-1/generated/queue/core/params.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,32 +88,39 @@ function buildKeyMap(fields: FieldsConfig, map?: KeyMap): KeyMap {
}

interface Params {
body: unknown;
body?: unknown;
headers: Record<string, unknown>;
path: Record<string, unknown>;
query: Record<string, unknown>;
}

type ParamsSlotMap = Record<Slot, unknown>;

function stripEmptySlots(params: ParamsSlotMap): void {
function stripEmptySlots(params: Params): void {
for (const [slot, value] of Object.entries(params)) {
if (slot === 'body') continue;
if (value && typeof value === 'object' && !Array.isArray(value) && !Object.keys(value).length) {
delete params[slot as Slot];
}
}
}

export function buildClientParams(args: ReadonlyArray<unknown>, fields: FieldsConfig): Params {
const params: ParamsSlotMap = {
body: Object.create(null),
const params: Params = {
headers: Object.create(null),
path: Object.create(null),
query: Object.create(null),
};

const map = buildKeyMap(fields);

function writeSlot(slot: Slot, key: string, value: unknown): void {
let record = params[slot] as Record<string, unknown> | undefined;
if (record === undefined) {
record = Object.create(null) as Record<string, unknown>;
params[slot] = record;
}
record[key] = value;
}

let config: FieldsConfig[number] | undefined;

for (const [index, arg] of args.entries()) {
Expand All @@ -130,7 +137,7 @@ export function buildClientParams(args: ReadonlyArray<unknown>, fields: FieldsCo
const field = map.get(config.key)!;
const name = field.map || config.key;
if (field.in) {
(params[field.in] as Record<string, unknown>)[name] = arg;
writeSlot(field.in, name, arg);
}
} else {
params.body = arg;
Expand All @@ -142,7 +149,7 @@ export function buildClientParams(args: ReadonlyArray<unknown>, fields: FieldsCo
if (field) {
if (field.in) {
const name = field.map || key;
(params[field.in] as Record<string, unknown>)[name] = value;
writeSlot(field.in, name, value);
} else {
params[field.map] = value;
}
Expand All @@ -151,11 +158,11 @@ export function buildClientParams(args: ReadonlyArray<unknown>, fields: FieldsCo

if (extra) {
const [prefix, slot] = extra;
(params[slot] as Record<string, unknown>)[key.slice(prefix.length)] = value;
writeSlot(slot, key.slice(prefix.length), value);
} else if ('allowExtra' in config && config.allowExtra) {
for (const [slot, allowed] of Object.entries(config.allowExtra)) {
if (allowed) {
(params[slot as Slot] as Record<string, unknown>)[key] = value;
writeSlot(slot as Slot, key, value);
break;
}
}
Expand All @@ -167,5 +174,5 @@ export function buildClientParams(args: ReadonlyArray<unknown>, fields: FieldsCo

stripEmptySlots(params);

return params as Params;
return params;
}
2 changes: 1 addition & 1 deletion apps/i15-1/generated/queue/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// This file is auto-generated by @hey-api/openapi-ts

export { addTasksToQueueQueuePost, cancelTasksQueueTasksDelete, clearHistoryHistoryDelete, getAllTasksTasksGet, getCallHistoryCallHistoryGet, getCallQueueCallQueueGet, getCompletedTasksHistoryGet, getConfigConfigGet, getQueuedTasksQueueGet, getQueueStateQueueStateGet, getTaskByIdTasksTaskIdGet, getTaskByPositionQueuePositionGet, healthzHealthzGet, moveTaskQueueMovePost, type Options, readRootGet, streamEventsEventsGet, updateQueueStateQueueStatePatch } from './sdk.gen';
export type { AddTasksToQueueQueuePostData, AddTasksToQueueQueuePostError, AddTasksToQueueQueuePostErrors, AddTasksToQueueQueuePostResponse, AddTasksToQueueQueuePostResponses, AppConfig, AppConfigWritable, ApplicationConfig, ApplicationConfigWritable, BasicAuthentication, BlueapiCallResponse, CallStatus, CancelTasksQueueTasksDeleteData, CancelTasksQueueTasksDeleteError, CancelTasksQueueTasksDeleteErrors, CancelTasksQueueTasksDeleteResponse, CancelTasksQueueTasksDeleteResponses, ClearHistoryHistoryDeleteData, ClearHistoryHistoryDeleteResponses, ClientOptions, CorsConfig, DeviceManagerSource, DeviceSource, DodalSource, EnvironmentConfig, ExperimentDefinition, GetAllTasksTasksGetData, GetAllTasksTasksGetError, GetAllTasksTasksGetErrors, GetAllTasksTasksGetResponse, GetAllTasksTasksGetResponses, GetCallHistoryCallHistoryGetData, GetCallHistoryCallHistoryGetResponse, GetCallHistoryCallHistoryGetResponses, GetCallQueueCallQueueGetData, GetCallQueueCallQueueGetResponse, GetCallQueueCallQueueGetResponses, GetCompletedTasksHistoryGetData, GetCompletedTasksHistoryGetError, GetCompletedTasksHistoryGetErrors, GetCompletedTasksHistoryGetResponse, GetCompletedTasksHistoryGetResponses, GetConfigConfigGetData, GetConfigConfigGetResponse, GetConfigConfigGetResponses, GetQueuedTasksQueueGetData, GetQueuedTasksQueueGetError, GetQueuedTasksQueueGetErrors, GetQueuedTasksQueueGetResponse, GetQueuedTasksQueueGetResponses, GetQueueStateQueueStateGetData, GetQueueStateQueueStateGetResponse, GetQueueStateQueueStateGetResponses, GetTaskByIdTasksTaskIdGetData, GetTaskByIdTasksTaskIdGetError, GetTaskByIdTasksTaskIdGetErrors, GetTaskByIdTasksTaskIdGetResponse, GetTaskByIdTasksTaskIdGetResponses, GetTaskByPositionQueuePositionGetData, GetTaskByPositionQueuePositionGetError, GetTaskByPositionQueuePositionGetErrors, GetTaskByPositionQueuePositionGetResponse, GetTaskByPositionQueuePositionGetResponses, GraylogConfig, HealthzHealthzGetData, HealthzHealthzGetResponses, HttpValidationError, LoggingConfig, MetadataConfig, MoveTaskQueueMovePostData, MoveTaskQueueMovePostError, MoveTaskQueueMovePostErrors, MoveTaskQueueMovePostResponse, MoveTaskQueueMovePostResponses, NumtrackerConfig, OidcConfig, PlanSource, QueueState, QueueStateUpdate, ReadRootGetData, ReadRootGetResponses, RestConfig, ScratchConfig, ScratchRepository, ServiceAccount, ServiceAccountWritable, Status, StompConfig, StreamEventsEventsGetData, StreamEventsEventsGetResponses, TaskCancelRequest, TaskError, TaskRequest, TaskResult, TaskWithPosition, TiledConfig, TiledConfigWritable, UpdateQueueStateQueueStatePatchData, UpdateQueueStateQueueStatePatchError, UpdateQueueStateQueueStatePatchErrors, UpdateQueueStateQueueStatePatchResponse, UpdateQueueStateQueueStatePatchResponses, ValidationError, WorkerEventConfig } from './types.gen';
export type { AddTasksToQueueQueuePostData, AddTasksToQueueQueuePostError, AddTasksToQueueQueuePostErrors, AddTasksToQueueQueuePostResponse, AddTasksToQueueQueuePostResponses, AppConfig, AppConfigWritable, ApplicationConfig, ApplicationConfigWritable, BasicAuthentication, BlueapiCallResponse, CallStatus, CancelTasksQueueTasksDeleteData, CancelTasksQueueTasksDeleteError, CancelTasksQueueTasksDeleteErrors, CancelTasksQueueTasksDeleteResponse, CancelTasksQueueTasksDeleteResponses, ClearHistoryHistoryDeleteData, ClearHistoryHistoryDeleteResponses, ClientOptions, ConverterConfig, CorsConfig, DeviceManagerSource, DeviceSource, DodalSource, EnvironmentConfig, Experiment, ExperimentDefinition, GetAllTasksTasksGetData, GetAllTasksTasksGetError, GetAllTasksTasksGetErrors, GetAllTasksTasksGetResponse, GetAllTasksTasksGetResponses, GetCallHistoryCallHistoryGetData, GetCallHistoryCallHistoryGetResponse, GetCallHistoryCallHistoryGetResponses, GetCallQueueCallQueueGetData, GetCallQueueCallQueueGetResponse, GetCallQueueCallQueueGetResponses, GetCompletedTasksHistoryGetData, GetCompletedTasksHistoryGetError, GetCompletedTasksHistoryGetErrors, GetCompletedTasksHistoryGetResponse, GetCompletedTasksHistoryGetResponses, GetConfigConfigGetData, GetConfigConfigGetResponse, GetConfigConfigGetResponses, GetQueuedTasksQueueGetData, GetQueuedTasksQueueGetError, GetQueuedTasksQueueGetErrors, GetQueuedTasksQueueGetResponse, GetQueuedTasksQueueGetResponses, GetQueueStateQueueStateGetData, GetQueueStateQueueStateGetResponse, GetQueueStateQueueStateGetResponses, GetTaskByIdTasksTaskIdGetData, GetTaskByIdTasksTaskIdGetError, GetTaskByIdTasksTaskIdGetErrors, GetTaskByIdTasksTaskIdGetResponse, GetTaskByIdTasksTaskIdGetResponses, GetTaskByPositionQueuePositionGetData, GetTaskByPositionQueuePositionGetError, GetTaskByPositionQueuePositionGetErrors, GetTaskByPositionQueuePositionGetResponse, GetTaskByPositionQueuePositionGetResponses, GraylogConfig, HealthzHealthzGetData, HealthzHealthzGetResponses, HttpValidationError, LoggingConfig, MetadataConfig, MoveTaskQueueMovePostData, MoveTaskQueueMovePostError, MoveTaskQueueMovePostErrors, MoveTaskQueueMovePostResponse, MoveTaskQueueMovePostResponses, NumtrackerConfig, OidcConfig, PlanSource, QueueState, QueueStateUpdate, ReadRootGetData, ReadRootGetResponses, RestConfig, Sample, ScratchConfig, ScratchRepository, ServiceAccount, ServiceAccountWritable, Status, StompConfig, StreamEventsEventsGetData, StreamEventsEventsGetResponses, TaskCancelRequest, TaskError, TaskKind, TaskRequest, TaskResult, TaskWithPosition, TiledConfig, TiledConfigWritable, UpdateQueueStateQueueStatePatchData, UpdateQueueStateQueueStatePatchError, UpdateQueueStateQueueStatePatchErrors, UpdateQueueStateQueueStatePatchResponse, UpdateQueueStateQueueStatePatchResponses, ValidationError, WorkerEventConfig } from './types.gen';
Loading
Loading