@gooddaydev/common 1.0.3 → 1.0.8
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 -24
- package/types/base/base.service.d.ts +13 -10
- 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 -37
- package/.prettierignore +0 -7
- package/jest.config.js +0 -13
- package/rollup.config.mjs +0 -75
- 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.8
|
|
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<T>;\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.8
|
|
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<T>;\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.8
|
|
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<T>;\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.8
|
|
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<T>;\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.8
|
|
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<T>;\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.8
|
|
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<T>;\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":";;;;;8tDAiCA,ICjCYA,EDiCZC,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,ICnGCmC,EAAApC,cAAA,GAHWA,EAAAA,EAAQA,WAARA,WAGX,CAAA,IAFC,MAAA,QACAA,EAAA,KAAA"}
|
package/package.json
CHANGED
|
@@ -1,38 +1,72 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddaydev/common",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
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
|
-
"eslint": "^9.16.0",
|
|
29
|
-
"jest": "^29.7.0",
|
|
30
|
-
"rollup": "^4.28.1",
|
|
31
|
-
"rollup-plugin-typescript2": "^0.36.0",
|
|
32
|
-
"typescript": "^5.7.2"
|
|
33
|
-
},
|
|
34
61
|
"dependencies": {
|
|
35
|
-
"
|
|
36
|
-
"
|
|
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"
|
|
37
71
|
}
|
|
38
72
|
}
|
|
@@ -3,15 +3,18 @@ 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
19
|
}): Promise<T>;
|
|
17
20
|
}
|
|
@@ -20,13 +23,13 @@ declare class BaseService<T extends Document, CreateDto> {
|
|
|
20
23
|
constructor(model: SoftDeleteModel<T> & PaginateModel<T>);
|
|
21
24
|
index(query: IQueryOptions): Promise<T>;
|
|
22
25
|
create(data: CreateDto | CreateDto[]): Promise<T>;
|
|
23
|
-
find(filter:
|
|
24
|
-
findOne(filter:
|
|
26
|
+
find(filter: Record<string, unknown>, projection?: ProjectionType<T>, options?: QueryOptions<T>): Promise<QueryWithHelpers<T[], T>>;
|
|
27
|
+
findOne(filter: Record<string, unknown>, projection?: ProjectionType<T>, options?: QueryOptions<T>): Promise<QueryWithHelpers<T | null, T>>;
|
|
25
28
|
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:
|
|
29
|
+
updateOne(args: Record<string, unknown>, set: UpdateQuery<T>, options?: QueryOptions<T>): Promise<boolean>;
|
|
30
|
+
updateMany(args: Record<string, unknown>, set: UpdateQuery<T>, options?: QueryOptions<T>): Promise<number>;
|
|
31
|
+
deleteOne(args: Record<string, unknown>): Promise<boolean>;
|
|
32
|
+
deleteMany(args: Record<string, unknown>): Promise<number>;
|
|
30
33
|
}
|
|
31
34
|
export { BaseService };
|
|
32
35
|
//# 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":"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;QACN,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;CACf;AAED,UAAU,aAAa,CAAC,CAAC;IACvB,QAAQ,CACN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;QACrC,IAAI,EAAE,OAAO,CAAC;KACf,GACA,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED,cAAM,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,SAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAInE,KAAK,CAAC,KAAK,EAAE,aAAa;IAW1B,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjD,IAAI,CACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAI9B,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAInC,QAAQ,CACZ,EAAE,EAAE,MAAM,GAAG,QAAQ,EACrB,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAInC,SAAS,CACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,OAAO,CAAC;IAKb,UAAU,CACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,MAAM,CAAC;IAKZ,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAGjE;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
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,37 +0,0 @@
|
|
|
1
|
-
name: 'NPM auto publish'
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
|
-
|
|
8
|
-
permissions: write-all
|
|
9
|
-
|
|
10
|
-
jobs:
|
|
11
|
-
release:
|
|
12
|
-
name: publish
|
|
13
|
-
runs-on: ubuntu-latest
|
|
14
|
-
steps:
|
|
15
|
-
- name: checkout
|
|
16
|
-
uses: actions/checkout@v3.6.0
|
|
17
|
-
- name: setup nodejs environment
|
|
18
|
-
uses: actions/setup-node@v3.8.1
|
|
19
|
-
with:
|
|
20
|
-
node-version: 20
|
|
21
|
-
registry-url: https://registry.npmjs.org
|
|
22
|
-
- name: install dependencies
|
|
23
|
-
run: yarn
|
|
24
|
-
- name: build
|
|
25
|
-
run: yarn build
|
|
26
|
-
- name: 'Automated Version Bump'
|
|
27
|
-
id: version-bump
|
|
28
|
-
uses: 'phips28/gh-action-bump-version@master'
|
|
29
|
-
env:
|
|
30
|
-
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
|
31
|
-
with:
|
|
32
|
-
skip-push: 'true'
|
|
33
|
-
- name: publish
|
|
34
|
-
run: npm publish --access public
|
|
35
|
-
working-directory: .
|
|
36
|
-
env:
|
|
37
|
-
NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}}
|
package/.prettierignore
DELETED
package/jest.config.js
DELETED
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/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
|
-
}
|