@liminalfunctions/framework 1.0.47 → 1.0.49
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/dist/F_Compile.js +6 -1
- package/dist/F_Compile.js.map +1 -1
- package/dist/code_generation/generate_client_library.d.ts +1 -1
- package/dist/code_generation/generate_client_library.js +28 -23
- package/dist/code_generation/generate_client_library.js.map +1 -1
- package/dist/utils/query_object_to_mongodb_query.js +9 -9
- package/dist/utils/query_object_to_mongodb_query.js.map +1 -1
- package/package.json +1 -1
- package/src/F_Compile.ts +9 -2
- package/src/code_generation/generate_client_library.ts +25 -19
- package/src/utils/query_object_to_mongodb_query.ts +9 -9
- package/test/0_3_query_validator_to_mongodb_query.test.ts +4 -0
- package/test/1_0_basic_server.test.ts +175 -0
package/dist/F_Compile.js
CHANGED
|
@@ -103,7 +103,12 @@ export function compile(app, collection, api_prefix, collection_registry) {
|
|
|
103
103
|
let documents;
|
|
104
104
|
try {
|
|
105
105
|
let query = collection.mongoose_model.find(find, undefined, { 'lean': true });
|
|
106
|
-
|
|
106
|
+
if (validated_query_args.sort && validated_query_args.cursor) {
|
|
107
|
+
res.status(400);
|
|
108
|
+
res.json({ error: 'you cannot use both a cursor and a sort.' });
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
let fetch = query_object_to_mongodb_limits(query, validated_query_args);
|
|
107
112
|
documents = await fetch;
|
|
108
113
|
}
|
|
109
114
|
catch (err) {
|
package/dist/F_Compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"F_Compile.js","sourceRoot":"","sources":["../src/F_Compile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"F_Compile.js","sourceRoot":"","sources":["../src/F_Compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { F_Collection_Registry } from "../F_Collection_Registry.js";
|
|
2
|
-
export declare function generate_client_library<Collections>(
|
|
2
|
+
export declare function generate_client_library<Collections>(output_path: string, collection_registry: F_Collection_Registry<Collections>, service_name?: string): Promise<void>;
|
|
3
3
|
export declare function get_type_name(collection_id: string, suffix?: string): string;
|
|
4
4
|
export declare function uppercase(str: string): string;
|
|
@@ -2,7 +2,12 @@ import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
|
2
2
|
import { type_from_zod } from "./utils/type_from_zod.js";
|
|
3
3
|
import mustache from 'mustache';
|
|
4
4
|
import { existsSync } from "node:fs";
|
|
5
|
-
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import { normalize, join } from 'path';
|
|
7
|
+
function build_path(...args) {
|
|
8
|
+
return normalize(join(...args));
|
|
9
|
+
}
|
|
10
|
+
export async function generate_client_library(output_path, collection_registry, service_name = 'default-service') {
|
|
6
11
|
let api_builder = {
|
|
7
12
|
mustache_context: {},
|
|
8
13
|
children: {}
|
|
@@ -33,33 +38,33 @@ export async function generate_client_library(path, collection_registry, service
|
|
|
33
38
|
let collection_post_type_definition_builder = [];
|
|
34
39
|
let collection_type_post = type_from_zod(collection.post_validator);
|
|
35
40
|
collection_post_type_definition_builder.push(`export type ${mustache_context.type_post} = ${collection_type_post[0]}`, ...collection_type_post.slice(1));
|
|
36
|
-
if (!existsSync(
|
|
37
|
-
await mkdir(
|
|
41
|
+
if (!existsSync(build_path(output_path, 'src'))) {
|
|
42
|
+
await mkdir(build_path(output_path, 'src'));
|
|
38
43
|
}
|
|
39
|
-
if (!existsSync(
|
|
40
|
-
await mkdir(
|
|
44
|
+
if (!existsSync(build_path(output_path, 'dist'))) {
|
|
45
|
+
await mkdir(build_path(output_path, 'dist'));
|
|
41
46
|
}
|
|
42
|
-
if (!existsSync(
|
|
43
|
-
await mkdir(
|
|
47
|
+
if (!existsSync(build_path(output_path, 'src', 'types'))) {
|
|
48
|
+
await mkdir(build_path(output_path, 'src', 'types'));
|
|
44
49
|
}
|
|
45
|
-
if (!existsSync(
|
|
46
|
-
await mkdir(
|
|
50
|
+
if (!existsSync(build_path(output_path, 'src', 'utils'))) {
|
|
51
|
+
await mkdir(build_path(output_path, 'src', 'utils'));
|
|
47
52
|
}
|
|
48
|
-
await writeFile(
|
|
49
|
-
await writeFile(
|
|
50
|
-
await writeFile(
|
|
51
|
-
await writeFile(
|
|
52
|
-
await writeFile(
|
|
53
|
-
await writeFile(
|
|
54
|
-
await writeFile(
|
|
53
|
+
await writeFile(build_path(output_path, 'src', 'utils', 'utils.ts'), await readFile(fileURLToPath(import.meta.resolve('./templates/utils.ts.mustache')), { encoding: 'utf-8' }));
|
|
54
|
+
await writeFile(build_path(output_path, 'tsconfig.json'), await readFile(fileURLToPath(import.meta.resolve('./templates/tsconfig.json.mustache')), { encoding: 'utf-8' }));
|
|
55
|
+
await writeFile(build_path(output_path, '.gitignore'), await readFile(fileURLToPath(import.meta.resolve('./templates/.gitignore.mustache')), { encoding: 'utf-8' }));
|
|
56
|
+
await writeFile(build_path(output_path, 'src', mustache_context.path_type_return + '.ts'), collection_type_definition_builder.join('\n'));
|
|
57
|
+
await writeFile(build_path(output_path, 'src', mustache_context.path_type_query + '.ts'), collection_query_type_definition_builder.join('\n'));
|
|
58
|
+
await writeFile(build_path(output_path, 'src', mustache_context.path_type_put + '.ts'), collection_put_type_definition_builder.join('\n'));
|
|
59
|
+
await writeFile(build_path(output_path, 'src', mustache_context.path_type_post + '.ts'), collection_post_type_definition_builder.join('\n'));
|
|
55
60
|
for (let access_layer of collection.access_layers) {
|
|
56
61
|
let builder = get_builder(api_builder, access_layer.layers, collection, mustache_context);
|
|
57
62
|
}
|
|
58
63
|
}
|
|
59
|
-
let mustache_main = await readFile(import.meta.resolve('./templates/main.mustache')
|
|
60
|
-
let mustache_types = await readFile(import.meta.resolve('./templates/types.mustache')
|
|
61
|
-
let mustache_collection = await readFile(import.meta.resolve('./templates/collection.mustache')
|
|
62
|
-
let mustache_package = await readFile(import.meta.resolve('./templates/package.json.mustache')
|
|
64
|
+
let mustache_main = await readFile(fileURLToPath(import.meta.resolve('./templates/main.mustache')), { encoding: 'utf-8' });
|
|
65
|
+
let mustache_types = await readFile(fileURLToPath(import.meta.resolve('./templates/types.mustache')), { encoding: 'utf-8' });
|
|
66
|
+
let mustache_collection = await readFile(fileURLToPath(import.meta.resolve('./templates/collection.mustache')), { encoding: 'utf-8' });
|
|
67
|
+
let mustache_package = await readFile(fileURLToPath(import.meta.resolve('./templates/package.json.mustache')), { encoding: 'utf-8' });
|
|
63
68
|
let builder_leaves = [];
|
|
64
69
|
let queue = [api_builder];
|
|
65
70
|
while (queue.length > 0) {
|
|
@@ -102,11 +107,11 @@ export async function generate_client_library(path, collection_registry, service
|
|
|
102
107
|
server_name: service_name
|
|
103
108
|
});
|
|
104
109
|
mustache.escape = original_escape;
|
|
105
|
-
await writeFile([
|
|
110
|
+
await writeFile([output_path, 'src', './index.ts'].join('/'), rendered_index);
|
|
106
111
|
for (let manipulator of rendered_collection_manipulators) {
|
|
107
|
-
await writeFile([
|
|
112
|
+
await writeFile([output_path, 'src', manipulator.builder.mustache_context.my_built_collection_path + '.ts'].join('/'), manipulator.text);
|
|
108
113
|
}
|
|
109
|
-
await writeFile([
|
|
114
|
+
await writeFile([output_path, './package.json'].join('/'), rendered_package_json);
|
|
110
115
|
}
|
|
111
116
|
export function get_type_name(collection_id, suffix) {
|
|
112
117
|
return suffix ? `${collection_id}_${suffix}`.replace(/[^(a-zA-Z0-9\_)]/g, '_') : collection_id.replace(/[^(a-zA-Z0-9\_)]/g, '_');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate_client_library.js","sourceRoot":"","sources":["../../src/code_generation/generate_client_library.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"generate_client_library.js","sourceRoot":"","sources":["../../src/code_generation/generate_client_library.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAYtC,SAAS,UAAU,CAAC,GAAG,IAAc;IACjC,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAc,WAAmB,EAAE,mBAAuD,EAAE,YAAY,GAAG,iBAAiB;IACrK,IAAI,WAAW,GAAgB;QAC3B,gBAAgB,EAAE,EAAE;QACpB,QAAQ,EAAE,EAAE;KACf,CAAC;IAGF,KAAI,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAC,CAAC;QAC3D,IAAI,UAAU,GAAG,GAAgC,CAAC;QAElD,IAAI,gBAAgB,GAAG;YACnB,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;YAEzD,WAAW,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YACzD,gBAAgB,EAAE,SAAS,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YAEpE,UAAU,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ;YAC9D,eAAe,EAAE,SAAS,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ;YAEzE,QAAQ,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM;YAC1D,aAAa,EAAE,SAAS,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM;YAErE,SAAS,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO;YAC5D,cAAc,EAAE,SAAS,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO;SAC1E,CAAA;QAED,IAAI,kCAAkC,GAAG,EAAc,CAAC;QACxD,IAAI,oBAAoB,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC/D,kCAAkC,CAAC,IAAI,CAAC,eAAe,gBAAgB,CAAC,WAAW,MAAM,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtJ,IAAI,wCAAwC,GAAG,EAAc,CAAC;QAC9D,IAAI,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QAC7E,wCAAwC,CAAC,IAAI,CAAC,eAAe,gBAAgB,CAAC,UAAU,MAAM,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7J,IAAI,sCAAsC,GAAG,EAAc,CAAC;QAC5D,IAAI,mBAAmB,GAAG,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAClE,sCAAsC,CAAC,IAAI,CAAC,eAAe,gBAAgB,CAAC,QAAQ,MAAM,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAErJ,IAAI,uCAAuC,GAAG,EAAc,CAAC;QAC7D,IAAI,oBAAoB,GAAG,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACpE,uCAAuC,CAAC,IAAI,CAAC,eAAe,gBAAgB,CAAC,SAAS,MAAM,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzJ,IAAG,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAC,CAAC;YAAC,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QAAC,CAAC;QAC/F,IAAG,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAC,CAAC;YAAC,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QAAC,CAAC;QACjG,IAAG,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,EAAC,CAAC;YAAC,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,CAAC;QACjH,IAAG,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,EAAC,CAAC;YAAC,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,CAAC;QACjH,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACjL,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3K,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACrK,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,CAAC,gBAAgB,GAAG,KAAK,CAAC,EAAE,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1I,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,CAAC,eAAe,GAAG,KAAK,CAAC,EAAE,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/I,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,CAAC,aAAa,GAAG,KAAK,CAAC,EAAE,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3I,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE7I,KAAI,IAAI,YAAY,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,OAAO,GAAG,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAED,IAAI,aAAa,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3H,IAAI,cAAc,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7H,IAAI,mBAAmB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACvI,IAAI,gBAAgB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAEtI,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,KAAK,GAAkB,CAAC,WAAW,CAAC,CAAC;IACzC,OAAM,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAE5B,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,CAAC,gBAAgB,CAAC,yBAAyB,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAA;QACjI,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5D,OAAO;gBACH,aAAa,EAAE,GAAG,CAAC,gBAAgB,CAAC,aAAa;gBACjD,gBAAgB,EAAE,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC;gBAC/D,qBAAqB,EAAE,KAAK,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK;aACjF,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAMD,IAAI,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IAEjC,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAClF,IAAI,gCAAgC,GAAG,EAAE,CAAC;IAE1C,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC3C,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,OAAM,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACjG,OAAO,CAAC,gBAAgB,CAAC,wBAAwB,GAAG,KAAK,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7G,OAAO,CAAC,gBAAgB,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC3F,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACpG,gCAAgC,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAA;QAC/H,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9E,KAAI,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAC,CAAC;YAC9C,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACL,CAAC;IAED,IAAI,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE;QAC1D,WAAW,EAAE,YAAY;KAC5B,CAAC,CAAC;IAIH,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC;IAGlC,MAAM,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,KAAI,IAAI,WAAW,IAAI,gCAAgC,EAAE,CAAC;QACtD,MAAM,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,wBAAkC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvJ,CAAC;IACD,MAAM,SAAS,CAAC,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAqB,EAAE,MAAe;IAChE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACrI,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,KAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QAClB,IAAG,IAAI,KAAK,GAAG,EAAC,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAC,SAAS;QAAA,CAAC;QAClE,IAAG,QAAQ,EAAE,CAAC;YACV,QAAQ,GAAG,KAAK,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACL,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB,EAAE,qBAA+B,EAAE,UAAqC,EAAE,gBAAqB;IACjI,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACnD,OAAM,cAAc,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;QAC7B,IAAI,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAC,CAAC;YACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG;gBAC9B,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,OAAO;aAClB,CAAA;QACL,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,IAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAC,CAAC;QAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG;YACzC,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,OAAO;SAClB,CAAA;IACL,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAErD,IAAG,CAAC,OAAO,CAAC,UAAU,EAAC,CAAC;QACpB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QAChC,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAChD,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -43,25 +43,25 @@ export function query_object_to_mongodb_limits(query, query_object, max_limit =
|
|
|
43
43
|
if (query_object.sort) {
|
|
44
44
|
let sort = {};
|
|
45
45
|
sort[query_object.sort] = query_object.sort_order ? query_object.sort_order : 'ascending';
|
|
46
|
-
query.sort(sort);
|
|
46
|
+
query = query.sort(sort);
|
|
47
47
|
}
|
|
48
48
|
if (query_object.sort_order && !query_object.sort) {
|
|
49
|
-
query.sort({ '_id': query_object.sort_order });
|
|
49
|
+
query = query.sort({ '_id': query_object.sort_order });
|
|
50
50
|
}
|
|
51
51
|
if (query_object.limit) {
|
|
52
|
-
query.limit(Math.min(Number.parseInt(query_object.limit), max_limit));
|
|
52
|
+
query = query.limit(Math.min(Number.parseInt(query_object.limit), max_limit));
|
|
53
53
|
}
|
|
54
54
|
else {
|
|
55
|
-
query.limit(max_limit);
|
|
55
|
+
query = query.limit(max_limit);
|
|
56
56
|
}
|
|
57
57
|
if (query_object.cursor) {
|
|
58
|
-
if (query_object.sort === '_id' && query_object.sort_order === 'descending') {
|
|
59
|
-
query.sort({ '_id': 'descending' });
|
|
60
|
-
query.lt('_id', query_object.cursor);
|
|
58
|
+
if ((query_object.sort === '_id' || query_object.sort === undefined) && query_object.sort_order === 'descending') {
|
|
59
|
+
query = query.sort({ '_id': 'descending' });
|
|
60
|
+
query = query.lt('_id', query_object.cursor);
|
|
61
61
|
}
|
|
62
62
|
else {
|
|
63
|
-
query.sort({ '_id': 'ascending' });
|
|
64
|
-
query.gt('_id', query_object.cursor);
|
|
63
|
+
query = query.sort({ '_id': 'ascending' });
|
|
64
|
+
query = query.gt('_id', query_object.cursor);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
return query;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query_object_to_mongodb_query.js","sourceRoot":"","sources":["../../src/utils/query_object_to_mongodb_query.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,IAAI,iBAAiB,GAAG;IAC3B,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IAQd,KAAK,EAAE,KAAK;CACf,CAAA;AAED,MAAM,CAAC,IAAI,cAAc,GAAG;IACxB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,YAAY,EAAE,IAAI;CAErB,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,YAAiB;IAC1C,KAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAC,CAAC;QAClD,IAAG,KAAK,KAAK,MAAM,EAAC,CAAC;YACjB,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,YAAiB;IAC3D,IAAI,MAAM,GAAG,EAAS,CAAC;IAEvB,KAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAC,CAAC;QAClD,IAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC1D,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAmC,CAAC;QACrH,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAExD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAS,CAAC;YAAC,CAAC;YAChE,MAAM,CAAC,YAAY,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC;QACpE,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAiC,EAAE,YAAiB,EAAE,SAAS,GAAG,GAAG;IAChH,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,IAAI,GAAG,EAAS,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;QAC1F,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"query_object_to_mongodb_query.js","sourceRoot":"","sources":["../../src/utils/query_object_to_mongodb_query.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/F_Compile.ts
CHANGED
|
@@ -51,13 +51,15 @@ export function compile<Collection_ID extends string, ZodSchema extends z.ZodObj
|
|
|
51
51
|
for(let access_layers of collection.access_layers){
|
|
52
52
|
let base_layers_path_components = access_layers.layers.flatMap(ele => [ele, ':' + ele]);
|
|
53
53
|
|
|
54
|
-
|
|
55
54
|
let get_one_path = [
|
|
56
55
|
api_prefix,
|
|
57
56
|
...base_layers_path_components,
|
|
58
57
|
`${collection.collection_id}/:document_id`
|
|
59
58
|
].join('/')
|
|
60
59
|
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
61
63
|
//console.log(get_one_path);
|
|
62
64
|
|
|
63
65
|
// get individual document
|
|
@@ -147,7 +149,12 @@ export function compile<Collection_ID extends string, ZodSchema extends z.ZodObj
|
|
|
147
149
|
try {
|
|
148
150
|
//@ts-expect-error
|
|
149
151
|
let query = collection.mongoose_model.find(find, undefined, { 'lean': true });
|
|
150
|
-
|
|
152
|
+
if(validated_query_args.sort && validated_query_args.cursor) {
|
|
153
|
+
res.status(400);
|
|
154
|
+
res.json({ error: 'you cannot use both a cursor and a sort.' });
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
let fetch = query_object_to_mongodb_limits(query, validated_query_args);
|
|
151
158
|
documents = await fetch;
|
|
152
159
|
} catch(err){
|
|
153
160
|
if (err.name == 'CastError') {
|
|
@@ -5,6 +5,8 @@ import { type_from_zod } from "./utils/type_from_zod.js";
|
|
|
5
5
|
import mustache from 'mustache'
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
7
|
import { pretty_print } from "../utils/pretty_print_zod.js";
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
9
|
+
import { normalize, join } from 'path'
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
type api_builder = {
|
|
@@ -16,8 +18,12 @@ type api_builder = {
|
|
|
16
18
|
parent?: api_builder
|
|
17
19
|
}
|
|
18
20
|
|
|
21
|
+
function build_path(...args: string[]){
|
|
22
|
+
return normalize(join(...args));
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
|
|
20
|
-
export async function generate_client_library<Collections>(
|
|
26
|
+
export async function generate_client_library<Collections>(output_path: string, collection_registry: F_Collection_Registry<Collections>, service_name = 'default-service') {
|
|
21
27
|
let api_builder: api_builder = {
|
|
22
28
|
mustache_context: {},
|
|
23
29
|
children: {}
|
|
@@ -60,27 +66,27 @@ export async function generate_client_library<Collections>(path: string, collect
|
|
|
60
66
|
let collection_type_post = type_from_zod(collection.post_validator);
|
|
61
67
|
collection_post_type_definition_builder.push(`export type ${mustache_context.type_post} = ${collection_type_post[0]}`, ...collection_type_post.slice(1));
|
|
62
68
|
|
|
63
|
-
if(!existsSync(
|
|
64
|
-
if(!existsSync(
|
|
65
|
-
if(!existsSync(
|
|
66
|
-
if(!existsSync(
|
|
67
|
-
await writeFile(
|
|
68
|
-
await writeFile(
|
|
69
|
-
await writeFile(
|
|
70
|
-
await writeFile(
|
|
71
|
-
await writeFile(
|
|
72
|
-
await writeFile(
|
|
73
|
-
await writeFile(
|
|
69
|
+
if(!existsSync(build_path(output_path, 'src'))){ await mkdir(build_path(output_path, 'src')); }
|
|
70
|
+
if(!existsSync(build_path(output_path, 'dist'))){ await mkdir(build_path(output_path, 'dist')); }
|
|
71
|
+
if(!existsSync(build_path(output_path, 'src', 'types'))){ await mkdir(build_path(output_path, 'src', 'types')); }
|
|
72
|
+
if(!existsSync(build_path(output_path, 'src', 'utils'))){ await mkdir(build_path(output_path, 'src', 'utils')); }
|
|
73
|
+
await writeFile(build_path(output_path, 'src', 'utils', 'utils.ts'), await readFile(fileURLToPath(import.meta.resolve('./templates/utils.ts.mustache')), { encoding: 'utf-8' }));
|
|
74
|
+
await writeFile(build_path(output_path, 'tsconfig.json'), await readFile(fileURLToPath(import.meta.resolve('./templates/tsconfig.json.mustache')), { encoding: 'utf-8' }));
|
|
75
|
+
await writeFile(build_path(output_path, '.gitignore'), await readFile(fileURLToPath(import.meta.resolve('./templates/.gitignore.mustache')), { encoding: 'utf-8' }));
|
|
76
|
+
await writeFile(build_path(output_path, 'src', mustache_context.path_type_return + '.ts'), collection_type_definition_builder.join('\n'));
|
|
77
|
+
await writeFile(build_path(output_path, 'src', mustache_context.path_type_query + '.ts'), collection_query_type_definition_builder.join('\n'));
|
|
78
|
+
await writeFile(build_path(output_path, 'src', mustache_context.path_type_put + '.ts'), collection_put_type_definition_builder.join('\n'));
|
|
79
|
+
await writeFile(build_path(output_path, 'src', mustache_context.path_type_post + '.ts'), collection_post_type_definition_builder.join('\n'));
|
|
74
80
|
|
|
75
81
|
for(let access_layer of collection.access_layers) {
|
|
76
82
|
let builder = get_builder(api_builder, access_layer.layers, collection, mustache_context);
|
|
77
83
|
}
|
|
78
84
|
}
|
|
79
85
|
|
|
80
|
-
let mustache_main = await readFile(import.meta.resolve('./templates/main.mustache')
|
|
81
|
-
let mustache_types = await readFile(import.meta.resolve('./templates/types.mustache')
|
|
82
|
-
let mustache_collection = await readFile(import.meta.resolve('./templates/collection.mustache')
|
|
83
|
-
let mustache_package = await readFile(import.meta.resolve('./templates/package.json.mustache')
|
|
86
|
+
let mustache_main = await readFile(fileURLToPath(import.meta.resolve('./templates/main.mustache')), { encoding: 'utf-8' });
|
|
87
|
+
let mustache_types = await readFile(fileURLToPath(import.meta.resolve('./templates/types.mustache')), { encoding: 'utf-8' });
|
|
88
|
+
let mustache_collection = await readFile(fileURLToPath(import.meta.resolve('./templates/collection.mustache')), { encoding: 'utf-8' });
|
|
89
|
+
let mustache_package = await readFile(fileURLToPath(import.meta.resolve('./templates/package.json.mustache')), { encoding: 'utf-8' });
|
|
84
90
|
|
|
85
91
|
let builder_leaves = [];
|
|
86
92
|
let queue: api_builder[] = [api_builder];
|
|
@@ -138,11 +144,11 @@ export async function generate_client_library<Collections>(path: string, collect
|
|
|
138
144
|
mustache.escape = original_escape;
|
|
139
145
|
|
|
140
146
|
|
|
141
|
-
await writeFile([
|
|
147
|
+
await writeFile([output_path, 'src', './index.ts'].join('/'), rendered_index);
|
|
142
148
|
for(let manipulator of rendered_collection_manipulators) {
|
|
143
|
-
await writeFile([
|
|
149
|
+
await writeFile([output_path, 'src', manipulator.builder.mustache_context.my_built_collection_path as string + '.ts'].join('/'), manipulator.text);
|
|
144
150
|
}
|
|
145
|
-
await writeFile([
|
|
151
|
+
await writeFile([output_path, './package.json'].join('/'), rendered_package_json);
|
|
146
152
|
}
|
|
147
153
|
|
|
148
154
|
export function get_type_name(collection_id: string, suffix?: string): string {
|
|
@@ -55,26 +55,26 @@ export function query_object_to_mongodb_limits(query: QueryWithHelpers<any, any>
|
|
|
55
55
|
if (query_object.sort) {
|
|
56
56
|
let sort = {} as any;
|
|
57
57
|
sort[query_object.sort] = query_object.sort_order ? query_object.sort_order : 'ascending';
|
|
58
|
-
query.sort(sort)
|
|
58
|
+
query = query.sort(sort)
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
if (query_object.sort_order && !query_object.sort) {
|
|
62
|
-
query.sort({ '_id': query_object.sort_order })
|
|
62
|
+
query = query.sort({ '_id': query_object.sort_order })
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
if (query_object.limit) {
|
|
66
|
-
query.limit(Math.min(Number.parseInt(query_object.limit), max_limit));
|
|
66
|
+
query = query.limit(Math.min(Number.parseInt(query_object.limit), max_limit));
|
|
67
67
|
} else {
|
|
68
|
-
query.limit(max_limit);
|
|
68
|
+
query = query.limit(max_limit);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
if (query_object.cursor) {
|
|
72
|
-
if (query_object.sort === '_id' && query_object.sort_order === 'descending') {
|
|
73
|
-
query.sort({ '_id': 'descending' });
|
|
74
|
-
query.lt('_id', query_object.cursor);
|
|
72
|
+
if ((query_object.sort === '_id' || query_object.sort === undefined) && query_object.sort_order === 'descending') {
|
|
73
|
+
query = query.sort({ '_id': 'descending' });
|
|
74
|
+
query = query.lt('_id', query_object.cursor);
|
|
75
75
|
} else {
|
|
76
|
-
query.sort({ '_id': 'ascending' });
|
|
77
|
-
query.gt('_id', query_object.cursor);
|
|
76
|
+
query = query.sort({ '_id': 'ascending' });
|
|
77
|
+
query = query.gt('_id', query_object.cursor);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
|
|
@@ -22,22 +22,26 @@ describe('query validator to mongodb query', function () {
|
|
|
22
22
|
|
|
23
23
|
sort(sort){
|
|
24
24
|
this.meta.sort = sort;
|
|
25
|
+
return this;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
limit(limit){
|
|
28
29
|
this.meta.limit = limit;
|
|
30
|
+
return this;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
gt(path, value){
|
|
32
34
|
this.filter[path] = {
|
|
33
35
|
$gt: value
|
|
34
36
|
}
|
|
37
|
+
return this;
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
lt(path, value){
|
|
38
41
|
this.filter[path] = {
|
|
39
42
|
$lt: value
|
|
40
43
|
}
|
|
44
|
+
return this;
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
|
|
@@ -256,6 +256,181 @@ describe('Basic Server', function () {
|
|
|
256
256
|
assert.deepEqual(JSON.parse(JSON.stringify(test_projects)), results.data);
|
|
257
257
|
});
|
|
258
258
|
|
|
259
|
+
it(`should be able to perform a GET multiple operation with a limit`, async function () {
|
|
260
|
+
let test_institutions = []
|
|
261
|
+
for(let q = 0; q < 5; q++){
|
|
262
|
+
let test_institution = await institution.mongoose_model.create({
|
|
263
|
+
name: ['spandex co',
|
|
264
|
+
'the ordinary institute',
|
|
265
|
+
'saliva branding collective',
|
|
266
|
+
'united league of billionare communitsts',
|
|
267
|
+
'geriatric co',
|
|
268
|
+
'jousing club of omaha, nebraska',
|
|
269
|
+
'dental hygenist paratrooper union',
|
|
270
|
+
'martha stewart\'s cannibal fan club',
|
|
271
|
+
'wrecking ball operator crochet club',
|
|
272
|
+
'accidental co'
|
|
273
|
+
][q]
|
|
274
|
+
});
|
|
275
|
+
//@ts-ignore
|
|
276
|
+
test_institutions.push(test_institution);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
let results = await got.get(`http://localhost:${port}/api/institution?limit=2`).json();
|
|
280
|
+
|
|
281
|
+
//@ts-ignore
|
|
282
|
+
assert.deepEqual(JSON.parse(JSON.stringify(test_institutions)).slice(0, 2), results.data);
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
it(`should be able to perform a GET multiple operation with a cursor`, async function () {
|
|
286
|
+
let test_institutions = []
|
|
287
|
+
for(let q = 0; q < 5; q++){
|
|
288
|
+
let test_institution = await institution.mongoose_model.create({
|
|
289
|
+
name: ['spandex co',
|
|
290
|
+
'the ordinary institute',
|
|
291
|
+
'saliva branding collective',
|
|
292
|
+
'united league of billionare communitsts',
|
|
293
|
+
'geriatric co',
|
|
294
|
+
'jousing club of omaha, nebraska',
|
|
295
|
+
'dental hygenist paratrooper union',
|
|
296
|
+
'martha stewart\'s cannibal fan club',
|
|
297
|
+
'wrecking ball operator crochet club',
|
|
298
|
+
'accidental co'
|
|
299
|
+
][q]
|
|
300
|
+
});
|
|
301
|
+
//@ts-ignore
|
|
302
|
+
test_institutions.push(test_institution);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
let results = await got.get(`http://localhost:${port}/api/institution?cursor=${test_institutions[2]._id}`).json();
|
|
306
|
+
|
|
307
|
+
//@ts-ignore
|
|
308
|
+
assert.deepEqual(JSON.parse(JSON.stringify(test_institutions)).slice(3), results.data);
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
it(`should be able to perform a GET multiple operation with a sort`, async function () {
|
|
312
|
+
let test_institutions = []
|
|
313
|
+
for(let q = 0; q < 5; q++){
|
|
314
|
+
let test_institution = await institution.mongoose_model.create({
|
|
315
|
+
name: ['spandex co',
|
|
316
|
+
'the ordinary institute',
|
|
317
|
+
'saliva branding collective',
|
|
318
|
+
'united league of billionare communitsts',
|
|
319
|
+
'geriatric co',
|
|
320
|
+
'jousing club of omaha, nebraska',
|
|
321
|
+
'dental hygenist paratrooper union',
|
|
322
|
+
'martha stewart\'s cannibal fan club',
|
|
323
|
+
'wrecking ball operator crochet club',
|
|
324
|
+
'accidental co'
|
|
325
|
+
][q]
|
|
326
|
+
});
|
|
327
|
+
//@ts-ignore
|
|
328
|
+
test_institutions.push(test_institution);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
let results = await got.get(`http://localhost:${port}/api/institution?sort=name`).json();
|
|
332
|
+
|
|
333
|
+
//@ts-ignore
|
|
334
|
+
assert.deepEqual(JSON.parse(JSON.stringify(test_institutions)).sort((a, b) => a.name.localeCompare(b.name)), results.data);
|
|
335
|
+
});
|
|
336
|
+
|
|
337
|
+
it(`should be able to perform a GET multiple operation with a sort and sort order`, async function () {
|
|
338
|
+
let test_institutions = []
|
|
339
|
+
for(let q = 0; q < 5; q++){
|
|
340
|
+
let test_institution = await institution.mongoose_model.create({
|
|
341
|
+
name: ['spandex co',
|
|
342
|
+
'the ordinary institute',
|
|
343
|
+
'saliva branding collective',
|
|
344
|
+
'united league of billionare communitsts',
|
|
345
|
+
'geriatric co',
|
|
346
|
+
'jousing club of omaha, nebraska',
|
|
347
|
+
'dental hygenist paratrooper union',
|
|
348
|
+
'martha stewart\'s cannibal fan club',
|
|
349
|
+
'wrecking ball operator crochet club',
|
|
350
|
+
'accidental co'
|
|
351
|
+
][q]
|
|
352
|
+
});
|
|
353
|
+
//@ts-ignore
|
|
354
|
+
test_institutions.push(test_institution);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
let results = await got.get(`http://localhost:${port}/api/institution?sort=name&sort_order=descending`).json();
|
|
358
|
+
|
|
359
|
+
//@ts-ignore
|
|
360
|
+
assert.deepEqual(JSON.parse(JSON.stringify(test_institutions)).sort((a, b) => b.name.localeCompare(a.name)), results.data);
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
it(`should be able to perform a GET multiple operation with a cursor and sort order descending`, async function () {
|
|
364
|
+
let test_institutions = []
|
|
365
|
+
for(let q = 0; q < 5; q++){
|
|
366
|
+
let test_institution = await institution.mongoose_model.create({
|
|
367
|
+
name: ['spandex co',
|
|
368
|
+
'the ordinary institute',
|
|
369
|
+
'saliva branding collective',
|
|
370
|
+
'united league of billionare communitsts',
|
|
371
|
+
'geriatric co',
|
|
372
|
+
'jousing club of omaha, nebraska',
|
|
373
|
+
'dental hygenist paratrooper union',
|
|
374
|
+
'martha stewart\'s cannibal fan club',
|
|
375
|
+
'wrecking ball operator crochet club',
|
|
376
|
+
'accidental co'
|
|
377
|
+
][q]
|
|
378
|
+
});
|
|
379
|
+
//@ts-ignore
|
|
380
|
+
test_institutions.push(test_institution);
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
let results = await got.get(`http://localhost:${port}/api/institution?cursor=${test_institutions[2]._id}&sort_order=descending`).json();
|
|
384
|
+
|
|
385
|
+
//@ts-ignore
|
|
386
|
+
assert.deepEqual(JSON.parse(JSON.stringify(test_institutions.slice().reverse().slice(3))), results.data);
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
it(`should be able to perform a GET multiple operation with a cursor and sort order ascending`, async function () {
|
|
390
|
+
let test_institutions = []
|
|
391
|
+
for(let q = 0; q < 5; q++){
|
|
392
|
+
let test_institution = await institution.mongoose_model.create({
|
|
393
|
+
name: ['spandex co',
|
|
394
|
+
'the ordinary institute',
|
|
395
|
+
'saliva branding collective',
|
|
396
|
+
'united league of billionare communitsts',
|
|
397
|
+
'geriatric co'
|
|
398
|
+
][q]
|
|
399
|
+
});
|
|
400
|
+
//@ts-ignore
|
|
401
|
+
test_institutions.push(test_institution);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
let results = await got.get(`http://localhost:${port}/api/institution?cursor=${test_institutions[2]._id}&sort_order=ascending`).json();
|
|
405
|
+
|
|
406
|
+
//@ts-ignore
|
|
407
|
+
assert.deepEqual(JSON.parse(JSON.stringify(test_institutions.slice(3))), results.data);
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
it(`should break if you try to use both sort and cursor`, async function () {
|
|
411
|
+
let test_institutions = []
|
|
412
|
+
for(let q = 0; q < 5; q++){
|
|
413
|
+
let test_institution = await institution.mongoose_model.create({
|
|
414
|
+
name: ['spandex co',
|
|
415
|
+
'the ordinary institute',
|
|
416
|
+
'saliva branding collective',
|
|
417
|
+
'united league of billionare communitsts',
|
|
418
|
+
'geriatric co',
|
|
419
|
+
'jousing club of omaha, nebraska',
|
|
420
|
+
'dental hygenist paratrooper union',
|
|
421
|
+
'martha stewart\'s cannibal fan club',
|
|
422
|
+
'wrecking ball operator crochet club',
|
|
423
|
+
'accidental co'
|
|
424
|
+
][q]
|
|
425
|
+
});
|
|
426
|
+
//@ts-ignore
|
|
427
|
+
test_institutions.push(test_institution);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
assert.rejects(async () => {
|
|
431
|
+
return await got.get(`http://localhost:${port}/api/institution?sort=name&cursor=${test_institutions[2]._id}`).json();
|
|
432
|
+
})
|
|
433
|
+
});
|
|
259
434
|
|
|
260
435
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
261
436
|
///////////////////////////////////////////////////////////// PUT ////////////////////////////////////////////////////////////////////////////////////
|