Skip to content

Commit 0dfe1f2

Browse files
authored
Merge pull request #147 from objectstack-ai/copilot/check-action-run-status
2 parents 72a6196 + 2b813f0 commit 0dfe1f2

4 files changed

Lines changed: 20 additions & 37 deletions

File tree

packages/drivers/sql/src/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
import { Driver, IntrospectedSchema, IntrospectedTable, IntrospectedColumn, IntrospectedForeignKey } from '@objectql/types';
1010
import knex, { Knex } from 'knex';
1111

12+
/**
13+
* SQL Driver for ObjectQL
14+
* Implements Driver interface from @objectql/types
15+
*/
1216
export class SqlDriver implements Driver {
1317
private knex: Knex;
1418
private config: any;
@@ -277,7 +281,7 @@ export class SqlDriver implements Driver {
277281
}
278282
}
279283

280-
// Bulk
284+
// Bulk Operations
281285
async createMany(objectName: string, data: any[], options?: any): Promise<any> {
282286
const builder = this.getBuilder(objectName, options);
283287
return await builder.insert(data).returning('*');
@@ -506,6 +510,8 @@ export class SqlDriver implements Driver {
506510
return data;
507511
}
508512

513+
/**
514+
509515
/**
510516
* Introspect the database schema to discover existing tables, columns, and relationships.
511517
*/

packages/foundation/core/src/app.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import {
1919
HookContext,
2020
ActionHandler,
2121
ActionContext,
22-
LoaderPlugin
22+
LoaderPlugin,
23+
Driver
2324
} from '@objectql/types';
2425
import { ObjectRepository } from './repository';
2526

@@ -28,13 +29,12 @@ import { registerHookHelper, triggerHookHelper, HookEntry } from './hook';
2829
import { registerObjectHelper, getConfigsHelper } from './object';
2930
import { convertIntrospectedSchemaToObjects } from './util';
3031

31-
// Import ObjectStack engine and standard driver interface
32+
// Import ObjectStack engine (without using its driver types)
3233
import { ObjectQL as ObjectStackEngine } from '@objectstack/objectql';
33-
import { DriverInterface } from '@objectstack/spec';
3434

3535
export class ObjectQL implements IObjectQL {
3636
public metadata: MetadataRegistry;
37-
private datasources: Record<string, DriverInterface> = {};
37+
private datasources: Record<string, Driver> = {};
3838
private remotes: string[] = [];
3939
private hooks: Record<string, HookEntry[]> = {};
4040
private actions: Record<string, ActionEntry> = {};
@@ -55,8 +55,9 @@ export class ObjectQL implements IObjectQL {
5555
this.stackEngine = new ObjectStackEngine({});
5656

5757
// Register drivers with ObjectStack engine (no wrapping needed)
58+
// Cast to any since our Driver interface is compatible with spec's DriverInterface
5859
for (const [name, driver] of Object.entries(this.datasources)) {
59-
this.stackEngine.registerDriver(driver, name === 'default');
60+
this.stackEngine.registerDriver(driver as any, name === 'default');
6061
}
6162

6263
if (config.connection) {
@@ -89,12 +90,13 @@ export class ObjectQL implements IObjectQL {
8990
/**
9091
* Register a new driver with ObjectStack engine
9192
*/
92-
registerDriver(name: string, driver: DriverInterface, isDefault: boolean = false) {
93+
registerDriver(name: string, driver: Driver, isDefault: boolean = false) {
9394
if (this.datasources[name]) {
9495
console.warn(`[ObjectQL] Driver '${name}' already exists. Overwriting...`);
9596
}
9697
this.datasources[name] = driver;
97-
this.stackEngine.registerDriver(driver, isDefault);
98+
// Cast to any since our Driver interface is compatible with spec's DriverInterface
99+
this.stackEngine.registerDriver(driver as any, isDefault);
98100
}
99101

100102
removePackage(name: string) {
@@ -189,7 +191,7 @@ export class ObjectQL implements IObjectQL {
189191
return getConfigsHelper(this.metadata);
190192
}
191193

192-
datasource(name: string): DriverInterface {
194+
datasource(name: string): Driver {
193195
const driver = this.datasources[name];
194196
if (!driver) {
195197
throw new Error(`Datasource '${name}' not found`);

packages/foundation/types/src/config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
import { MetadataRegistry } from "./registry";
1010
import { ObjectConfig } from "./object";
1111
import { ObjectQLPlugin } from "./plugin";
12-
// Import DriverInterface from @objectstack/spec
13-
import type { DriverInterface } from "@objectstack/spec";
12+
// Import Driver from local types package
13+
import type { Driver } from "./driver";
1414

1515
export interface ObjectQLConfig {
1616
registry?: MetadataRegistry;
17-
datasources?: Record<string, DriverInterface>;
17+
datasources?: Record<string, Driver>;
1818
/**
1919
* Optional connection string for auto-configuration.
2020
* e.g. "sqlite://dev.db", "postgres://localhost/db", "mongodb://localhost/db"

pnpm-lock.yaml

Lines changed: 0 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)