@gooddaydev/common 1.0.4 → 1.0.9
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 +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +1 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -3
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +3 -3
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +2 -2
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +58 -26
- package/types/base/base.service.d.ts +27 -12
- package/types/base/base.service.d.ts.map +1 -1
- package/.editorconfig +0 -13
- package/.eslintignore +0 -7
- package/.eslintrc.js +0 -28
- package/.gitattributes +0 -9
- package/.github/workflows/publish.yml +0 -49
- package/.prettierignore +0 -7
- package/jest.config.js +0 -13
- package/prettier.config.js +0 -15
- package/rollup.config.mjs +0 -75
- package/setup.js +0 -128
- package/src/base/base.service.ts +0 -103
- package/src/enum/user-type.enum.ts +0 -5
- package/src/index.ts +0 -5
- package/tsconfig.bundle.json +0 -19
- package/tsconfig.json +0 -35
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
# common
|
|
1
|
+
# common
|
package/dist/index.cjs
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @gooddaydev/common v1.0.
|
|
2
|
+
* @gooddaydev/common v1.0.9
|
|
3
3
|
* (c) undefined
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
10
|
+
|
|
9
11
|
/******************************************************************************
|
|
10
12
|
Copyright (c) Microsoft Corporation.
|
|
11
13
|
|
|
@@ -20,8 +22,6 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
20
22
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
21
23
|
PERFORMANCE OF THIS SOFTWARE.
|
|
22
24
|
***************************************************************************** */
|
|
23
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
24
|
-
|
|
25
25
|
|
|
26
26
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
27
27
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter:
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter: {\n column: string;\n state: 'asc' | 'desc';\n };\n filter: Record<string, unknown>;\n lean: boolean;\n}\n\ninterface PaginateModel<T> {\n paginate(\n filter: Record<string, unknown>,\n options: {\n page: number;\n limit: number;\n sort: Record<string, 'asc' | 'desc'>;\n lean: boolean;\n },\n ): Promise<PaginateResult<T>>;\n}\n\ninterface PaginateResult<T> {\n docs: T[];\n totalDocs: number;\n limit: number;\n totalPages: number;\n page: number;\n pagingCounter: number;\n hasPrevPage: boolean;\n hasNextPage: boolean;\n prevPage: number | null;\n nextPage: number | null;\n}\n\nclass BaseService<T extends Document, CreateDto> {\n constructor(private readonly model: SoftDeleteModel<T> & PaginateModel<T>) {\n this.model = model;\n }\n\n async index(query: IQueryOptions) {\n const sort = { [query.sorter.column]: query.sorter.state };\n\n return await this.model.paginate(query.filter, {\n page: query.page,\n limit: query.limit,\n sort: sort,\n lean: query.lean,\n });\n }\n\n async create(data: CreateDto | CreateDto[]): Promise<T> {\n return await this.model.create(data);\n }\n\n async find(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T[], T>> {\n return await this.model.find(filter, projection, options);\n }\n\n async findOne(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findOne(filter, projection, options);\n }\n\n async findById(\n id: string | ObjectId,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findById(id, projection, options);\n }\n\n async updateOne(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<boolean> {\n return (await this.model.updateOne(args, set, options as UpdateQuery<T>))\n .acknowledged;\n }\n\n async updateMany(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<number> {\n return (await this.model.updateMany(args, set, options as UpdateQuery<T>))\n .modifiedCount;\n }\n\n async deleteOne(args: Record<string, unknown>): Promise<boolean> {\n return (await this.model.deleteOne(args)).acknowledged;\n }\n\n async deleteMany(args: Record<string, unknown>): Promise<number> {\n return (await this.model.deleteMany(args)).deletedCount;\n }\n}\n\nexport { BaseService };\n","export enum UserType {\n ADMIN = 'admin',\n USER = 'user',\n}\n"],"names":["UserType"],"mappings":"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"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @gooddaydev/common v1.0.
|
|
2
|
+
* @gooddaydev/common v1.0.9
|
|
3
3
|
* (c) undefined
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -18,8 +18,6 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
18
18
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
19
19
|
PERFORMANCE OF THIS SOFTWARE.
|
|
20
20
|
***************************************************************************** */
|
|
21
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
22
|
-
|
|
23
21
|
|
|
24
22
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
25
23
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter:
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter: {\n column: string;\n state: 'asc' | 'desc';\n };\n filter: Record<string, unknown>;\n lean: boolean;\n}\n\ninterface PaginateModel<T> {\n paginate(\n filter: Record<string, unknown>,\n options: {\n page: number;\n limit: number;\n sort: Record<string, 'asc' | 'desc'>;\n lean: boolean;\n },\n ): Promise<PaginateResult<T>>;\n}\n\ninterface PaginateResult<T> {\n docs: T[];\n totalDocs: number;\n limit: number;\n totalPages: number;\n page: number;\n pagingCounter: number;\n hasPrevPage: boolean;\n hasNextPage: boolean;\n prevPage: number | null;\n nextPage: number | null;\n}\n\nclass BaseService<T extends Document, CreateDto> {\n constructor(private readonly model: SoftDeleteModel<T> & PaginateModel<T>) {\n this.model = model;\n }\n\n async index(query: IQueryOptions) {\n const sort = { [query.sorter.column]: query.sorter.state };\n\n return await this.model.paginate(query.filter, {\n page: query.page,\n limit: query.limit,\n sort: sort,\n lean: query.lean,\n });\n }\n\n async create(data: CreateDto | CreateDto[]): Promise<T> {\n return await this.model.create(data);\n }\n\n async find(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T[], T>> {\n return await this.model.find(filter, projection, options);\n }\n\n async findOne(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findOne(filter, projection, options);\n }\n\n async findById(\n id: string | ObjectId,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findById(id, projection, options);\n }\n\n async updateOne(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<boolean> {\n return (await this.model.updateOne(args, set, options as UpdateQuery<T>))\n .acknowledged;\n }\n\n async updateMany(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<number> {\n return (await this.model.updateMany(args, set, options as UpdateQuery<T>))\n .modifiedCount;\n }\n\n async deleteOne(args: Record<string, unknown>): Promise<boolean> {\n return (await this.model.deleteOne(args)).acknowledged;\n }\n\n async deleteMany(args: Record<string, unknown>): Promise<number> {\n return (await this.model.deleteMany(args)).deletedCount;\n }\n}\n\nexport { BaseService };\n","export enum UserType {\n ADMIN = 'admin',\n USER = 'user',\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @gooddaydev/common v1.0.
|
|
2
|
+
* @gooddaydev/common v1.0.9
|
|
3
3
|
* (c) undefined
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
10
|
+
|
|
9
11
|
/******************************************************************************
|
|
10
12
|
Copyright (c) Microsoft Corporation.
|
|
11
13
|
|
|
@@ -20,8 +22,6 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
20
22
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
21
23
|
PERFORMANCE OF THIS SOFTWARE.
|
|
22
24
|
***************************************************************************** */
|
|
23
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
24
|
-
|
|
25
25
|
|
|
26
26
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
27
27
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter:
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter: {\n column: string;\n state: 'asc' | 'desc';\n };\n filter: Record<string, unknown>;\n lean: boolean;\n}\n\ninterface PaginateModel<T> {\n paginate(\n filter: Record<string, unknown>,\n options: {\n page: number;\n limit: number;\n sort: Record<string, 'asc' | 'desc'>;\n lean: boolean;\n },\n ): Promise<PaginateResult<T>>;\n}\n\ninterface PaginateResult<T> {\n docs: T[];\n totalDocs: number;\n limit: number;\n totalPages: number;\n page: number;\n pagingCounter: number;\n hasPrevPage: boolean;\n hasNextPage: boolean;\n prevPage: number | null;\n nextPage: number | null;\n}\n\nclass BaseService<T extends Document, CreateDto> {\n constructor(private readonly model: SoftDeleteModel<T> & PaginateModel<T>) {\n this.model = model;\n }\n\n async index(query: IQueryOptions) {\n const sort = { [query.sorter.column]: query.sorter.state };\n\n return await this.model.paginate(query.filter, {\n page: query.page,\n limit: query.limit,\n sort: sort,\n lean: query.lean,\n });\n }\n\n async create(data: CreateDto | CreateDto[]): Promise<T> {\n return await this.model.create(data);\n }\n\n async find(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T[], T>> {\n return await this.model.find(filter, projection, options);\n }\n\n async findOne(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findOne(filter, projection, options);\n }\n\n async findById(\n id: string | ObjectId,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findById(id, projection, options);\n }\n\n async updateOne(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<boolean> {\n return (await this.model.updateOne(args, set, options as UpdateQuery<T>))\n .acknowledged;\n }\n\n async updateMany(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<number> {\n return (await this.model.updateMany(args, set, options as UpdateQuery<T>))\n .modifiedCount;\n }\n\n async deleteOne(args: Record<string, unknown>): Promise<boolean> {\n return (await this.model.deleteOne(args)).acknowledged;\n }\n\n async deleteMany(args: Record<string, unknown>): Promise<number> {\n return (await this.model.deleteMany(args)).deletedCount;\n }\n}\n\nexport { BaseService };\n","export enum UserType {\n ADMIN = 'admin',\n USER = 'user',\n}\n"],"names":["UserType"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @gooddaydev/common v1.0.
|
|
2
|
+
* @gooddaydev/common v1.0.9
|
|
3
3
|
* (c) undefined
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -18,8 +18,6 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
18
18
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
19
19
|
PERFORMANCE OF THIS SOFTWARE.
|
|
20
20
|
***************************************************************************** */
|
|
21
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
22
|
-
|
|
23
21
|
|
|
24
22
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
25
23
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter:
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter: {\n column: string;\n state: 'asc' | 'desc';\n };\n filter: Record<string, unknown>;\n lean: boolean;\n}\n\ninterface PaginateModel<T> {\n paginate(\n filter: Record<string, unknown>,\n options: {\n page: number;\n limit: number;\n sort: Record<string, 'asc' | 'desc'>;\n lean: boolean;\n },\n ): Promise<PaginateResult<T>>;\n}\n\ninterface PaginateResult<T> {\n docs: T[];\n totalDocs: number;\n limit: number;\n totalPages: number;\n page: number;\n pagingCounter: number;\n hasPrevPage: boolean;\n hasNextPage: boolean;\n prevPage: number | null;\n nextPage: number | null;\n}\n\nclass BaseService<T extends Document, CreateDto> {\n constructor(private readonly model: SoftDeleteModel<T> & PaginateModel<T>) {\n this.model = model;\n }\n\n async index(query: IQueryOptions) {\n const sort = { [query.sorter.column]: query.sorter.state };\n\n return await this.model.paginate(query.filter, {\n page: query.page,\n limit: query.limit,\n sort: sort,\n lean: query.lean,\n });\n }\n\n async create(data: CreateDto | CreateDto[]): Promise<T> {\n return await this.model.create(data);\n }\n\n async find(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T[], T>> {\n return await this.model.find(filter, projection, options);\n }\n\n async findOne(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findOne(filter, projection, options);\n }\n\n async findById(\n id: string | ObjectId,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findById(id, projection, options);\n }\n\n async updateOne(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<boolean> {\n return (await this.model.updateOne(args, set, options as UpdateQuery<T>))\n .acknowledged;\n }\n\n async updateMany(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<number> {\n return (await this.model.updateMany(args, set, options as UpdateQuery<T>))\n .modifiedCount;\n }\n\n async deleteOne(args: Record<string, unknown>): Promise<boolean> {\n return (await this.model.deleteOne(args)).acknowledged;\n }\n\n async deleteMany(args: Record<string, unknown>): Promise<number> {\n return (await this.model.deleteMany(args)).deletedCount;\n }\n}\n\nexport { BaseService };\n","export enum UserType {\n ADMIN = 'admin',\n USER = 'user',\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @gooddaydev/common v1.0.
|
|
2
|
+
* @gooddaydev/common v1.0.9
|
|
3
3
|
* (c) undefined
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -24,8 +24,6 @@
|
|
|
24
24
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
25
25
|
PERFORMANCE OF THIS SOFTWARE.
|
|
26
26
|
***************************************************************************** */
|
|
27
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
28
|
-
|
|
29
27
|
|
|
30
28
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
31
29
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -187,5 +185,7 @@
|
|
|
187
185
|
|
|
188
186
|
exports.BaseService = BaseService;
|
|
189
187
|
|
|
188
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
189
|
+
|
|
190
190
|
}));
|
|
191
191
|
//# sourceMappingURL=index.umd.js.map
|
package/dist/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter:
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter: {\n column: string;\n state: 'asc' | 'desc';\n };\n filter: Record<string, unknown>;\n lean: boolean;\n}\n\ninterface PaginateModel<T> {\n paginate(\n filter: Record<string, unknown>,\n options: {\n page: number;\n limit: number;\n sort: Record<string, 'asc' | 'desc'>;\n lean: boolean;\n },\n ): Promise<PaginateResult<T>>;\n}\n\ninterface PaginateResult<T> {\n docs: T[];\n totalDocs: number;\n limit: number;\n totalPages: number;\n page: number;\n pagingCounter: number;\n hasPrevPage: boolean;\n hasNextPage: boolean;\n prevPage: number | null;\n nextPage: number | null;\n}\n\nclass BaseService<T extends Document, CreateDto> {\n constructor(private readonly model: SoftDeleteModel<T> & PaginateModel<T>) {\n this.model = model;\n }\n\n async index(query: IQueryOptions) {\n const sort = { [query.sorter.column]: query.sorter.state };\n\n return await this.model.paginate(query.filter, {\n page: query.page,\n limit: query.limit,\n sort: sort,\n lean: query.lean,\n });\n }\n\n async create(data: CreateDto | CreateDto[]): Promise<T> {\n return await this.model.create(data);\n }\n\n async find(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T[], T>> {\n return await this.model.find(filter, projection, options);\n }\n\n async findOne(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findOne(filter, projection, options);\n }\n\n async findById(\n id: string | ObjectId,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findById(id, projection, options);\n }\n\n async updateOne(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<boolean> {\n return (await this.model.updateOne(args, set, options as UpdateQuery<T>))\n .acknowledged;\n }\n\n async updateMany(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<number> {\n return (await this.model.updateMany(args, set, options as UpdateQuery<T>))\n .modifiedCount;\n }\n\n async deleteOne(args: Record<string, unknown>): Promise<boolean> {\n return (await this.model.deleteOne(args)).acknowledged;\n }\n\n async deleteMany(args: Record<string, unknown>): Promise<number> {\n return (await this.model.deleteMany(args)).deletedCount;\n }\n}\n\nexport { BaseService };\n","export enum UserType {\n ADMIN = 'admin',\n USER = 'user',\n}\n"],"names":["UserType"],"mappings":"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"}
|
package/dist/index.umd.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @gooddaydev/common v1.0.
|
|
2
|
+
* @gooddaydev/common v1.0.9
|
|
3
3
|
* (c) undefined
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["[libraryCamelCaseName]"]={})}(this,(function(e){"use strict";function t(e,t,n,r){return new(n||(n=Promise))((function(o,i){function u(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(u,s)}c((r=r.apply(e,t||[])).next())}))}function n(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return u.next=s(0),u.throw=s(1),u.return=s(2),"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;u&&(u=0,s[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}"function"==typeof SuppressedError&&SuppressedError;var r,o=function(){function e(e){this.model=e,this.model=e}return e.prototype.index=function(e){return t(this,void 0,void 0,(function(){var t,r;return n(this,(function(n){switch(n.label){case 0:return(r={})[e.sorter.column]=e.sorter.state,t=r,[4,this.model.paginate(e.filter,{page:e.page,limit:e.limit,sort:t,lean:e.lean})];case 1:return[2,n.sent()]}}))}))},e.prototype.create=function(e){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.create(e)];case 1:return[2,t.sent()]}}))}))},e.prototype.find=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.find(e,r,o)];case 1:return[2,t.sent()]}}))}))},e.prototype.findOne=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.findOne(e,r,o)];case 1:return[2,t.sent()]}}))}))},e.prototype.findById=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.findById(e,r,o)];case 1:return[2,t.sent()]}}))}))},e.prototype.updateOne=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.updateOne(e,r,o)];case 1:return[2,t.sent().acknowledged]}}))}))},e.prototype.updateMany=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.updateMany(e,r,o)];case 1:return[2,t.sent().modifiedCount]}}))}))},e.prototype.deleteOne=function(e){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.deleteOne(e)];case 1:return[2,t.sent().acknowledged]}}))}))},e.prototype.deleteMany=function(e){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.deleteMany(e)];case 1:return[2,t.sent().deletedCount]}}))}))},e}();e.UserType=void 0,(r=e.UserType||(e.UserType={})).ADMIN="admin",r.USER="user",e.BaseService=o}));
|
|
6
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["[libraryCamelCaseName]"]={})}(this,(function(e){"use strict";function t(e,t,n,r){return new(n||(n=Promise))((function(o,i){function u(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(u,s)}c((r=r.apply(e,t||[])).next())}))}function n(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return u.next=s(0),u.throw=s(1),u.return=s(2),"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;u&&(u=0,s[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}"function"==typeof SuppressedError&&SuppressedError;var r,o=function(){function e(e){this.model=e,this.model=e}return e.prototype.index=function(e){return t(this,void 0,void 0,(function(){var t,r;return n(this,(function(n){switch(n.label){case 0:return(r={})[e.sorter.column]=e.sorter.state,t=r,[4,this.model.paginate(e.filter,{page:e.page,limit:e.limit,sort:t,lean:e.lean})];case 1:return[2,n.sent()]}}))}))},e.prototype.create=function(e){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.create(e)];case 1:return[2,t.sent()]}}))}))},e.prototype.find=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.find(e,r,o)];case 1:return[2,t.sent()]}}))}))},e.prototype.findOne=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.findOne(e,r,o)];case 1:return[2,t.sent()]}}))}))},e.prototype.findById=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.findById(e,r,o)];case 1:return[2,t.sent()]}}))}))},e.prototype.updateOne=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.updateOne(e,r,o)];case 1:return[2,t.sent().acknowledged]}}))}))},e.prototype.updateMany=function(e,r,o){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.updateMany(e,r,o)];case 1:return[2,t.sent().modifiedCount]}}))}))},e.prototype.deleteOne=function(e){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.deleteOne(e)];case 1:return[2,t.sent().acknowledged]}}))}))},e.prototype.deleteMany=function(e){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return[4,this.model.deleteMany(e)];case 1:return[2,t.sent().deletedCount]}}))}))},e}();e.UserType=void 0,(r=e.UserType||(e.UserType={})).ADMIN="admin",r.USER="user",e.BaseService=o,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
7
7
|
//# sourceMappingURL=index.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.min.js","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter:
|
|
1
|
+
{"version":3,"file":"index.umd.min.js","sources":["../src/base/base.service.ts","../src/enum/user-type.enum.ts"],"sourcesContent":["import {\n Document,\n ObjectId,\n ProjectionType,\n QueryOptions,\n QueryWithHelpers,\n UpdateQuery,\n} from 'mongoose';\nimport { SoftDeleteModel } from 'mongoose-delete';\n\nexport interface IQueryOptions {\n page: number;\n limit: number;\n sorter: {\n column: string;\n state: 'asc' | 'desc';\n };\n filter: Record<string, unknown>;\n lean: boolean;\n}\n\ninterface PaginateModel<T> {\n paginate(\n filter: Record<string, unknown>,\n options: {\n page: number;\n limit: number;\n sort: Record<string, 'asc' | 'desc'>;\n lean: boolean;\n },\n ): Promise<PaginateResult<T>>;\n}\n\ninterface PaginateResult<T> {\n docs: T[];\n totalDocs: number;\n limit: number;\n totalPages: number;\n page: number;\n pagingCounter: number;\n hasPrevPage: boolean;\n hasNextPage: boolean;\n prevPage: number | null;\n nextPage: number | null;\n}\n\nclass BaseService<T extends Document, CreateDto> {\n constructor(private readonly model: SoftDeleteModel<T> & PaginateModel<T>) {\n this.model = model;\n }\n\n async index(query: IQueryOptions) {\n const sort = { [query.sorter.column]: query.sorter.state };\n\n return await this.model.paginate(query.filter, {\n page: query.page,\n limit: query.limit,\n sort: sort,\n lean: query.lean,\n });\n }\n\n async create(data: CreateDto | CreateDto[]): Promise<T> {\n return await this.model.create(data);\n }\n\n async find(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T[], T>> {\n return await this.model.find(filter, projection, options);\n }\n\n async findOne(\n filter: Record<string, unknown>,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findOne(filter, projection, options);\n }\n\n async findById(\n id: string | ObjectId,\n projection?: ProjectionType<T>,\n options?: QueryOptions<T>,\n ): Promise<QueryWithHelpers<T | null, T>> {\n return await this.model.findById(id, projection, options);\n }\n\n async updateOne(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<boolean> {\n return (await this.model.updateOne(args, set, options as UpdateQuery<T>))\n .acknowledged;\n }\n\n async updateMany(\n args: Record<string, unknown>,\n set: UpdateQuery<T>,\n options?: QueryOptions<T>,\n ): Promise<number> {\n return (await this.model.updateMany(args, set, options as UpdateQuery<T>))\n .modifiedCount;\n }\n\n async deleteOne(args: Record<string, unknown>): Promise<boolean> {\n return (await this.model.deleteOne(args)).acknowledged;\n }\n\n async deleteMany(args: Record<string, unknown>): Promise<number> {\n return (await this.model.deleteMany(args)).deletedCount;\n }\n}\n\nexport { BaseService };\n","export enum UserType {\n ADMIN = 'admin',\n USER = 'user',\n}\n"],"names":["UserType","BaseService","model","this","prototype","index","query","_a","sorter","column","state","sort","paginate","filter","page","limit","lean","_b","create","data","find","projection","options","findOne","findById","id","updateOne","args","set","acknowledged","updateMany","modifiedCount","deleteOne","sent","deleteMany","deletedCount","exports"],"mappings":";;;;;8tDA8CA,IC9CYA,ED8CZC,EAAA,WACE,SAAAA,EAA6BC,GAAAC,KAAKD,MAALA,EAC3BC,KAAKD,MAAQA,CACd,CAkEH,OAhEQD,EAAKG,UAAAC,MAAX,SAAYC,qGAGH,OAFQC,EAAA,IAACD,EAAME,OAAOC,QAASH,EAAME,OAAOE,MAA7CC,IAEO,CAAA,EAAAR,KAAKD,MAAMU,SAASN,EAAMO,OAAQ,CAC7CC,KAAMR,EAAMQ,KACZC,MAAOT,EAAMS,MACbJ,KAAMA,EACNK,KAAMV,EAAMU,QAJd,KAAA,EAAA,MAAA,CAAA,EAAOC,gBAMR,EAEKhB,EAAMG,UAAAc,OAAZ,SAAaC,6FACJ,MAAM,CAAA,EAAAhB,KAAKD,MAAMgB,OAAOC,IAA/B,KAAA,EAAA,MAAA,CAAA,EAAOZ,gBACR,EAEKN,EAAAG,UAAAgB,KAAN,SACEP,EACAQ,EACAC,sFAEO,KAAA,EAAA,MAAA,CAAA,EAAMnB,KAAKD,MAAMkB,KAAKP,EAAQQ,EAAYC,IAAjD,KAAA,EAAA,MAAA,CAAA,EAAOf,gBACR,EAEKN,EAAAG,UAAAmB,QAAN,SACEV,EACAQ,EACAC,sFAEO,KAAA,EAAA,MAAA,CAAA,EAAMnB,KAAKD,MAAMqB,QAAQV,EAAQQ,EAAYC,IAApD,KAAA,EAAA,MAAA,CAAA,EAAOf,gBACR,EAEKN,EAAAG,UAAAoB,SAAN,SACEC,EACAJ,EACAC,sFAEO,KAAA,EAAA,MAAA,CAAA,EAAMnB,KAAKD,MAAMsB,SAASC,EAAIJ,EAAYC,IAAjD,KAAA,EAAA,MAAA,CAAA,EAAOf,gBACR,EAEKN,EAAAG,UAAAsB,UAAN,SACEC,EACAC,EACAN,sFAEQ,KAAA,EAAA,MAAA,CAAA,EAAMnB,KAAKD,MAAMwB,UAAUC,EAAMC,EAAKN,WAA9C,MAAO,CAAA,EAACf,SACLsB,oBACJ,EAEK5B,EAAAG,UAAA0B,WAAN,SACEH,EACAC,EACAN,sFAEQ,KAAA,EAAA,MAAA,CAAA,EAAMnB,KAAKD,MAAM4B,WAAWH,EAAMC,EAAKN,WAA/C,MAAO,CAAA,EAACf,SACLwB,qBACJ,EAEK9B,EAASG,UAAA4B,UAAf,SAAgBL,6FACN,MAAM,CAAA,EAAAxB,KAAKD,MAAM8B,UAAUL,IAAnC,KAAA,EAAA,MAAA,CAAA,EAAQpB,EAAA0B,OAAkCJ,oBAC3C,EAEK5B,EAAUG,UAAA8B,WAAhB,SAAiBP,6FACP,MAAM,CAAA,EAAAxB,KAAKD,MAAMgC,WAAWP,IAApC,KAAA,EAAA,MAAA,CAAA,EAAQpB,EAAA0B,OAAmCE,oBAC5C,EACFlC,CAAD,IChHCmC,EAAApC,cAAA,GAHWA,EAAAA,EAAQA,WAARA,WAGX,CAAA,IAFC,MAAA,QACAA,EAAA,KAAA"}
|
package/package.json
CHANGED
|
@@ -1,40 +1,72 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddaydev/common",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "Common utilities for TypeScript projects with CI/CD",
|
|
5
|
+
"cdn": "dist/index.umd.js",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
|
-
"types": "
|
|
7
|
-
"
|
|
7
|
+
"types": "types/index.d.ts",
|
|
8
|
+
"unpkg": "dist/index.umd.js",
|
|
9
|
+
"module": "dist/index.esm.js",
|
|
10
|
+
"jsdelivr": "dist/index.umd.js",
|
|
11
|
+
"umd:main": "dist/index.umd.js",
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/",
|
|
14
|
+
"types/"
|
|
15
|
+
],
|
|
16
|
+
"exports": {
|
|
17
|
+
".": [
|
|
18
|
+
{
|
|
19
|
+
"import": "./dist/index.mjs",
|
|
20
|
+
"require": "./dist/index.cjs",
|
|
21
|
+
"default": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./dist/index.js"
|
|
24
|
+
],
|
|
25
|
+
"./types": "./types/index.d.ts"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/eslint": "^8.4.10",
|
|
29
|
+
"@types/jest": "^29.2.4",
|
|
30
|
+
"@types/mongoose-delete": "^1.0.3",
|
|
31
|
+
"@types/mongoose-paginate-v2": "^1.6.5",
|
|
32
|
+
"@types/prettier": "^2.7.2",
|
|
33
|
+
"@typescript-eslint/eslint-plugin": "^5.47.0",
|
|
34
|
+
"@typescript-eslint/parser": "^5.47.0",
|
|
35
|
+
"eslint": "^8.30.0",
|
|
36
|
+
"eslint-config-prettier": "^8.5.0",
|
|
37
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
38
|
+
"jest": "^29.3.1",
|
|
39
|
+
"prettier": "^2.8.1",
|
|
40
|
+
"rollup": "^2.79.1",
|
|
41
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
42
|
+
"rollup-plugin-typescript2": "^0.34.1",
|
|
43
|
+
"ts-jest": "^29.0.3",
|
|
44
|
+
"ts-jest-resolver": "^2.0.0",
|
|
45
|
+
"typescript": "^4.9.4"
|
|
46
|
+
},
|
|
8
47
|
"scripts": {
|
|
9
|
-
"
|
|
48
|
+
"test": "jest",
|
|
49
|
+
"lint": "eslint \"*/**/*.{ts,js,json}\"",
|
|
50
|
+
"lint:fix": "eslint \"*/**/*.{ts,js,json}\" --fix",
|
|
51
|
+
"build": "rollup --config ./rollup.config.mjs",
|
|
52
|
+
"prepublishOnly": "npm run lint && npm run build"
|
|
10
53
|
},
|
|
11
54
|
"repository": {
|
|
12
55
|
"type": "git",
|
|
13
|
-
"url": "https://github.com/goodday-repo/common"
|
|
56
|
+
"url": "git+https://github.com/goodday-repo/common.git"
|
|
14
57
|
},
|
|
15
|
-
"keywords": [
|
|
16
|
-
"typescript",
|
|
17
|
-
"common",
|
|
18
|
-
"ci",
|
|
19
|
-
"cd"
|
|
20
|
-
],
|
|
58
|
+
"keywords": [],
|
|
21
59
|
"author": "Edward Leong",
|
|
22
60
|
"license": "MIT",
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"@rollup/plugin-terser": "^0.4.4",
|
|
25
|
-
"@types/jest": "^29.5.14",
|
|
26
|
-
"@types/mongoose-delete": "^1.0.6",
|
|
27
|
-
"@types/node": "^22.10.2",
|
|
28
|
-
"@types/prettier": "^3.0.0",
|
|
29
|
-
"eslint": "^9.16.0",
|
|
30
|
-
"jest": "^29.7.0",
|
|
31
|
-
"prettier": "^3.5.3",
|
|
32
|
-
"rollup": "^4.28.1",
|
|
33
|
-
"rollup-plugin-typescript2": "^0.36.0",
|
|
34
|
-
"typescript": "^5.7.2"
|
|
35
|
-
},
|
|
36
61
|
"dependencies": {
|
|
37
|
-
"
|
|
38
|
-
"
|
|
62
|
+
"@nestjs/microservices": "^10.2.6",
|
|
63
|
+
"@types/express-session": "^1.17.7",
|
|
64
|
+
"express-session": "^1.17.3",
|
|
65
|
+
"moment": "^2.30.1",
|
|
66
|
+
"bignumber.js": "^9.1.2",
|
|
67
|
+
"moment-timezone": "^0.5.38",
|
|
68
|
+
"mongoose": "^7.4.1",
|
|
69
|
+
"mongoose-delete": "^1.0.1",
|
|
70
|
+
"mongoose-paginate-v2": "^1.7.4"
|
|
39
71
|
}
|
|
40
72
|
}
|
|
@@ -3,30 +3,45 @@ import { SoftDeleteModel } from 'mongoose-delete';
|
|
|
3
3
|
export interface IQueryOptions {
|
|
4
4
|
page: number;
|
|
5
5
|
limit: number;
|
|
6
|
-
sorter:
|
|
7
|
-
|
|
6
|
+
sorter: {
|
|
7
|
+
column: string;
|
|
8
|
+
state: 'asc' | 'desc';
|
|
9
|
+
};
|
|
10
|
+
filter: Record<string, unknown>;
|
|
8
11
|
lean: boolean;
|
|
9
12
|
}
|
|
10
13
|
interface PaginateModel<T> {
|
|
11
|
-
paginate(filter:
|
|
14
|
+
paginate(filter: Record<string, unknown>, options: {
|
|
12
15
|
page: number;
|
|
13
16
|
limit: number;
|
|
14
|
-
sort:
|
|
17
|
+
sort: Record<string, 'asc' | 'desc'>;
|
|
15
18
|
lean: boolean;
|
|
16
|
-
}): Promise<T
|
|
19
|
+
}): Promise<PaginateResult<T>>;
|
|
20
|
+
}
|
|
21
|
+
interface PaginateResult<T> {
|
|
22
|
+
docs: T[];
|
|
23
|
+
totalDocs: number;
|
|
24
|
+
limit: number;
|
|
25
|
+
totalPages: number;
|
|
26
|
+
page: number;
|
|
27
|
+
pagingCounter: number;
|
|
28
|
+
hasPrevPage: boolean;
|
|
29
|
+
hasNextPage: boolean;
|
|
30
|
+
prevPage: number | null;
|
|
31
|
+
nextPage: number | null;
|
|
17
32
|
}
|
|
18
33
|
declare class BaseService<T extends Document, CreateDto> {
|
|
19
34
|
private readonly model;
|
|
20
35
|
constructor(model: SoftDeleteModel<T> & PaginateModel<T>);
|
|
21
|
-
index(query: IQueryOptions): Promise<T
|
|
36
|
+
index(query: IQueryOptions): Promise<PaginateResult<T>>;
|
|
22
37
|
create(data: CreateDto | CreateDto[]): Promise<T>;
|
|
23
|
-
find(filter:
|
|
24
|
-
findOne(filter:
|
|
38
|
+
find(filter: Record<string, unknown>, projection?: ProjectionType<T>, options?: QueryOptions<T>): Promise<QueryWithHelpers<T[], T>>;
|
|
39
|
+
findOne(filter: Record<string, unknown>, projection?: ProjectionType<T>, options?: QueryOptions<T>): Promise<QueryWithHelpers<T | null, T>>;
|
|
25
40
|
findById(id: string | ObjectId, projection?: ProjectionType<T>, options?: QueryOptions<T>): Promise<QueryWithHelpers<T | null, T>>;
|
|
26
|
-
updateOne(args:
|
|
27
|
-
updateMany(args:
|
|
28
|
-
deleteOne(args:
|
|
29
|
-
deleteMany(args:
|
|
41
|
+
updateOne(args: Record<string, unknown>, set: UpdateQuery<T>, options?: QueryOptions<T>): Promise<boolean>;
|
|
42
|
+
updateMany(args: Record<string, unknown>, set: UpdateQuery<T>, options?: QueryOptions<T>): Promise<number>;
|
|
43
|
+
deleteOne(args: Record<string, unknown>): Promise<boolean>;
|
|
44
|
+
deleteMany(args: Record<string, unknown>): Promise<number>;
|
|
30
45
|
}
|
|
31
46
|
export { BaseService };
|
|
32
47
|
//# sourceMappingURL=base.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.service.d.ts","sourceRoot":"","sources":["../../src/base/base.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"base.service.d.ts","sourceRoot":"","sources":["../../src/base/base.service.ts"],"names":[],"mappings":"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"}
|
package/.editorconfig
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Settings for editors and IDEs.
|
|
2
|
-
# References at https://editorconfig.org/.
|
|
3
|
-
|
|
4
|
-
root = true
|
|
5
|
-
|
|
6
|
-
# Settings for any file.
|
|
7
|
-
[*]
|
|
8
|
-
charset = utf-8
|
|
9
|
-
end_of_line = lf
|
|
10
|
-
indent_size = 2
|
|
11
|
-
indent_style = space
|
|
12
|
-
insert_final_newline = true
|
|
13
|
-
trim_trailing_whitespace = true
|
package/.eslintignore
DELETED
package/.eslintrc.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
/* eslint-env node */
|
|
3
|
-
|
|
4
|
-
'use strict';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* An object with ESLint options.
|
|
8
|
-
* @type {import('eslint').Linter.Config}
|
|
9
|
-
*/
|
|
10
|
-
const options = {
|
|
11
|
-
root: true,
|
|
12
|
-
parser: '@typescript-eslint/parser',
|
|
13
|
-
parserOptions: {
|
|
14
|
-
ecmaFeatures: {
|
|
15
|
-
jsx: true,
|
|
16
|
-
},
|
|
17
|
-
ecmaVersion: 2021,
|
|
18
|
-
},
|
|
19
|
-
plugins: ['@typescript-eslint'],
|
|
20
|
-
extends: [
|
|
21
|
-
'eslint:recommended',
|
|
22
|
-
'plugin:prettier/recommended',
|
|
23
|
-
'plugin:@typescript-eslint/eslint-recommended',
|
|
24
|
-
'plugin:@typescript-eslint/recommended',
|
|
25
|
-
],
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
module.exports = options;
|
package/.gitattributes
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# File attributes for Git repository.
|
|
2
|
-
# References at https://git-scm.com/docs/gitattributes.
|
|
3
|
-
|
|
4
|
-
# Handle files as text and ensure Unix line endings.
|
|
5
|
-
* text=auto eol=lf
|
|
6
|
-
|
|
7
|
-
# Ignore differences on NPM's lockfile.
|
|
8
|
-
# Since version 5.7.0, NPM automatically handles merge conflicts.
|
|
9
|
-
package-lock.json -diff
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
name: 'NPM auto publish'
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: write
|
|
10
|
-
packages: write
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
release:
|
|
14
|
-
name: publish
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
steps:
|
|
17
|
-
- name: checkout
|
|
18
|
-
uses: actions/checkout@v3
|
|
19
|
-
with:
|
|
20
|
-
fetch-depth: 0 # Ensure we get all commit history
|
|
21
|
-
|
|
22
|
-
- name: setup nodejs environment
|
|
23
|
-
uses: actions/setup-node@v3
|
|
24
|
-
with:
|
|
25
|
-
node-version: 20
|
|
26
|
-
registry-url: https://registry.npmjs.org
|
|
27
|
-
|
|
28
|
-
- name: install dependencies
|
|
29
|
-
run: yarn install --frozen-lockfile
|
|
30
|
-
|
|
31
|
-
- name: build
|
|
32
|
-
run: yarn build
|
|
33
|
-
|
|
34
|
-
- name: 'Automated Version Bump'
|
|
35
|
-
id: version-bump
|
|
36
|
-
uses: 'phips28/gh-action-bump-version@master'
|
|
37
|
-
env:
|
|
38
|
-
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
|
39
|
-
|
|
40
|
-
- name: Push new tags
|
|
41
|
-
run: |
|
|
42
|
-
git push origin --tags
|
|
43
|
-
env:
|
|
44
|
-
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
|
45
|
-
|
|
46
|
-
- name: publish
|
|
47
|
-
run: npm publish --access public
|
|
48
|
-
env:
|
|
49
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
|
package/.prettierignore
DELETED
package/jest.config.js
DELETED
package/prettier.config.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
/* eslint-env node */
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* An object with Prettier.js options.
|
|
6
|
-
* @type {import('prettier').Options}
|
|
7
|
-
*/
|
|
8
|
-
const options = {
|
|
9
|
-
bracketSameLine: true,
|
|
10
|
-
quoteProps: 'consistent',
|
|
11
|
-
singleQuote: true,
|
|
12
|
-
trailingComma: 'all',
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
module.exports = options;
|
package/rollup.config.mjs
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import { readFile } from 'node:fs/promises';
|
|
4
|
-
import terser from '@rollup/plugin-terser';
|
|
5
|
-
import typescript2 from 'rollup-plugin-typescript2';
|
|
6
|
-
|
|
7
|
-
const packageJSON = JSON.parse(await readFile('./package.json', 'utf-8'));
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Comment with library information to be appended in the generated bundles.
|
|
11
|
-
*/
|
|
12
|
-
const banner = `/*!
|
|
13
|
-
* ${packageJSON.name} v${packageJSON.version}
|
|
14
|
-
* (c) ${packageJSON.author.name}
|
|
15
|
-
* Released under the ${packageJSON.license} License.
|
|
16
|
-
*/
|
|
17
|
-
`;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Creates an output options object for Rollup.js.
|
|
21
|
-
* @param {import('rollup').OutputOptions} options
|
|
22
|
-
* @returns {import('rollup').OutputOptions}
|
|
23
|
-
*/
|
|
24
|
-
function createOutputOptions(options) {
|
|
25
|
-
return {
|
|
26
|
-
banner,
|
|
27
|
-
name: '[libraryCamelCaseName]',
|
|
28
|
-
exports: 'named',
|
|
29
|
-
sourcemap: true,
|
|
30
|
-
...options,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @type {import('rollup').RollupOptions}
|
|
36
|
-
*/
|
|
37
|
-
const options = {
|
|
38
|
-
input: './src/index.ts',
|
|
39
|
-
output: [
|
|
40
|
-
createOutputOptions({
|
|
41
|
-
file: './dist/index.js',
|
|
42
|
-
format: 'commonjs',
|
|
43
|
-
}),
|
|
44
|
-
createOutputOptions({
|
|
45
|
-
file: './dist/index.cjs',
|
|
46
|
-
format: 'commonjs',
|
|
47
|
-
}),
|
|
48
|
-
createOutputOptions({
|
|
49
|
-
file: './dist/index.mjs',
|
|
50
|
-
format: 'esm',
|
|
51
|
-
}),
|
|
52
|
-
createOutputOptions({
|
|
53
|
-
file: './dist/index.esm.js',
|
|
54
|
-
format: 'esm',
|
|
55
|
-
}),
|
|
56
|
-
createOutputOptions({
|
|
57
|
-
file: './dist/index.umd.js',
|
|
58
|
-
format: 'umd',
|
|
59
|
-
}),
|
|
60
|
-
createOutputOptions({
|
|
61
|
-
file: './dist/index.umd.min.js',
|
|
62
|
-
format: 'umd',
|
|
63
|
-
plugins: [terser()],
|
|
64
|
-
}),
|
|
65
|
-
],
|
|
66
|
-
plugins: [
|
|
67
|
-
typescript2({
|
|
68
|
-
clean: true,
|
|
69
|
-
useTsconfigDeclarationDir: true,
|
|
70
|
-
tsconfig: './tsconfig.bundle.json',
|
|
71
|
-
}),
|
|
72
|
-
],
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
export default options;
|
package/setup.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/* eslint-env node */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
3
|
-
|
|
4
|
-
const fs = require('fs/promises');
|
|
5
|
-
const path = require('path');
|
|
6
|
-
const readline = require('readline');
|
|
7
|
-
|
|
8
|
-
const resolveToFiles = (directory) => async (dirent) => {
|
|
9
|
-
if (
|
|
10
|
-
dirent.name === '.git' ||
|
|
11
|
-
dirent.name === 'setup.js' ||
|
|
12
|
-
dirent.name === 'node_modules'
|
|
13
|
-
)
|
|
14
|
-
return [];
|
|
15
|
-
if (dirent.isFile()) return [path.resolve(directory, dirent.name)];
|
|
16
|
-
if (dirent.isDirectory())
|
|
17
|
-
return await getFiles(path.resolve(directory, dirent.name));
|
|
18
|
-
return [];
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const getFiles = async (directory) => {
|
|
22
|
-
const filesWithTypes = await fs.readdir(directory, {
|
|
23
|
-
encoding: 'utf-8',
|
|
24
|
-
withFileTypes: true,
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
const resolutions = filesWithTypes.map(resolveToFiles(directory));
|
|
28
|
-
|
|
29
|
-
const files = await Promise.all(resolutions);
|
|
30
|
-
|
|
31
|
-
return files.flat(1);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const gettingFiles = getFiles(path.resolve(__dirname));
|
|
35
|
-
|
|
36
|
-
const replaceInFile = (matcher, replacer) => async (path) => {
|
|
37
|
-
const contents = await fs.readFile(path, { encoding: 'utf-8' });
|
|
38
|
-
await fs.writeFile(path, contents.replace(matcher, replacer));
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const rl = readline.createInterface({
|
|
42
|
-
input: process.stdin,
|
|
43
|
-
output: process.stdout,
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
const replaceVariable = async (variable, value) => {
|
|
47
|
-
const files = await gettingFiles;
|
|
48
|
-
|
|
49
|
-
const matcher = new RegExp(`\\[${variable}\\]`, 'g');
|
|
50
|
-
|
|
51
|
-
await Promise.all(files.map(replaceInFile(matcher, value)));
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
const fillTemplateVariable = (variable, question, defaultValue = '') =>
|
|
55
|
-
new Promise((resolve) => {
|
|
56
|
-
rl.question(question, async (receivedValue) => {
|
|
57
|
-
const value = receivedValue?.trim() || defaultValue;
|
|
58
|
-
|
|
59
|
-
replaceVariable(variable, value);
|
|
60
|
-
|
|
61
|
-
rl.write(`Replaced ${variable} to "${value}".\n`);
|
|
62
|
-
|
|
63
|
-
resolve();
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
replaceVariable('year', new Date().getFullYear())
|
|
68
|
-
.then(() =>
|
|
69
|
-
fillTemplateVariable(
|
|
70
|
-
'libraryNameWithSpacesAndUpperCases',
|
|
71
|
-
`
|
|
72
|
-
Library name (can have upper/lower case letters, spaces, numbers and special characters)
|
|
73
|
-
Ex. React.js, Vue.js, Fetch Interceptors, GraphQL Loader for Webpack etc.
|
|
74
|
-
> `,
|
|
75
|
-
),
|
|
76
|
-
)
|
|
77
|
-
.then(() =>
|
|
78
|
-
fillTemplateVariable(
|
|
79
|
-
'libraryName',
|
|
80
|
-
`
|
|
81
|
-
Module name (only lower case letters, "." or "-") and optionally with scope.
|
|
82
|
-
Ex. react, vue, fetch-interceptors, @webpack/graphql-loader etc.
|
|
83
|
-
> `,
|
|
84
|
-
),
|
|
85
|
-
)
|
|
86
|
-
.then(() =>
|
|
87
|
-
fillTemplateVariable(
|
|
88
|
-
'libraryCamelCaseName',
|
|
89
|
-
`
|
|
90
|
-
What is you library name in camel-case for UMD bundles?
|
|
91
|
-
Ex. React, Vue, fetchInterceptors, graphqlLoaderForWebpack etc.
|
|
92
|
-
> `,
|
|
93
|
-
),
|
|
94
|
-
)
|
|
95
|
-
.then(() =>
|
|
96
|
-
fillTemplateVariable(
|
|
97
|
-
'repositoryOwner',
|
|
98
|
-
`
|
|
99
|
-
What is your nickname on GitHub?
|
|
100
|
-
> `,
|
|
101
|
-
'',
|
|
102
|
-
),
|
|
103
|
-
)
|
|
104
|
-
.then(() =>
|
|
105
|
-
fillTemplateVariable(
|
|
106
|
-
'repositoryName',
|
|
107
|
-
`
|
|
108
|
-
What will be this repository name on GitHub?
|
|
109
|
-
> `,
|
|
110
|
-
),
|
|
111
|
-
)
|
|
112
|
-
.then(() =>
|
|
113
|
-
fillTemplateVariable(
|
|
114
|
-
'authorFullName',
|
|
115
|
-
`
|
|
116
|
-
What is your full name? (used in MIT License)
|
|
117
|
-
> `,
|
|
118
|
-
'',
|
|
119
|
-
),
|
|
120
|
-
)
|
|
121
|
-
.then(() => {
|
|
122
|
-
rl.close();
|
|
123
|
-
fs.unlink(path.resolve(__filename));
|
|
124
|
-
})
|
|
125
|
-
.catch((error) => {
|
|
126
|
-
console.error(error?.message ?? error ?? 'Unknown error.');
|
|
127
|
-
rl.close();
|
|
128
|
-
});
|
package/src/base/base.service.ts
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Document,
|
|
3
|
-
ObjectId,
|
|
4
|
-
ProjectionType,
|
|
5
|
-
QueryOptions,
|
|
6
|
-
QueryWithHelpers,
|
|
7
|
-
UpdateQuery,
|
|
8
|
-
} from 'mongoose';
|
|
9
|
-
import { SoftDeleteModel } from 'mongoose-delete';
|
|
10
|
-
|
|
11
|
-
export interface IQueryOptions {
|
|
12
|
-
page: number;
|
|
13
|
-
limit: number;
|
|
14
|
-
sorter: any;
|
|
15
|
-
filter: any;
|
|
16
|
-
lean: boolean;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
interface PaginateModel<T> {
|
|
20
|
-
paginate(
|
|
21
|
-
filter: any,
|
|
22
|
-
options: {
|
|
23
|
-
page: number;
|
|
24
|
-
limit: number;
|
|
25
|
-
sort: any;
|
|
26
|
-
lean: boolean;
|
|
27
|
-
},
|
|
28
|
-
): Promise<T>;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
class BaseService<T extends Document, CreateDto> {
|
|
32
|
-
constructor(private readonly model: SoftDeleteModel<T> & PaginateModel<T>) {
|
|
33
|
-
this.model = model;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
async index(query: IQueryOptions) {
|
|
37
|
-
const sort = { [query.sorter.column]: query.sorter.state };
|
|
38
|
-
|
|
39
|
-
return await this.model.paginate(query.filter, {
|
|
40
|
-
page: query.page,
|
|
41
|
-
limit: query.limit,
|
|
42
|
-
sort: sort,
|
|
43
|
-
lean: query.lean,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
async create(data: CreateDto | CreateDto[]): Promise<T> {
|
|
48
|
-
return await this.model.create(data);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
async find(
|
|
52
|
-
filter: any,
|
|
53
|
-
projection?: ProjectionType<T>,
|
|
54
|
-
options?: QueryOptions<T>,
|
|
55
|
-
): Promise<QueryWithHelpers<T[], T>> {
|
|
56
|
-
return await this.model.find(filter, projection, options);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
async findOne(
|
|
60
|
-
filter: any,
|
|
61
|
-
projection?: ProjectionType<T>,
|
|
62
|
-
options?: QueryOptions<T>,
|
|
63
|
-
): Promise<QueryWithHelpers<T | null, T>> {
|
|
64
|
-
return await this.model.findOne(filter, projection, options);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
async findById(
|
|
68
|
-
id: string | ObjectId,
|
|
69
|
-
projection?: ProjectionType<T>,
|
|
70
|
-
options?: QueryOptions<T>,
|
|
71
|
-
): Promise<QueryWithHelpers<T | null, T>> {
|
|
72
|
-
return await this.model.findById(id, projection, options);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
async updateOne(
|
|
76
|
-
args: any,
|
|
77
|
-
set: UpdateQuery<T>,
|
|
78
|
-
options?: QueryOptions<T>,
|
|
79
|
-
): Promise<boolean> {
|
|
80
|
-
return (await this.model.updateOne(args, set, options as UpdateQuery<T>))
|
|
81
|
-
.acknowledged;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
async updateMany(
|
|
85
|
-
args: any,
|
|
86
|
-
set: UpdateQuery<T>,
|
|
87
|
-
options?: QueryOptions<T>,
|
|
88
|
-
): Promise<number> {
|
|
89
|
-
return (await this.model.updateMany(args, set, options as UpdateQuery<T>))
|
|
90
|
-
.modifiedCount;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
async deleteOne(args: any): Promise<boolean> {
|
|
94
|
-
return (await this.model.deleteOne(args)).acknowledged;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
async deleteMany(args: any): Promise<number> {
|
|
98
|
-
return (await this.model.deleteMany(args)).deletedCount;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export { BaseService };
|
|
103
|
-
|
package/src/index.ts
DELETED
package/tsconfig.bundle.json
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "./tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
// Transpilation settings.
|
|
5
|
-
"module": "ES2020",
|
|
6
|
-
"target": "ES5",
|
|
7
|
-
// Output settings.
|
|
8
|
-
"newLine": "LF",
|
|
9
|
-
"sourceMap": true,
|
|
10
|
-
// Type declaration settings.
|
|
11
|
-
"declaration": true,
|
|
12
|
-
"declarationDir": "types/",
|
|
13
|
-
"declarationMap": true
|
|
14
|
-
},
|
|
15
|
-
"exclude": [
|
|
16
|
-
"./src/**/*.test.ts",
|
|
17
|
-
"./src/**/*.test.tsx"
|
|
18
|
-
]
|
|
19
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
// React.js JSX settings.
|
|
4
|
-
"jsx": "react",
|
|
5
|
-
"jsxFactory": "React.createElement",
|
|
6
|
-
"jsxFragmentFactory": "React.Fragment",
|
|
7
|
-
|
|
8
|
-
// Module settings.
|
|
9
|
-
"allowSyntheticDefaultImports": true,
|
|
10
|
-
"esModuleInterop": true,
|
|
11
|
-
"isolatedModules": true,
|
|
12
|
-
"moduleResolution": "node",
|
|
13
|
-
"resolveJsonModule": true,
|
|
14
|
-
|
|
15
|
-
// Strictness and quality settings.
|
|
16
|
-
"alwaysStrict": true,
|
|
17
|
-
"exactOptionalPropertyTypes": true,
|
|
18
|
-
"forceConsistentCasingInFileNames": true,
|
|
19
|
-
"noFallthroughCasesInSwitch": true,
|
|
20
|
-
"noImplicitOverride": true,
|
|
21
|
-
"noImplicitReturns": true,
|
|
22
|
-
"noPropertyAccessFromIndexSignature": true,
|
|
23
|
-
"noUncheckedIndexedAccess": true,
|
|
24
|
-
"noUnusedLocals": true,
|
|
25
|
-
"noUnusedParameters": true,
|
|
26
|
-
"strict": true,
|
|
27
|
-
|
|
28
|
-
// Type-checking settings.
|
|
29
|
-
"lib": ["ES2020", "dom"],
|
|
30
|
-
"skipDefaultLibCheck": true,
|
|
31
|
-
"skipLibCheck": true,
|
|
32
|
-
"types": ["jest"]
|
|
33
|
-
},
|
|
34
|
-
"include": ["./src/**/*.ts", "./src/**/*.tsx"]
|
|
35
|
-
}
|