@aeriajs/core 0.0.240 → 0.0.242

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.
@@ -2,7 +2,7 @@ import type { FixedObjectProperty, Description } from '@aeriajs/types';
2
2
  import type { Document } from 'mongodb';
3
3
  export type Reference = {
4
4
  isArray?: boolean;
5
- isArrayElement?: boolean;
5
+ isArrayOrArrayElement?: boolean;
6
6
  isInline?: boolean;
7
7
  isRecursive?: boolean;
8
8
  deepReferences?: ReferenceMap;
@@ -16,7 +16,7 @@ export type GetReferenceOptions = {
16
16
  depth?: number;
17
17
  maxDepth?: number;
18
18
  populate?: string[];
19
- isArrayElement?: boolean;
19
+ isArrayOrArrayElement?: boolean;
20
20
  };
21
21
  export type BuildLookupPipelineOptions = {
22
22
  rootPipeline?: Document[];
@@ -9,7 +9,7 @@ const getTempName = (path) => {
9
9
  const referenceMemo = {};
10
10
  const lookupMemo = {};
11
11
  const getReferences = async (properties, options = {}) => {
12
- const { depth = 0, maxDepth = 3, memoize, populate, isArrayElement, } = options;
12
+ const { depth = 0, maxDepth = 3, memoize, populate, isArrayOrArrayElement, } = options;
13
13
  if (memoize) {
14
14
  if (referenceMemo[memoize]) {
15
15
  return referenceMemo[memoize];
@@ -35,7 +35,7 @@ const getReferences = async (properties, options = {}) => {
35
35
  populate: refProperty.populate
36
36
  ? Array.from(refProperty.populate)
37
37
  : undefined,
38
- isArrayElement: 'items' in property,
38
+ isArrayOrArrayElement: 'items' in property,
39
39
  });
40
40
  if (Object.keys(deepReferences).length > 0) {
41
41
  reference.deepReferences = deepReferences;
@@ -69,8 +69,8 @@ const getReferences = async (properties, options = {}) => {
69
69
  if ('items' in property) {
70
70
  reference.isArray = true;
71
71
  }
72
- if (isArrayElement) {
73
- reference.isArrayElement = true;
72
+ if ('items' in property || isArrayOrArrayElement) {
73
+ reference.isArrayOrArrayElement = true;
74
74
  }
75
75
  if (depth > 0) {
76
76
  reference.isRecursive = true;
@@ -95,7 +95,7 @@ const recurseSetStage = (reference, path, parentElem, options = {
95
95
  noCond: false,
96
96
  }) => {
97
97
  const [refName, isRef] = path.at(-1);
98
- const shouldUseArrayIndex = reference.isRecursive && !(reference.isArrayElement && reference.isArray === false);
98
+ const shouldUseArrayIndex = reference.isRecursive && !(reference.isArrayOrArrayElement && reference.isArray === false);
99
99
  let indexOfArray;
100
100
  if (shouldUseArrayIndex) {
101
101
  if (isRef) {
@@ -155,7 +155,7 @@ const recurseSetStage = (reference, path, parentElem, options = {
155
155
  }
156
156
  let mapInput = parentElem;
157
157
  if (reference.isRecursive) {
158
- if (reference.isArrayElement) {
158
+ if (reference.isArrayOrArrayElement) {
159
159
  mapInput = {
160
160
  $arrayElemAt: [
161
161
  `$${getTempName(path.slice(0, -1))}.${refName}`,
@@ -12,7 +12,7 @@ export const getReferences = async (properties, options = {}) => {
12
12
  maxDepth = 3,
13
13
  memoize,
14
14
  populate,
15
- isArrayElement
15
+ isArrayOrArrayElement
16
16
  } = options;
17
17
  if (memoize) {
18
18
  if (referenceMemo[memoize]) {
@@ -37,7 +37,7 @@ export const getReferences = async (properties, options = {}) => {
37
37
  maxDepth: refProperty.populateDepth || maxDepth,
38
38
  memoize: `${memoize}.${propName}`,
39
39
  populate: refProperty.populate ? Array.from(refProperty.populate) : void 0,
40
- isArrayElement: "items" in property
40
+ isArrayOrArrayElement: "items" in property
41
41
  });
42
42
  if (Object.keys(deepReferences).length > 0) {
43
43
  reference.deepReferences = deepReferences;
@@ -63,8 +63,8 @@ export const getReferences = async (properties, options = {}) => {
63
63
  if ("items" in property) {
64
64
  reference.isArray = true;
65
65
  }
66
- if (isArrayElement) {
67
- reference.isArrayElement = true;
66
+ if ("items" in property || isArrayOrArrayElement) {
67
+ reference.isArrayOrArrayElement = true;
68
68
  }
69
69
  if (depth > 0) {
70
70
  reference.isRecursive = true;
@@ -88,7 +88,7 @@ export const recurseSetStage = (reference, path, parentElem, options = {
88
88
  noCond: false
89
89
  }) => {
90
90
  const [refName, isRef] = path.at(-1);
91
- const shouldUseArrayIndex = reference.isRecursive && !(reference.isArrayElement && reference.isArray === false);
91
+ const shouldUseArrayIndex = reference.isRecursive && !(reference.isArrayOrArrayElement && reference.isArray === false);
92
92
  let indexOfArray;
93
93
  if (shouldUseArrayIndex) {
94
94
  if (isRef) {
@@ -145,7 +145,7 @@ export const recurseSetStage = (reference, path, parentElem, options = {
145
145
  }
146
146
  let mapInput = parentElem;
147
147
  if (reference.isRecursive) {
148
- if (reference.isArrayElement) {
148
+ if (reference.isArrayOrArrayElement) {
149
149
  mapInput = {
150
150
  $arrayElemAt: [
151
151
  `$${getTempName(path.slice(0, -1))}.${refName}`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeriajs/core",
3
- "version": "0.0.240",
3
+ "version": "0.0.242",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "aeriaMain": "tests/fixtures/aeriaMain.js",
@@ -42,11 +42,11 @@
42
42
  "mongodb-memory-server": "^9.2.0"
43
43
  },
44
44
  "peerDependencies": {
45
- "@aeriajs/builtins": "^0.0.240",
45
+ "@aeriajs/builtins": "^0.0.242",
46
46
  "@aeriajs/common": "^0.0.136",
47
47
  "@aeriajs/entrypoint": "^0.0.140",
48
48
  "@aeriajs/http": "^0.0.164",
49
- "@aeriajs/security": "^0.0.240",
49
+ "@aeriajs/security": "^0.0.242",
50
50
  "@aeriajs/types": "^0.0.118",
51
51
  "@aeriajs/validation": "^0.0.152"
52
52
  },