Skip to content

Commit ec97064

Browse files
committed
fix: deprecate nitro export in favor of server
1 parent 31baffb commit ec97064

File tree

3 files changed

+93
-67
lines changed

3 files changed

+93
-67
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"import": "./dist/runtime/utils/index.js"
3434
},
3535
"./runtime": "./dist/runtime/index.js",
36+
"./server": "./dist/runtime/server.js",
3637
"./nitro": "./dist/runtime/nitro.js"
3738
},
3839
"main": "./dist/module.cjs",

src/runtime/nitro.ts

Lines changed: 25 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,25 @@
1-
import type { H3Event } from 'h3'
2-
import { collectionQueryBuilder } from './internal/query'
3-
import { generateNavigationTree } from './internal/navigation'
4-
import { generateItemSurround } from './internal/surround'
5-
import { generateSearchSections } from './internal/search'
6-
import { fetchQuery } from './internal/api'
7-
import type { Collections, CollectionQueryBuilder, PageCollections, SurroundOptions, SQLOperator, QueryGroupFunction } from '@nuxt/content'
8-
9-
interface ChainablePromise<T extends keyof PageCollections, R> extends Promise<R> {
10-
where(field: keyof PageCollections[T] | string, operator: SQLOperator, value?: unknown): ChainablePromise<T, R>
11-
andWhere(groupFactory: QueryGroupFunction<PageCollections[T]>): ChainablePromise<T, R>
12-
orWhere(groupFactory: QueryGroupFunction<PageCollections[T]>): ChainablePromise<T, R>
13-
order(field: keyof PageCollections[T], direction: 'ASC' | 'DESC'): ChainablePromise<T, R>
14-
}
15-
16-
export const queryCollection = <T extends keyof Collections>(event: H3Event, collection: T): CollectionQueryBuilder<Collections[T]> => {
17-
return collectionQueryBuilder<T>(collection, (collection, sql) => fetchQuery(event, collection, sql))
18-
}
19-
20-
export function queryCollectionNavigation<T extends keyof PageCollections>(event: H3Event, collection: T, fields?: Array<keyof PageCollections[T]>) {
21-
return chainablePromise(event, collection, qb => generateNavigationTree(qb, fields))
22-
}
23-
24-
export function queryCollectionItemSurroundings<T extends keyof PageCollections>(event: H3Event, collection: T, path: string, opts?: SurroundOptions<keyof PageCollections[T]>) {
25-
return chainablePromise(event, collection, qb => generateItemSurround(qb, path, opts))
26-
}
27-
28-
export function queryCollectionSearchSections(event: H3Event, collection: keyof Collections, opts?: { ignoredTags: string[] }) {
29-
return chainablePromise(event, collection, qb => generateSearchSections(qb, opts))
30-
}
31-
32-
function chainablePromise<T extends keyof PageCollections, Result>(event: H3Event, collection: T, fn: (qb: CollectionQueryBuilder<PageCollections[T]>) => Promise<Result>) {
33-
const queryBuilder = queryCollection(event, collection)
34-
35-
const chainable: ChainablePromise<T, Result> = {
36-
where(field, operator, value) {
37-
queryBuilder.where(String(field), operator, value)
38-
return chainable
39-
},
40-
andWhere(groupFactory) {
41-
queryBuilder.andWhere(groupFactory)
42-
return chainable
43-
},
44-
orWhere(groupFactory) {
45-
queryBuilder.orWhere(groupFactory)
46-
return chainable
47-
},
48-
order(field, direction) {
49-
queryBuilder.order(String(field), direction)
50-
return chainable
51-
},
52-
then(onfulfilled, onrejected) {
53-
return fn(queryBuilder).then(onfulfilled, onrejected)
54-
},
55-
catch(onrejected) {
56-
return this.then(undefined, onrejected)
57-
},
58-
finally(onfinally) {
59-
return this.then(undefined, undefined).finally(onfinally)
60-
},
61-
get [Symbol.toStringTag]() {
62-
return 'Promise'
63-
},
64-
}
65-
66-
return chainable
67-
}
1+
import * as server from './server'
2+
/**
3+
* `@nuxt/content/nitro` import is deprecated and will be removed in the next major version.
4+
* Use `@nuxt/content/server` instead.
5+
*/
6+
7+
/**
8+
* @deprecated Import from `@nuxt/content/server` instead
9+
*/
10+
export const queryCollection = server.queryCollection
11+
12+
/**
13+
* @deprecated Import from `@nuxt/content/server` instead
14+
*/
15+
export const queryCollectionNavigation = server.queryCollectionNavigation
16+
17+
/**
18+
* @deprecated Import from `@nuxt/content/server` instead
19+
*/
20+
export const queryCollectionItemSurroundings = server.queryCollectionItemSurroundings
21+
22+
/**
23+
* @deprecated Import from `@nuxt/content/server` instead
24+
*/
25+
export const queryCollectionSearchSections = server.queryCollectionSearchSections

src/runtime/server.ts

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import type { H3Event } from 'h3'
2+
import { collectionQueryBuilder } from './internal/query'
3+
import { generateNavigationTree } from './internal/navigation'
4+
import { generateItemSurround } from './internal/surround'
5+
import { generateSearchSections } from './internal/search'
6+
import { fetchQuery } from './internal/api'
7+
import type { Collections, CollectionQueryBuilder, PageCollections, SurroundOptions, SQLOperator, QueryGroupFunction } from '@nuxt/content'
8+
9+
interface ChainablePromise<T extends keyof PageCollections, R> extends Promise<R> {
10+
where(field: keyof PageCollections[T] | string, operator: SQLOperator, value?: unknown): ChainablePromise<T, R>
11+
andWhere(groupFactory: QueryGroupFunction<PageCollections[T]>): ChainablePromise<T, R>
12+
orWhere(groupFactory: QueryGroupFunction<PageCollections[T]>): ChainablePromise<T, R>
13+
order(field: keyof PageCollections[T], direction: 'ASC' | 'DESC'): ChainablePromise<T, R>
14+
}
15+
16+
export const queryCollection = <T extends keyof Collections>(event: H3Event, collection: T): CollectionQueryBuilder<Collections[T]> => {
17+
return collectionQueryBuilder<T>(collection, (collection, sql) => fetchQuery(event, collection, sql))
18+
}
19+
20+
export function queryCollectionNavigation<T extends keyof PageCollections>(event: H3Event, collection: T, fields?: Array<keyof PageCollections[T]>) {
21+
return chainablePromise(event, collection, qb => generateNavigationTree(qb, fields))
22+
}
23+
24+
export function queryCollectionItemSurroundings<T extends keyof PageCollections>(event: H3Event, collection: T, path: string, opts?: SurroundOptions<keyof PageCollections[T]>) {
25+
return chainablePromise(event, collection, qb => generateItemSurround(qb, path, opts))
26+
}
27+
28+
export function queryCollectionSearchSections(event: H3Event, collection: keyof Collections, opts?: { ignoredTags: string[] }) {
29+
return chainablePromise(event, collection, qb => generateSearchSections(qb, opts))
30+
}
31+
32+
function chainablePromise<T extends keyof PageCollections, Result>(event: H3Event, collection: T, fn: (qb: CollectionQueryBuilder<PageCollections[T]>) => Promise<Result>) {
33+
const queryBuilder = queryCollection(event, collection)
34+
35+
const chainable: ChainablePromise<T, Result> = {
36+
where(field, operator, value) {
37+
queryBuilder.where(String(field), operator, value)
38+
return chainable
39+
},
40+
andWhere(groupFactory) {
41+
queryBuilder.andWhere(groupFactory)
42+
return chainable
43+
},
44+
orWhere(groupFactory) {
45+
queryBuilder.orWhere(groupFactory)
46+
return chainable
47+
},
48+
order(field, direction) {
49+
queryBuilder.order(String(field), direction)
50+
return chainable
51+
},
52+
then(onfulfilled, onrejected) {
53+
return fn(queryBuilder).then(onfulfilled, onrejected)
54+
},
55+
catch(onrejected) {
56+
return this.then(undefined, onrejected)
57+
},
58+
finally(onfinally) {
59+
return this.then(undefined, undefined).finally(onfinally)
60+
},
61+
get [Symbol.toStringTag]() {
62+
return 'Promise'
63+
},
64+
}
65+
66+
return chainable
67+
}

0 commit comments

Comments
 (0)