Skip to content

Commit a2199cc

Browse files
Copilothotlong
andcommitted
Fix schema naming to prevent duplicate documentation
- Renamed QueryFilterSchema to DataEngineFilterSchema - Renamed QueryOptionsSchema to DataEngineQueryOptionsSchema - Updated all imports in objectql and runtime packages - This prevents the doc generator from creating duplicate files in data/ - Confirmed data-engine.zod.ts should remain in spec/system (infrastructure layer) - All tests passing Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent bc82cda commit a2199cc

9 files changed

Lines changed: 43 additions & 63 deletions

File tree

content/docs/references/data/data-engine.mdx

Lines changed: 0 additions & 31 deletions
This file was deleted.

content/docs/references/data/filter.mdx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ description: Filter protocol schemas
1212
## TypeScript Usage
1313

1414
```typescript
15-
import { ComparisonOperatorSchema, EqualityOperatorSchema, FieldOperatorsSchema, FieldReferenceSchema, FilterConditionSchema, NormalizedFilterSchema, RangeOperatorSchema, SetOperatorSchema, SpecialOperatorSchema, StringOperatorSchema } from '@objectstack/spec/data';
16-
import type { ComparisonOperator, EqualityOperator, FieldOperators, FieldReference, FilterCondition, NormalizedFilter, RangeOperator, SetOperator, SpecialOperator, StringOperator } from '@objectstack/spec/data';
15+
import { ComparisonOperatorSchema, EqualityOperatorSchema, FieldOperatorsSchema, FieldReferenceSchema, FilterConditionSchema, NormalizedFilterSchema, QueryFilterSchema, RangeOperatorSchema, SetOperatorSchema, SpecialOperatorSchema, StringOperatorSchema } from '@objectstack/spec/data';
16+
import type { ComparisonOperator, EqualityOperator, FieldOperators, FieldReference, FilterCondition, NormalizedFilter, QueryFilter, RangeOperator, SetOperator, SpecialOperator, StringOperator } from '@objectstack/spec/data';
1717

1818
// Validate data
1919
const result = ComparisonOperatorSchema.parse(data);
@@ -94,6 +94,16 @@ const result = ComparisonOperatorSchema.parse(data);
9494

9595
---
9696

97+
## QueryFilter
98+
99+
### Properties
100+
101+
| Property | Type | Required | Description |
102+
| :--- | :--- | :--- | :--- |
103+
| **where** | `any` | optional | |
104+
105+
---
106+
97107
## RangeOperator
98108

99109
### Properties

content/docs/references/system/data-engine.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ description: Data Engine protocol schemas
1212
## TypeScript Usage
1313

1414
```typescript
15-
import { DataEngineSchema, QueryFilterSchema, QueryOptionsSchema } from '@objectstack/spec/system';
16-
import type { DataEngine, QueryFilter, QueryOptions } from '@objectstack/spec/system';
15+
import { DataEngineSchema, DataEngineFilterSchema, DataEngineQueryOptionsSchema } from '@objectstack/spec/system';
16+
import type { DataEngine, DataEngineFilter, DataEngineQueryOptions } from '@objectstack/spec/system';
1717

1818
// Validate data
1919
const result = DataEngineSchema.parse(data);
@@ -32,21 +32,21 @@ Data Engine Interface
3232

3333
---
3434

35-
## QueryFilter
35+
## DataEngineFilter
3636

37-
Query filter conditions
37+
Data Engine query filter conditions
3838

3939
---
4040

41-
## QueryOptions
41+
## DataEngineQueryOptions
4242

43-
Query options for find operations
43+
Query options for IDataEngine.find() operations
4444

4545
### Properties
4646

4747
| Property | Type | Required | Description |
4848
| :--- | :--- | :--- | :--- |
49-
| **filter** | `Record<string, any>` | optional | Query filter conditions |
49+
| **filter** | `Record<string, any>` | optional | Data Engine query filter conditions |
5050
| **select** | `string[]` | optional | |
5151
| **sort** | `Record<string, Enum<'1' \| '-1' \| 'asc' \| 'desc'>>` | optional | |
5252
| **limit** | `number` | optional | |

packages/objectql/src/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { QueryAST, HookContext } from '@objectstack/spec/data';
22
import { ObjectStackManifest } from '@objectstack/spec/system';
33
import { DriverInterface, DriverOptions } from '@objectstack/spec/system';
4-
import { IDataEngine, QueryOptions } from '@objectstack/spec/system';
4+
import { IDataEngine, DataEngineQueryOptions } from '@objectstack/spec/system';
55
import { SchemaRegistry } from './registry';
66

77
// Export Registry for consumers
@@ -224,14 +224,14 @@ export class ObjectQL implements IDataEngine {
224224
* @param query - Query options (IDataEngine format)
225225
* @returns Promise resolving to array of records
226226
*/
227-
async find(object: string, query?: QueryOptions): Promise<any[]> {
227+
async find(object: string, query?: DataEngineQueryOptions): Promise<any[]> {
228228
const driver = this.getDriver(object);
229229

230-
// Convert QueryOptions to QueryAST
230+
// Convert DataEngineQueryOptions to QueryAST
231231
let ast: QueryAST = { object };
232232

233233
if (query) {
234-
// Map QueryOptions to QueryAST
234+
// Map DataEngineQueryOptions to QueryAST
235235
if (query.filter) {
236236
ast.where = query.filter;
237237
}

packages/runtime/src/interfaces/data-engine.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
* This provides backward compatibility for imports from @objectstack/runtime.
66
*/
77

8-
export type { IDataEngine, QueryOptions, QueryFilter } from '@objectstack/spec/system';
8+
export type { IDataEngine, DataEngineQueryOptions, DataEngineFilter } from '@objectstack/spec/system';

packages/runtime/src/test-interfaces.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* and IDataEngine interfaces without depending on concrete implementations.
66
*/
77

8-
import { IHttpServer, IDataEngine, RouteHandler, IHttpRequest, IHttpResponse, Middleware, QueryOptions } from './index.js';
8+
import { IHttpServer, IDataEngine, RouteHandler, IHttpRequest, IHttpResponse, Middleware, DataEngineQueryOptions } from './index.js';
99

1010
/**
1111
* Example: Mock HTTP Server Plugin
@@ -77,7 +77,7 @@ class MockDataEngine implements IDataEngine {
7777
return record;
7878
}
7979

80-
async find(objectName: string, query?: QueryOptions): Promise<any[]> {
80+
async find(objectName: string, query?: DataEngineQueryOptions): Promise<any[]> {
8181
const objectStore = this.store.get(objectName);
8282
if (!objectStore) {
8383
return [];

packages/spec/json-schema/system/QueryFilter.json renamed to packages/spec/json-schema/system/DataEngineFilter.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"$ref": "#/definitions/QueryFilter",
2+
"$ref": "#/definitions/DataEngineFilter",
33
"definitions": {
4-
"QueryFilter": {
4+
"DataEngineFilter": {
55
"type": "object",
66
"additionalProperties": {},
7-
"description": "Query filter conditions"
7+
"description": "Data Engine query filter conditions"
88
}
99
},
1010
"$schema": "http://json-schema.org/draft-07/schema#"

packages/spec/json-schema/system/QueryOptions.json renamed to packages/spec/json-schema/system/DataEngineQueryOptions.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
2-
"$ref": "#/definitions/QueryOptions",
2+
"$ref": "#/definitions/DataEngineQueryOptions",
33
"definitions": {
4-
"QueryOptions": {
4+
"DataEngineQueryOptions": {
55
"type": "object",
66
"properties": {
77
"filter": {
88
"type": "object",
99
"additionalProperties": {},
10-
"description": "Query filter conditions"
10+
"description": "Data Engine query filter conditions"
1111
},
1212
"select": {
1313
"type": "array",
@@ -41,7 +41,7 @@
4141
}
4242
},
4343
"additionalProperties": false,
44-
"description": "Query options for find operations"
44+
"description": "Query options for IDataEngine.find() operations"
4545
}
4646
},
4747
"$schema": "http://json-schema.org/draft-07/schema#"

packages/spec/src/system/data-engine.zod.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@ import { z } from 'zod';
1212
*/
1313

1414
/**
15-
* Query filter conditions
15+
* Data Engine Query filter conditions
16+
* Simple key-value filter structure for IDataEngine.find() operations
1617
*/
17-
export const QueryFilterSchema = z.record(z.any()).describe('Query filter conditions');
18+
export const DataEngineFilterSchema = z.record(z.any()).describe('Data Engine query filter conditions');
1819

1920
/**
20-
* Query options for find operations
21+
* Query options for IDataEngine.find() operations
2122
*/
22-
export const QueryOptionsSchema = z.object({
23+
export const DataEngineQueryOptionsSchema = z.object({
2324
/** Filter conditions */
24-
filter: QueryFilterSchema.optional(),
25+
filter: DataEngineFilterSchema.optional(),
2526
/** Fields to select */
2627
select: z.array(z.string()).optional(),
2728
/** Sort order */
@@ -32,7 +33,7 @@ export const QueryOptionsSchema = z.object({
3233
skip: z.number().optional(),
3334
/** Maximum number of results (OData-style, takes precedence over limit if both specified) */
3435
top: z.number().optional(),
35-
}).describe('Query options for find operations');
36+
}).describe('Query options for IDataEngine.find() operations');
3637

3738
/**
3839
* Data Engine Interface Schema
@@ -93,14 +94,14 @@ export const DataEngineSchema = z.object({
9394
/**
9495
* TypeScript types derived from schemas
9596
*/
96-
export type QueryFilter = z.infer<typeof QueryFilterSchema>;
97-
export type QueryOptions = z.infer<typeof QueryOptionsSchema>;
97+
export type DataEngineFilter = z.infer<typeof DataEngineFilterSchema>;
98+
export type DataEngineQueryOptions = z.infer<typeof DataEngineQueryOptionsSchema>;
9899

99100
// Define the TypeScript interface manually for better type safety
100101
// Zod function schema doesn't handle optional parameters well
101102
export interface IDataEngine {
102103
insert(objectName: string, data: any): Promise<any>;
103-
find(objectName: string, query?: QueryOptions): Promise<any[]>;
104+
find(objectName: string, query?: DataEngineQueryOptions): Promise<any[]>;
104105
update(objectName: string, id: any, data: any): Promise<any>;
105106
delete(objectName: string, id: any): Promise<boolean>;
106107
}

0 commit comments

Comments
 (0)