effect-mq 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,6 +33,7 @@
33
33
  */
34
34
  import type * as JobStore from "../JobStore.ts";
35
35
  import { type AnyPgColumnBuilder, type PgBuildExtraConfigColumns, type PgTableExtraConfigValue } from "drizzle-orm/pg-core";
36
+ type QueueName = JobStore.QueueName;
36
37
  /**
37
38
  * Table-factory options: `extraConfig` receives the table's columns (exactly
38
39
  * like drizzle's third `pgTable` argument) and returns additional indexes,
@@ -43,10 +44,10 @@ import { type AnyPgColumnBuilder, type PgBuildExtraConfigColumns, type PgTableEx
43
44
  export interface MqTableOptions<Columns extends Record<string, AnyPgColumnBuilder>> {
44
45
  readonly extraConfig?: ((table: PgBuildExtraConfigColumns<Columns>) => Array<PgTableExtraConfigValue>) | undefined;
45
46
  }
46
- declare const jobsColumns: <JobName extends string>() => {
47
+ declare const jobsColumns: <JobName extends string, Queue extends string>() => {
47
48
  id: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.JobId>;
48
49
  name: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobName>;
49
- queue: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.QueueName>;
50
+ queue: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, Queue>;
50
51
  state: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.JobState>;
51
52
  priority: import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>>;
52
53
  /** FIFO order within a priority; bumped on retry so retries go to the tail. */
@@ -74,6 +75,8 @@ declare const jobsColumns: <JobName extends string>() => {
74
75
  /**
75
76
  * The jobs table factory. `JobName` types the `name` column — derive it from
76
77
  * your job definitions: `mqJobs<typeof GenerateInvoice._tag | typeof Report._tag>()`.
78
+ * `Queue` types the `queue` column the same way — pass your own branded type
79
+ * or literal union (defaults to effect-mq's `QueueName` brand).
77
80
  *
78
81
  * `extend` adds your own columns (tenant ids, object ids, ...) to the table.
79
82
  * At enqueue the Postgres store fills each extended column from the job's
@@ -94,7 +97,7 @@ declare const jobsColumns: <JobName extends string>() => {
94
97
  *
95
98
  * @since 0.1.0
96
99
  */
97
- export declare const mqJobs: <JobName extends string = string, Extend extends Record<string, AnyPgColumnBuilder> = Record<never, never>>(tableName?: string, options?: MqTableOptions<ReturnType<typeof jobsColumns<JobName>> & Extend> & {
100
+ export declare const mqJobs: <JobName extends string = string, Queue extends string = QueueName, Extend extends Record<string, AnyPgColumnBuilder> = Record<never, never>>(tableName?: string, options?: MqTableOptions<ReturnType<typeof jobsColumns<JobName, Queue>> & Extend> & {
98
101
  /** Extra columns appended to the factory's own (see the JSDoc example). */
99
102
  readonly extend?: Extend | undefined;
100
103
  }) => import("drizzle-orm/pg-core").PgTableWithColumns<{
@@ -103,7 +106,7 @@ export declare const mqJobs: <JobName extends string = string, Extend extends Re
103
106
  columns: {
104
107
  id: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.JobId>;
105
108
  name: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobName>;
106
- queue: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.QueueName>;
109
+ queue: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, Queue>;
107
110
  state: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.JobState>;
108
111
  priority: import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>>;
109
112
  /** FIFO order within a priority; bumped on retry so retries go to the tail. */
@@ -188,7 +191,7 @@ declare const attemptsColumns: (jobs: MqJobsTable) => {
188
191
  *
189
192
  * @since 0.1.0
190
193
  */
191
- export declare const mqJobAttempts: (jobs: ReturnType<typeof mqJobs<any>>, tableName?: string, options?: MqTableOptions<ReturnType<typeof attemptsColumns>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
194
+ export declare const mqJobAttempts: (jobs: MqJobsTable, tableName?: string, options?: MqTableOptions<ReturnType<typeof attemptsColumns>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
192
195
  name: string;
193
196
  schema: undefined;
194
197
  columns: {
@@ -285,10 +288,10 @@ export declare const mqJobAttempts: (jobs: ReturnType<typeof mqJobs<any>>, table
285
288
  };
286
289
  dialect: 'pg';
287
290
  }>;
288
- declare const schedulesColumns: () => {
291
+ declare const schedulesColumns: <JobName extends string, Queue extends string>() => {
289
292
  key: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.ScheduleKey>;
290
- jobName: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>;
291
- queue: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.QueueName>;
293
+ jobName: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobName>;
294
+ queue: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, Queue>;
292
295
  cron: import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>;
293
296
  tz: import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>;
294
297
  everyMs: import("drizzle-orm/pg-core").PgBigInt53Builder;
@@ -304,9 +307,12 @@ declare const schedulesColumns: () => {
304
307
  /**
305
308
  * Repeatable-job schedules (one row per `Job.schedule` key).
306
309
  *
310
+ * `JobName` and `Queue` type the `jobName`/`queue` columns, exactly like
311
+ * `mqJobs` (both default to plain string / effect-mq's `QueueName` brand).
312
+ *
307
313
  * @since 0.2.0
308
314
  */
309
- export declare const mqSchedules: (tableName?: string, options?: MqTableOptions<ReturnType<typeof schedulesColumns>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
315
+ export declare const mqSchedules: <JobName extends string = string, Queue extends string = QueueName>(tableName?: string, options?: MqTableOptions<ReturnType<typeof schedulesColumns<JobName, Queue>>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
310
316
  name: string;
311
317
  schema: undefined;
312
318
  columns: {
@@ -325,11 +331,11 @@ export declare const mqSchedules: (tableName?: string, options?: MqTableOptions<
325
331
  identity: undefined;
326
332
  generated: undefined;
327
333
  }>;
328
- jobName: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
334
+ jobName: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobName>, {
329
335
  name: string;
330
336
  tableName: string;
331
337
  dataType: "string";
332
- data: string;
338
+ data: JobName;
333
339
  driverParam: string;
334
340
  notNull: true;
335
341
  hasDefault: false;
@@ -340,11 +346,11 @@ export declare const mqSchedules: (tableName?: string, options?: MqTableOptions<
340
346
  identity: undefined;
341
347
  generated: undefined;
342
348
  }>;
343
- queue: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.QueueName>, {
349
+ queue: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, Queue>, {
344
350
  name: string;
345
351
  tableName: string;
346
352
  dataType: "string";
347
- data: JobStore.QueueName;
353
+ data: Queue;
348
354
  driverParam: string;
349
355
  notNull: true;
350
356
  hasDefault: false;
@@ -523,8 +529,8 @@ export declare const mqSchedules: (tableName?: string, options?: MqTableOptions<
523
529
  };
524
530
  dialect: 'pg';
525
531
  }>;
526
- declare const dedupeColumns: () => {
527
- name: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>;
532
+ declare const dedupeColumns: <JobName extends string>() => {
533
+ name: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobName>;
528
534
  key: import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>;
529
535
  jobId: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.JobId>;
530
536
  /** Set for ttl/throttle windows; NULL rows live as long as their job is pending. */
@@ -535,15 +541,15 @@ declare const dedupeColumns: () => {
535
541
  *
536
542
  * @since 0.3.0
537
543
  */
538
- export declare const mqDedupe: (tableName?: string, options?: MqTableOptions<ReturnType<typeof dedupeColumns>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
544
+ export declare const mqDedupe: <JobName extends string = string>(tableName?: string, options?: MqTableOptions<ReturnType<typeof dedupeColumns<JobName>>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
539
545
  name: string;
540
546
  schema: undefined;
541
547
  columns: {
542
- name: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
548
+ name: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobName>, {
543
549
  name: string;
544
550
  tableName: string;
545
551
  dataType: "string";
546
- data: string;
552
+ data: JobName;
547
553
  driverParam: string;
548
554
  notNull: true;
549
555
  hasDefault: false;
@@ -602,8 +608,8 @@ export declare const mqDedupe: (tableName?: string, options?: MqTableOptions<Ret
602
608
  };
603
609
  dialect: 'pg';
604
610
  }>;
605
- declare const queueControlColumns: () => {
606
- queue: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.QueueName>;
611
+ declare const queueControlColumns: <Queue extends string>() => {
612
+ queue: import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, Queue>;
607
613
  paused: import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBooleanBuilder>>;
608
614
  };
609
615
  /**
@@ -611,15 +617,15 @@ declare const queueControlColumns: () => {
611
617
  *
612
618
  * @since 0.2.0
613
619
  */
614
- export declare const mqQueueControl: (tableName?: string, options?: MqTableOptions<ReturnType<typeof queueControlColumns>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
620
+ export declare const mqQueueControl: <Queue extends string = QueueName>(tableName?: string, options?: MqTableOptions<ReturnType<typeof queueControlColumns<Queue>>>) => import("drizzle-orm/pg-core").PgTableWithColumns<{
615
621
  name: string;
616
622
  schema: undefined;
617
623
  columns: {
618
- queue: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, JobStore.QueueName>, {
624
+ queue: import("drizzle-orm/pg-core").PgBuildColumn<string, import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, Queue>, {
619
625
  name: string;
620
626
  tableName: string;
621
627
  dataType: "string";
622
- data: JobStore.QueueName;
628
+ data: Queue;
623
629
  driverParam: string;
624
630
  notNull: true;
625
631
  hasDefault: false;
@@ -651,7 +657,7 @@ export declare const mqQueueControl: (tableName?: string, options?: MqTableOptio
651
657
  /**
652
658
  * @since 0.1.0
653
659
  */
654
- export type MqJobsTable = ReturnType<typeof mqJobs<any>>;
660
+ export type MqJobsTable = ReturnType<typeof mqJobs<any, any>>;
655
661
  /**
656
662
  * @since 0.1.0
657
663
  */
@@ -659,14 +665,14 @@ export type MqJobAttemptsTable = ReturnType<typeof mqJobAttempts>;
659
665
  /**
660
666
  * @since 0.2.0
661
667
  */
662
- export type MqSchedulesTable = ReturnType<typeof mqSchedules>;
668
+ export type MqSchedulesTable = ReturnType<typeof mqSchedules<any, any>>;
663
669
  /**
664
670
  * @since 0.2.0
665
671
  */
666
- export type MqQueueControlTable = ReturnType<typeof mqQueueControl>;
672
+ export type MqQueueControlTable = ReturnType<typeof mqQueueControl<any>>;
667
673
  /**
668
674
  * @since 0.3.0
669
675
  */
670
- export type MqDedupeTable = ReturnType<typeof mqDedupe>;
676
+ export type MqDedupeTable = ReturnType<typeof mqDedupe<any>>;
671
677
  export {};
672
678
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/drizzle-postgres/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/drizzle-postgres/schema.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,8 @@ const jobsColumns = () => ({
31
31
  /**
32
32
  * The jobs table factory. `JobName` types the `name` column — derive it from
33
33
  * your job definitions: `mqJobs<typeof GenerateInvoice._tag | typeof Report._tag>()`.
34
+ * `Queue` types the `queue` column the same way — pass your own branded type
35
+ * or literal union (defaults to effect-mq's `QueueName` brand).
34
36
  *
35
37
  * `extend` adds your own columns (tenant ids, object ids, ...) to the table.
36
38
  * At enqueue the Postgres store fills each extended column from the job's
@@ -97,7 +99,7 @@ export const mqJobAttempts = (jobs, tableName = "effect_mq_job_attempts", option
97
99
  ]);
98
100
  const schedulesColumns = () => ({
99
101
  key: text("key").primaryKey().$type(),
100
- jobName: text("job_name").notNull(),
102
+ jobName: text("job_name").notNull().$type(),
101
103
  queue: text("queue").notNull().$type(),
102
104
  cron: text("cron"),
103
105
  tz: text("tz"),
@@ -114,6 +116,9 @@ const schedulesColumns = () => ({
114
116
  /**
115
117
  * Repeatable-job schedules (one row per `Job.schedule` key).
116
118
  *
119
+ * `JobName` and `Queue` type the `jobName`/`queue` columns, exactly like
120
+ * `mqJobs` (both default to plain string / effect-mq's `QueueName` brand).
121
+ *
117
122
  * @since 0.2.0
118
123
  */
119
124
  export const mqSchedules = (tableName = "effect_mq_schedules", options) => pgTable(tableName, schedulesColumns(), (table) => [
@@ -121,7 +126,7 @@ export const mqSchedules = (tableName = "effect_mq_schedules", options) => pgTab
121
126
  ...options?.extraConfig?.(table) ?? []
122
127
  ]);
123
128
  const dedupeColumns = () => ({
124
- name: text("name").notNull(),
129
+ name: text("name").notNull().$type(),
125
130
  key: text("key").notNull(),
126
131
  jobId: text("job_id").notNull().$type(),
127
132
  /** Set for ttl/throttle windows; NULL rows live as long as their job is pending. */
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/drizzle-postgres/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/drizzle-postgres/schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-mq",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Effect-native background jobs: schema-first definitions, storage-agnostic queue core, worker runtime, and a Postgres store through drizzle.",
5
5
  "license": "MIT",
6
6
  "author": "Adam Rankin",
@@ -70,10 +70,10 @@ export interface MqTableOptions<Columns extends Record<string, AnyPgColumnBuilde
70
70
  | undefined
71
71
  }
72
72
 
73
- const jobsColumns = <JobName extends string>() => ({
73
+ const jobsColumns = <JobName extends string, Queue extends string>() => ({
74
74
  id: text("id").primaryKey().$type<JobId>(),
75
75
  name: text("name").notNull().$type<JobName>(),
76
- queue: text("queue").notNull().$type<QueueName>(),
76
+ queue: text("queue").notNull().$type<Queue>(),
77
77
  state: text("state").notNull().$type<JobState>(),
78
78
  priority: integer("priority").notNull().default(0),
79
79
  /** FIFO order within a priority; bumped on retry so retries go to the tail. */
@@ -102,6 +102,8 @@ const jobsColumns = <JobName extends string>() => ({
102
102
  /**
103
103
  * The jobs table factory. `JobName` types the `name` column — derive it from
104
104
  * your job definitions: `mqJobs<typeof GenerateInvoice._tag | typeof Report._tag>()`.
105
+ * `Queue` types the `queue` column the same way — pass your own branded type
106
+ * or literal union (defaults to effect-mq's `QueueName` brand).
105
107
  *
106
108
  * `extend` adds your own columns (tenant ids, object ids, ...) to the table.
107
109
  * At enqueue the Postgres store fills each extended column from the job's
@@ -124,16 +126,17 @@ const jobsColumns = <JobName extends string>() => ({
124
126
  */
125
127
  export const mqJobs = <
126
128
  JobName extends string = string,
129
+ Queue extends string = QueueName,
127
130
  Extend extends Record<string, AnyPgColumnBuilder> = Record<never, never>
128
131
  >(
129
132
  tableName = "effect_mq_jobs",
130
- options?: MqTableOptions<ReturnType<typeof jobsColumns<JobName>> & Extend> & {
133
+ options?: MqTableOptions<ReturnType<typeof jobsColumns<JobName, Queue>> & Extend> & {
131
134
  /** Extra columns appended to the factory's own (see the JSDoc example). */
132
135
  readonly extend?: Extend | undefined
133
136
  }
134
137
  ) =>
135
138
  pgTable(tableName, {
136
- ...jobsColumns<JobName>(),
139
+ ...jobsColumns<JobName, Queue>(),
137
140
  // SAFETY: when `extend` is absent, `Extend` was never inferred from a
138
141
  // value and stays at its empty-record default, which {} satisfies.
139
142
  ...options?.extend ?? ({} as Extend)
@@ -175,7 +178,7 @@ const attemptsColumns = (jobs: MqJobsTable) => ({
175
178
  * @since 0.1.0
176
179
  */
177
180
  export const mqJobAttempts = (
178
- jobs: ReturnType<typeof mqJobs<any>>,
181
+ jobs: MqJobsTable,
179
182
  tableName = "effect_mq_job_attempts",
180
183
  options?: MqTableOptions<ReturnType<typeof attemptsColumns>>
181
184
  ) =>
@@ -184,10 +187,10 @@ export const mqJobAttempts = (
184
187
  ...options?.extraConfig?.(table) ?? []
185
188
  ])
186
189
 
187
- const schedulesColumns = () => ({
190
+ const schedulesColumns = <JobName extends string, Queue extends string>() => ({
188
191
  key: text("key").primaryKey().$type<ScheduleKey>(),
189
- jobName: text("job_name").notNull(),
190
- queue: text("queue").notNull().$type<QueueName>(),
192
+ jobName: text("job_name").notNull().$type<JobName>(),
193
+ queue: text("queue").notNull().$type<Queue>(),
191
194
  cron: text("cron"),
192
195
  tz: text("tz"),
193
196
  everyMs: bigint("every_ms", { mode: "number" }),
@@ -204,19 +207,22 @@ const schedulesColumns = () => ({
204
207
  /**
205
208
  * Repeatable-job schedules (one row per `Job.schedule` key).
206
209
  *
210
+ * `JobName` and `Queue` type the `jobName`/`queue` columns, exactly like
211
+ * `mqJobs` (both default to plain string / effect-mq's `QueueName` brand).
212
+ *
207
213
  * @since 0.2.0
208
214
  */
209
- export const mqSchedules = (
215
+ export const mqSchedules = <JobName extends string = string, Queue extends string = QueueName>(
210
216
  tableName = "effect_mq_schedules",
211
- options?: MqTableOptions<ReturnType<typeof schedulesColumns>>
217
+ options?: MqTableOptions<ReturnType<typeof schedulesColumns<JobName, Queue>>>
212
218
  ) =>
213
- pgTable(tableName, schedulesColumns(), (table) => [
219
+ pgTable(tableName, schedulesColumns<JobName, Queue>(), (table) => [
214
220
  index(`${tableName}_due_idx`).on(table.nextRunAt),
215
221
  ...options?.extraConfig?.(table) ?? []
216
222
  ])
217
223
 
218
- const dedupeColumns = () => ({
219
- name: text("name").notNull(),
224
+ const dedupeColumns = <JobName extends string>() => ({
225
+ name: text("name").notNull().$type<JobName>(),
220
226
  key: text("key").notNull(),
221
227
  jobId: text("job_id").notNull().$type<JobId>(),
222
228
  /** Set for ttl/throttle windows; NULL rows live as long as their job is pending. */
@@ -228,17 +234,17 @@ const dedupeColumns = () => ({
228
234
  *
229
235
  * @since 0.3.0
230
236
  */
231
- export const mqDedupe = (
237
+ export const mqDedupe = <JobName extends string = string>(
232
238
  tableName = "effect_mq_dedupe",
233
- options?: MqTableOptions<ReturnType<typeof dedupeColumns>>
239
+ options?: MqTableOptions<ReturnType<typeof dedupeColumns<JobName>>>
234
240
  ) =>
235
- pgTable(tableName, dedupeColumns(), (table) => [
241
+ pgTable(tableName, dedupeColumns<JobName>(), (table) => [
236
242
  primaryKey({ columns: [table.name, table.key] }),
237
243
  ...options?.extraConfig?.(table) ?? []
238
244
  ])
239
245
 
240
- const queueControlColumns = () => ({
241
- queue: text("queue").primaryKey().$type<QueueName>(),
246
+ const queueControlColumns = <Queue extends string>() => ({
247
+ queue: text("queue").primaryKey().$type<Queue>(),
242
248
  paused: boolean("paused").notNull().default(false)
243
249
  })
244
250
 
@@ -247,18 +253,18 @@ const queueControlColumns = () => ({
247
253
  *
248
254
  * @since 0.2.0
249
255
  */
250
- export const mqQueueControl = (
256
+ export const mqQueueControl = <Queue extends string = QueueName>(
251
257
  tableName = "effect_mq_queue_control",
252
- options?: MqTableOptions<ReturnType<typeof queueControlColumns>>
258
+ options?: MqTableOptions<ReturnType<typeof queueControlColumns<Queue>>>
253
259
  ) =>
254
- pgTable(tableName, queueControlColumns(), (table) => [
260
+ pgTable(tableName, queueControlColumns<Queue>(), (table) => [
255
261
  ...options?.extraConfig?.(table) ?? []
256
262
  ])
257
263
 
258
264
  /**
259
265
  * @since 0.1.0
260
266
  */
261
- export type MqJobsTable = ReturnType<typeof mqJobs<any>>
267
+ export type MqJobsTable = ReturnType<typeof mqJobs<any, any>>
262
268
 
263
269
  /**
264
270
  * @since 0.1.0
@@ -268,14 +274,14 @@ export type MqJobAttemptsTable = ReturnType<typeof mqJobAttempts>
268
274
  /**
269
275
  * @since 0.2.0
270
276
  */
271
- export type MqSchedulesTable = ReturnType<typeof mqSchedules>
277
+ export type MqSchedulesTable = ReturnType<typeof mqSchedules<any, any>>
272
278
 
273
279
  /**
274
280
  * @since 0.2.0
275
281
  */
276
- export type MqQueueControlTable = ReturnType<typeof mqQueueControl>
282
+ export type MqQueueControlTable = ReturnType<typeof mqQueueControl<any>>
277
283
 
278
284
  /**
279
285
  * @since 0.3.0
280
286
  */
281
- export type MqDedupeTable = ReturnType<typeof mqDedupe>
287
+ export type MqDedupeTable = ReturnType<typeof mqDedupe<any>>