@kollors/deep-json-server 0.2.5 → 0.2.6

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.
package/README.md CHANGED
@@ -109,7 +109,7 @@ DELETE /movies/:id
109
109
  ## Pagination and sorting
110
110
 
111
111
  ```http
112
- GET /movies?_page=1&_per_page=10&_sort=-id,title
112
+ GET /movies?_page=1&_perPage=10&_sort=-id,title
113
113
  ```
114
114
 
115
115
  Without `_page`, a GET collection returns an array. With `_page`, it returns:
@@ -224,12 +224,12 @@ deep-json-server mock/database.json --generate mock/database-schema.json mock/op
224
224
 
225
225
  The generator infers resources and field types from all database records. Fields present in every record are required unless listed in `optional`; `formats` adds OpenAPI formats such as `date` and `uri`. Nested fields use dot paths, for example `actors.id`.
226
226
 
227
- Use `modelName` when a resource needs an explicit schema name instead of the automatically singularized name:
227
+ Use `name` when a resource needs an explicit schema name instead of the automatically singularized name:
228
228
 
229
229
  ```json
230
230
  {
231
231
  "equipment": {
232
- "modelName": "Equipment"
232
+ "name": "Equipment"
233
233
  }
234
234
  }
235
235
  ```
package/README.ru.md CHANGED
@@ -109,7 +109,7 @@ DELETE /movies/:id
109
109
  ## Пагинация и сортировка
110
110
 
111
111
  ```http
112
- GET /movies?_page=1&_per_page=10&_sort=-id,title
112
+ GET /movies?_page=1&_perPage=10&_sort=-id,title
113
113
  ```
114
114
 
115
115
  Без `_page` GET-запрос к коллекции возвращает массив. С `_page` возвращается объект:
@@ -224,12 +224,12 @@ deep-json-server mock/database.json --generate mock/database-schema.json mock/op
224
224
 
225
225
  Генератор определяет ресурсы и типы полей по всем записям базы. Поля, присутствующие в каждой записи, считаются обязательными, если они не перечислены в `optional`; `formats` добавляет форматы OpenAPI, например `date` и `uri`. Для вложенных полей используются пути через точку, например `actors.id`.
226
226
 
227
- Используйте `modelName`, если ресурсу нужно явно задать имя схемы вместо автоматически полученного имени в единственном числе:
227
+ Используйте `name`, если ресурсу нужно явно задать имя схемы вместо автоматически полученного имени в единственном числе:
228
228
 
229
229
  ```json
230
230
  {
231
231
  "equipment": {
232
- "modelName": "Equipment"
232
+ "name": "Equipment"
233
233
  }
234
234
  }
235
235
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kollors/deep-json-server",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "JSON mock server with deep filters and recursive relationship embedding",
5
5
  "type": "module",
6
6
  "bin": {
package/src/openapi.js CHANGED
@@ -134,7 +134,7 @@ const createParameters = () => ({
134
134
  Embed: { description: 'Relationship paths to embed', explode: true, in: 'query', name: '_embed', schema: { items: { type: 'string' }, type: 'array' }, style: 'form' },
135
135
  Id: { in: 'path', name: 'id', required: true, schema: { type: 'string' } },
136
136
  Page: { in: 'query', name: '_page', required: true, schema: { minimum: 1, type: 'integer' } },
137
- PerPage: { in: 'query', name: '_per_page', required: true, schema: { minimum: 1, type: 'integer' } },
137
+ PerPage: { in: 'query', name: '_perPage', required: true, schema: { minimum: 1, type: 'integer' } },
138
138
  Sort: { description: 'Comma-separated fields; prefix with - for descending order', in: 'query', name: '_sort', schema: { type: 'string' } },
139
139
  Where: { description: 'JSON-encoded deep filter', in: 'query', name: '_where', schema: { type: 'string' } },
140
140
  });
@@ -202,7 +202,7 @@ export function createOpenApiDocument(database, schemaConfig = {}) {
202
202
  const resources = getResourceNames(database);
203
203
  const componentNames = Object.fromEntries(resources.map((resource) => {
204
204
  const resourceConfig = isObject(schemaConfig[resource]) ? schemaConfig[resource] : {};
205
- const componentName = typeof resourceConfig.modelName === 'string' && resourceConfig.modelName !== '' ? resourceConfig.modelName : toPascalCase(singularize(resource));
205
+ const componentName = typeof resourceConfig.name === 'string' && resourceConfig.name !== '' ? resourceConfig.name : toPascalCase(singularize(resource));
206
206
 
207
207
  return [resource, componentName];
208
208
  }));
package/src/query.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { createHttpError, isEqual, isObject, isSafeKey, toArray } from './utils.js';
2
2
 
3
3
  const FIELD_OPERATORS = new Set(['contains', 'endsWith', 'eq', 'every', 'gt', 'gte', 'in', 'lt', 'lte', 'ne', 'none', 'not', 'some', 'startsWith']);
4
- const RESERVED_QUERY_KEYS = new Set(['_embed', '_page', '_per_page', '_sort', '_where']);
4
+ const RESERVED_QUERY_KEYS = new Set(['_embed', '_page', '_perPage', '_sort', '_where']);
5
5
 
6
6
  const compareValues = (left, right) => {
7
7
  if (Object.is(left, right)) {
package/src/server.js CHANGED
@@ -56,7 +56,7 @@ export async function createServer({ databasePath, logger = true } = {}) {
56
56
  const sortedItems = sortItems(filteredItems, request.query._sort);
57
57
  const page = request.query._page == null ? undefined : Number(request.query._page);
58
58
 
59
- return page == null ? sortedItems : paginateItems(sortedItems, page, Number(request.query._per_page));
59
+ return page == null ? sortedItems : paginateItems(sortedItems, page, Number(request.query._perPage));
60
60
  });
61
61
 
62
62
  server.get('/:resource/:id', async(request) => {