abmp-npm 2.0.1 → 2.0.3
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.
|
@@ -42,7 +42,7 @@ const ensureUniqueUrl = async ({ url, memberId, fullName }) => {
|
|
|
42
42
|
excludeDropped: true,
|
|
43
43
|
excludeSearchedMember: true,
|
|
44
44
|
memberId,
|
|
45
|
-
|
|
45
|
+
normalizeSlugForComparison: true,
|
|
46
46
|
});
|
|
47
47
|
if (existingMember && existingMember.url) {
|
|
48
48
|
console.log(
|
|
@@ -108,7 +108,7 @@ async function findMemberById(memberId) {
|
|
|
108
108
|
* @param {boolean} options.excludeDropped - Whether to exclude dropped members (default: true)
|
|
109
109
|
* @param {boolean} options.excludeSearchedMember - Whether to exclude a specific member (default: false)
|
|
110
110
|
* @param {string|number} [options.memberId] - Member ID to exclude when excludeSearchedMember is true (optional)
|
|
111
|
-
* @param {boolean} [options.
|
|
111
|
+
* @param {boolean} [options.normalizeSlugForComparison=false] - Whether to normalize the slug for comparison (default: false)
|
|
112
112
|
* @returns {Promise<Object|null>} - Member data or null if not found
|
|
113
113
|
*/
|
|
114
114
|
async function getMemberBySlug({
|
|
@@ -116,7 +116,7 @@ async function getMemberBySlug({
|
|
|
116
116
|
excludeDropped = true,
|
|
117
117
|
excludeSearchedMember = false,
|
|
118
118
|
memberId = null,
|
|
119
|
-
|
|
119
|
+
normalizeSlugForComparison = false,
|
|
120
120
|
}) {
|
|
121
121
|
if (!slug) return null;
|
|
122
122
|
|
|
@@ -130,17 +130,12 @@ async function getMemberBySlug({
|
|
|
130
130
|
if (excludeSearchedMember && memberId) {
|
|
131
131
|
query = query.ne('memberId', memberId);
|
|
132
132
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
query = query.limit(1000);
|
|
136
|
-
membersList = await queryAllItems(query);
|
|
137
|
-
} else {
|
|
138
|
-
membersList = await query.find().then(res => res.items);
|
|
139
|
-
}
|
|
133
|
+
query = query.limit(1000);
|
|
134
|
+
const membersList = await queryAllItems(query);
|
|
140
135
|
let matchingMembers = membersList.filter(
|
|
141
136
|
item => item.url && item.url.toLowerCase() === slug.toLowerCase()
|
|
142
137
|
);
|
|
143
|
-
if (
|
|
138
|
+
if (normalizeSlugForComparison) {
|
|
144
139
|
matchingMembers = membersList
|
|
145
140
|
.filter(
|
|
146
141
|
//remove trailing "-1", "-2", etc.
|
|
@@ -152,7 +147,7 @@ async function getMemberBySlug({
|
|
|
152
147
|
const queryResultMsg = `Multiple members found with same slug ${slug} membersIds are : [${matchingMembers
|
|
153
148
|
.map(member => member.memberId)
|
|
154
149
|
.join(', ')}]`;
|
|
155
|
-
if (!
|
|
150
|
+
if (!normalizeSlugForComparison) {
|
|
156
151
|
throw new Error(queryResultMsg);
|
|
157
152
|
} else {
|
|
158
153
|
console.log(queryResultMsg);
|