@rafikidota/cuba-ofertas-scraping 0.42.1 → 0.47.0
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/.github/workflows/publish.yml +37 -0
- package/dist/modules/index.d.ts +2 -0
- package/dist/modules/index.js +2 -0
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/repository/env/repository.env.config.d.ts +7 -0
- package/dist/modules/repository/env/repository.env.config.js +47 -0
- package/dist/modules/repository/env/repository.env.config.js.map +1 -0
- package/dist/modules/repository/env/repository.env.validation.d.ts +2 -0
- package/dist/modules/repository/env/repository.env.validation.js +45 -0
- package/dist/modules/repository/env/repository.env.validation.js.map +1 -0
- package/dist/modules/repository/services/category.repository.service.d.ts +4 -1
- package/dist/modules/repository/services/category.repository.service.js +35 -24
- package/dist/modules/repository/services/category.repository.service.js.map +1 -1
- package/dist/modules/repository/services/image.repository.service.d.ts +4 -1
- package/dist/modules/repository/services/image.repository.service.js +35 -24
- package/dist/modules/repository/services/image.repository.service.js.map +1 -1
- package/dist/modules/repository/services/product.repository.service.d.ts +4 -1
- package/dist/modules/repository/services/product.repository.service.js +35 -24
- package/dist/modules/repository/services/product.repository.service.js.map +1 -1
- package/dist/modules/repository/services/provider.repository.service.d.ts +4 -1
- package/dist/modules/repository/services/provider.repository.service.js +35 -24
- package/dist/modules/repository/services/provider.repository.service.js.map +1 -1
- package/dist/modules/repository/services/province.repository.service.d.ts +4 -1
- package/dist/modules/repository/services/province.repository.service.js +35 -24
- package/dist/modules/repository/services/province.repository.service.js.map +1 -1
- package/dist/modules/storage/storage.service.js +1 -1
- package/dist/modules/storage/storage.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: Publish Package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
id-token: write # Required for OIDC
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- uses: pnpm/action-setup@v4
|
|
19
|
+
with:
|
|
20
|
+
version: 10
|
|
21
|
+
- uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: '24'
|
|
24
|
+
registry-url: 'https://registry.npmjs.org'
|
|
25
|
+
cache: 'pnpm'
|
|
26
|
+
|
|
27
|
+
- name: Install dependencies
|
|
28
|
+
run: pnpm install --frozen-lockfile
|
|
29
|
+
|
|
30
|
+
- name: Lint
|
|
31
|
+
run: pnpm run lint
|
|
32
|
+
|
|
33
|
+
- name: Build
|
|
34
|
+
run: pnpm run build
|
|
35
|
+
|
|
36
|
+
- name: Publish to npm
|
|
37
|
+
run: pnpm publish --no-git-checks
|
package/dist/modules/index.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export * from './rabbitmq/rabbitmq.module';
|
|
|
29
29
|
export * from './rabbitmq/rabbitmq.service';
|
|
30
30
|
export * from './repository/repository.module';
|
|
31
31
|
export * from './repository/repository.service';
|
|
32
|
+
export * from './repository/env/repository.env.config';
|
|
33
|
+
export * from './repository/env/repository.env.validation';
|
|
32
34
|
export * from './repository/services/category.repository.service';
|
|
33
35
|
export * from './repository/services/image.repository.service';
|
|
34
36
|
export * from './repository/services/product.repository.service';
|
package/dist/modules/index.js
CHANGED
|
@@ -45,6 +45,8 @@ __exportStar(require("./rabbitmq/rabbitmq.module"), exports);
|
|
|
45
45
|
__exportStar(require("./rabbitmq/rabbitmq.service"), exports);
|
|
46
46
|
__exportStar(require("./repository/repository.module"), exports);
|
|
47
47
|
__exportStar(require("./repository/repository.service"), exports);
|
|
48
|
+
__exportStar(require("./repository/env/repository.env.config"), exports);
|
|
49
|
+
__exportStar(require("./repository/env/repository.env.validation"), exports);
|
|
48
50
|
__exportStar(require("./repository/services/category.repository.service"), exports);
|
|
49
51
|
__exportStar(require("./repository/services/image.repository.service"), exports);
|
|
50
52
|
__exportStar(require("./repository/services/product.repository.service"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C;AAC1C,8EAA4D;AAC5D,sFAAoE;AACpE,oFAAkE;AAClE,8EAA4D;AAE5D,iEAA+C;AAC/C,kEAAgD;AAEhD,iEAA+C;AAC/C,qEAAmD;AACnD,2DAAyC;AACzC,4DAA0C;AAC1C,6EAA2D;AAC3D,6EAA2D;AAC3D,8EAA4D;AAE5D,yDAAuC;AAEvC,uDAAqC;AACrC,wDAAsC;AACtC,+DAA6C;AAC7C,mEAAiD;AAEjD,+DAA6C;AAC7C,gEAA8C;AAE9C,+DAA6C;AAC7C,gEAA8C;AAE9C,qEAAmD;AACnD,yEAAuD;AACvD,gEAA8C;AAC9C,6DAA2C;AAC3C,8DAA4C;AAE5C,iEAA+C;AAC/C,kEAAgD;AAChD,oFAAkE;AAClE,iFAA+D;AAC/D,mFAAiE;AACjE,oFAAkE;AAClE,oFAAkE;AAClE,sEAAoD;AAEpD,2DAAyC;AACzC,4DAA0C;AAE1C,qEAAmD;AACnD,yEAAuD;AACvD,6DAA2C;AAC3C,8DAA4C;AAE5C,6DAA2C;AAC3C,8DAA4C;AAE5C,uEAAqD;AACrD,2EAAyD;AACzD,+DAA6C;AAC7C,gEAA8C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C;AAC1C,8EAA4D;AAC5D,sFAAoE;AACpE,oFAAkE;AAClE,8EAA4D;AAE5D,iEAA+C;AAC/C,kEAAgD;AAEhD,iEAA+C;AAC/C,qEAAmD;AACnD,2DAAyC;AACzC,4DAA0C;AAC1C,6EAA2D;AAC3D,6EAA2D;AAC3D,8EAA4D;AAE5D,yDAAuC;AAEvC,uDAAqC;AACrC,wDAAsC;AACtC,+DAA6C;AAC7C,mEAAiD;AAEjD,+DAA6C;AAC7C,gEAA8C;AAE9C,+DAA6C;AAC7C,gEAA8C;AAE9C,qEAAmD;AACnD,yEAAuD;AACvD,gEAA8C;AAC9C,6DAA2C;AAC3C,8DAA4C;AAE5C,iEAA+C;AAC/C,kEAAgD;AAChD,yEAAuD;AACvD,6EAA2D;AAC3D,oFAAkE;AAClE,iFAA+D;AAC/D,mFAAiE;AACjE,oFAAkE;AAClE,oFAAkE;AAClE,sEAAoD;AAEpD,2DAAyC;AACzC,4DAA0C;AAE1C,qEAAmD;AACnD,yEAAuD;AACvD,6DAA2C;AAC3C,8DAA4C;AAE5C,6DAA2C;AAC3C,8DAA4C;AAE5C,uEAAqD;AACrD,2EAAyD;AACzD,+DAA6C;AAC7C,gEAA8C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.RepositoryEnvConfig = void 0;
|
|
37
|
+
const dotenv = __importStar(require("dotenv"));
|
|
38
|
+
dotenv.config();
|
|
39
|
+
const RepositoryEnvConfig = () => ({
|
|
40
|
+
REPOSITORY_SAVE_CATEGORY_LOG: JSON.parse(process.env.REPOSITORY_SAVE_CATEGORY_LOG),
|
|
41
|
+
REPOSITORY_SAVE_IMAGE_LOG: JSON.parse(process.env.REPOSITORY_SAVE_IMAGE_LOG),
|
|
42
|
+
REPOSITORY_SAVE_PRODUCT_LOG: JSON.parse(process.env.REPOSITORY_SAVE_PRODUCT_LOG),
|
|
43
|
+
REPOSITORY_SAVE_PROVIDER_LOG: JSON.parse(process.env.REPOSITORY_SAVE_PROVIDER_LOG),
|
|
44
|
+
REPOSITORY_SAVE_PROVINCE_LOG: JSON.parse(process.env.REPOSITORY_SAVE_PROVINCE_LOG),
|
|
45
|
+
});
|
|
46
|
+
exports.RepositoryEnvConfig = RepositoryEnvConfig;
|
|
47
|
+
//# sourceMappingURL=repository.env.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.env.config.js","sourceRoot":"","sources":["../../../../src/modules/repository/env/repository.env.config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAET,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAAC;IACxC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CACtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CACzC;IACD,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAC5E,2BAA2B,EAAE,IAAI,CAAC,KAAK,CACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CACxC;IACD,4BAA4B,EAAE,IAAI,CAAC,KAAK,CACtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CACzC;IACD,4BAA4B,EAAE,IAAI,CAAC,KAAK,CACtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CACzC;CACF,CAAC,CAAC;AAdU,QAAA,mBAAmB,uBAc7B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.RepositoryConfigValidationSchema = void 0;
|
|
37
|
+
const joi = __importStar(require("joi"));
|
|
38
|
+
exports.RepositoryConfigValidationSchema = joi.object({
|
|
39
|
+
REPOSITORY_SAVE_CATEGORY_LOG: joi.boolean().default(true),
|
|
40
|
+
REPOSITORY_SAVE_IMAGE_LOG: joi.boolean().default(true),
|
|
41
|
+
REPOSITORY_SAVE_PRODUCT_LOG: joi.boolean().default(true),
|
|
42
|
+
REPOSITORY_SAVE_PROVIDER_LOG: joi.boolean().default(true),
|
|
43
|
+
REPOSITORY_SAVE_PROVINCE_LOG: joi.boolean().default(true),
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=repository.env.validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.env.validation.js","sourceRoot":"","sources":["../../../../src/modules/repository/env/repository.env.validation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2B;AAEd,QAAA,gCAAgC,GAAG,GAAG,CAAC,MAAM,CAAC;IACzD,4BAA4B,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzD,yBAAyB,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACtD,2BAA2B,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxD,4BAA4B,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzD,4BAA4B,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC1D,CAAC,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
1
2
|
import { Repository } from 'typeorm';
|
|
2
3
|
import { Category } from '../../../common/class/category';
|
|
3
4
|
import { CategoryEntity } from '../entities/category.entity';
|
|
4
5
|
export declare class CategoryRepositoryService {
|
|
5
6
|
private readonly repository;
|
|
7
|
+
private readonly config;
|
|
6
8
|
private logger;
|
|
7
|
-
|
|
9
|
+
private readonly logging;
|
|
10
|
+
constructor(repository: Repository<CategoryEntity>, config: ConfigService);
|
|
8
11
|
find(): Promise<Category[]>;
|
|
9
12
|
count(): Promise<number>;
|
|
10
13
|
save(categories: Category[]): Promise<void>;
|
|
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.CategoryRepositoryService = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const config_1 = require("@nestjs/config");
|
|
17
18
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
18
19
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
20
|
const typeorm_2 = require("typeorm");
|
|
@@ -23,9 +24,11 @@ const category_1 = require("../../../common/class/category");
|
|
|
23
24
|
const category_entity_1 = require("../entities/category.entity");
|
|
24
25
|
const event_enum_1 = require("../../../common/enum/event.enum");
|
|
25
26
|
let CategoryRepositoryService = class CategoryRepositoryService {
|
|
26
|
-
constructor(repository) {
|
|
27
|
+
constructor(repository, config) {
|
|
27
28
|
this.repository = repository;
|
|
29
|
+
this.config = config;
|
|
28
30
|
this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
|
|
31
|
+
this.logging = this.config.get('REPOSITORY_SAVE_CATEGORY_LOG');
|
|
29
32
|
}
|
|
30
33
|
async find() {
|
|
31
34
|
const entities = await this.repository.find();
|
|
@@ -35,31 +38,38 @@ let CategoryRepositoryService = class CategoryRepositoryService {
|
|
|
35
38
|
return this.repository.count();
|
|
36
39
|
}
|
|
37
40
|
async save(categories) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
try {
|
|
42
|
+
const sizes = { previous: await this.repository.count(), current: 0 };
|
|
43
|
+
const datas = categories.map((c) => c.getData()).filter((x) => x.id);
|
|
44
|
+
const identificators = datas.map((x) => x.id);
|
|
45
|
+
const matches = await this.repository
|
|
46
|
+
.find({
|
|
47
|
+
select: ['id'],
|
|
48
|
+
where: { id: (0, typeorm_2.In)(identificators) },
|
|
49
|
+
})
|
|
50
|
+
.then((res) => new Set(res.map((x) => x.id)));
|
|
51
|
+
const entities = datas
|
|
52
|
+
.filter((x) => !matches.has(x.id))
|
|
53
|
+
.map((x) => this.repository.create(x));
|
|
54
|
+
if (entities.length > 0) {
|
|
55
|
+
await this.repository.manager.transaction(async (manager) => {
|
|
56
|
+
await manager.save(entities);
|
|
57
|
+
});
|
|
58
|
+
if (this.logging) {
|
|
59
|
+
entities.forEach((x) => this.logger.debug(`✅ ${x.name}`));
|
|
51
60
|
}
|
|
52
61
|
}
|
|
62
|
+
sizes.current = sizes.previous + entities.length;
|
|
63
|
+
if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
|
|
64
|
+
const { current: total } = sizes;
|
|
65
|
+
this.logger.verbose(`✅ ${total} categories saved successfully`);
|
|
66
|
+
}
|
|
53
67
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
multiples.current = Math.floor(sizes.current / 10);
|
|
60
|
-
if (multiples.current > multiples.previous) {
|
|
61
|
-
const message = `✅ ${sizes.current} categories has been saved successfully`;
|
|
62
|
-
this.logger.verbose(message);
|
|
68
|
+
catch (error) {
|
|
69
|
+
const { message, stack } = error;
|
|
70
|
+
this.logger.error('🔥 Failed to save categories');
|
|
71
|
+
this.logger.error(message);
|
|
72
|
+
this.logger.error(stack);
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
async reset() {
|
|
@@ -76,6 +86,7 @@ __decorate([
|
|
|
76
86
|
exports.CategoryRepositoryService = CategoryRepositoryService = __decorate([
|
|
77
87
|
(0, common_1.Injectable)(),
|
|
78
88
|
__param(0, (0, typeorm_1.InjectRepository)(category_entity_1.CategoryEntity)),
|
|
79
|
-
__metadata("design:paramtypes", [typeorm_2.Repository
|
|
89
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
90
|
+
config_1.ConfigService])
|
|
80
91
|
], CategoryRepositoryService);
|
|
81
92
|
//# sourceMappingURL=category.repository.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/category.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAChD,6CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"category.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/category.repository.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
1
2
|
import { Repository } from 'typeorm';
|
|
2
3
|
import { Image } from '../../../common/class/image';
|
|
3
4
|
import { ImageEntity } from '../entities/image.entity';
|
|
4
5
|
export declare class ImageRepositoryService {
|
|
5
6
|
private readonly repository;
|
|
7
|
+
private readonly config;
|
|
6
8
|
private logger;
|
|
7
|
-
|
|
9
|
+
private readonly logging;
|
|
10
|
+
constructor(repository: Repository<ImageEntity>, config: ConfigService);
|
|
8
11
|
find(): Promise<Image[]>;
|
|
9
12
|
count(): Promise<number>;
|
|
10
13
|
save(images: Image[]): Promise<void>;
|
|
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.ImageRepositoryService = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const config_1 = require("@nestjs/config");
|
|
17
18
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
18
19
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
20
|
const typeorm_2 = require("typeorm");
|
|
@@ -23,9 +24,11 @@ const image_1 = require("../../../common/class/image");
|
|
|
23
24
|
const image_entity_1 = require("../entities/image.entity");
|
|
24
25
|
const event_enum_1 = require("../../../common/enum/event.enum");
|
|
25
26
|
let ImageRepositoryService = class ImageRepositoryService {
|
|
26
|
-
constructor(repository) {
|
|
27
|
+
constructor(repository, config) {
|
|
27
28
|
this.repository = repository;
|
|
29
|
+
this.config = config;
|
|
28
30
|
this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
|
|
31
|
+
this.logging = this.config.get('REPOSITORY_SAVE_IMAGE_LOG');
|
|
29
32
|
}
|
|
30
33
|
async find() {
|
|
31
34
|
const entities = await this.repository.find();
|
|
@@ -35,31 +38,38 @@ let ImageRepositoryService = class ImageRepositoryService {
|
|
|
35
38
|
return this.repository.count();
|
|
36
39
|
}
|
|
37
40
|
async save(images) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
try {
|
|
42
|
+
const sizes = { previous: await this.repository.count(), current: 0 };
|
|
43
|
+
const datas = images.map((c) => c.getData()).filter((x) => x.id);
|
|
44
|
+
const identificators = datas.map((x) => x.id);
|
|
45
|
+
const matches = await this.repository
|
|
46
|
+
.find({
|
|
47
|
+
select: ['id'],
|
|
48
|
+
where: { id: (0, typeorm_2.In)(identificators) },
|
|
49
|
+
})
|
|
50
|
+
.then((res) => new Set(res.map((x) => x.id)));
|
|
51
|
+
const entities = datas
|
|
52
|
+
.filter((x) => !matches.has(x.id))
|
|
53
|
+
.map((x) => this.repository.create(x));
|
|
54
|
+
if (entities.length > 0) {
|
|
55
|
+
await this.repository.manager.transaction(async (manager) => {
|
|
56
|
+
await manager.save(entities);
|
|
57
|
+
});
|
|
58
|
+
if (this.logging) {
|
|
59
|
+
entities.forEach((x) => this.logger.debug(`✅ ${x.name}`));
|
|
51
60
|
}
|
|
52
61
|
}
|
|
62
|
+
sizes.current = sizes.previous + entities.length;
|
|
63
|
+
if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
|
|
64
|
+
const { current: total } = sizes;
|
|
65
|
+
this.logger.verbose(`✅ ${total} images saved successfully`);
|
|
66
|
+
}
|
|
53
67
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
multiples.current = Math.floor(sizes.current / 10);
|
|
60
|
-
if (multiples.current > multiples.previous) {
|
|
61
|
-
const message = `✅ ${sizes.current} images has been saved successfully`;
|
|
62
|
-
this.logger.verbose(message);
|
|
68
|
+
catch (error) {
|
|
69
|
+
const { message, stack } = error;
|
|
70
|
+
this.logger.error('🔥 Failed to save images');
|
|
71
|
+
this.logger.error(message);
|
|
72
|
+
this.logger.error(stack);
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
async reset() {
|
|
@@ -76,6 +86,7 @@ __decorate([
|
|
|
76
86
|
exports.ImageRepositoryService = ImageRepositoryService = __decorate([
|
|
77
87
|
(0, common_1.Injectable)(),
|
|
78
88
|
__param(0, (0, typeorm_1.InjectRepository)(image_entity_1.ImageEntity)),
|
|
79
|
-
__metadata("design:paramtypes", [typeorm_2.Repository
|
|
89
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
90
|
+
config_1.ConfigService])
|
|
80
91
|
], ImageRepositoryService);
|
|
81
92
|
//# sourceMappingURL=image.repository.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/image.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAChD,6CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"image.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/image.repository.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
1
2
|
import { Repository } from 'typeorm';
|
|
2
3
|
import { Product } from '../../../common/class/product';
|
|
3
4
|
import { ProductEntity } from '../entities/product.entity';
|
|
4
5
|
export declare class ProductRepositoryService {
|
|
5
6
|
private readonly repository;
|
|
7
|
+
private readonly config;
|
|
6
8
|
private logger;
|
|
7
|
-
|
|
9
|
+
private readonly logging;
|
|
10
|
+
constructor(repository: Repository<ProductEntity>, config: ConfigService);
|
|
8
11
|
find(): Promise<Product[]>;
|
|
9
12
|
count(): Promise<number>;
|
|
10
13
|
save(products: Product[]): Promise<void>;
|
|
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.ProductRepositoryService = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const config_1 = require("@nestjs/config");
|
|
17
18
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
18
19
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
20
|
const typeorm_2 = require("typeorm");
|
|
@@ -23,9 +24,11 @@ const product_1 = require("../../../common/class/product");
|
|
|
23
24
|
const product_entity_1 = require("../entities/product.entity");
|
|
24
25
|
const event_enum_1 = require("../../../common/enum/event.enum");
|
|
25
26
|
let ProductRepositoryService = class ProductRepositoryService {
|
|
26
|
-
constructor(repository) {
|
|
27
|
+
constructor(repository, config) {
|
|
27
28
|
this.repository = repository;
|
|
29
|
+
this.config = config;
|
|
28
30
|
this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
|
|
31
|
+
this.logging = this.config.get('REPOSITORY_SAVE_PRODUCT_LOG');
|
|
29
32
|
}
|
|
30
33
|
async find() {
|
|
31
34
|
const entities = await this.repository.find();
|
|
@@ -35,31 +38,38 @@ let ProductRepositoryService = class ProductRepositoryService {
|
|
|
35
38
|
return this.repository.count();
|
|
36
39
|
}
|
|
37
40
|
async save(products) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
try {
|
|
42
|
+
const sizes = { previous: await this.repository.count(), current: 0 };
|
|
43
|
+
const datas = products.map((c) => c.getData()).filter((x) => x.id);
|
|
44
|
+
const identificators = datas.map((x) => x.id);
|
|
45
|
+
const matches = await this.repository
|
|
46
|
+
.find({
|
|
47
|
+
select: ['id'],
|
|
48
|
+
where: { id: (0, typeorm_2.In)(identificators) },
|
|
49
|
+
})
|
|
50
|
+
.then((res) => new Set(res.map((x) => x.id)));
|
|
51
|
+
const entities = datas
|
|
52
|
+
.filter((x) => !matches.has(x.id))
|
|
53
|
+
.map((x) => this.repository.create(x));
|
|
54
|
+
if (entities.length > 0) {
|
|
55
|
+
await this.repository.manager.transaction(async (manager) => {
|
|
56
|
+
await manager.save(entities);
|
|
57
|
+
});
|
|
58
|
+
if (this.logging) {
|
|
59
|
+
entities.forEach((x) => this.logger.debug(`✅ ${x.url}`));
|
|
51
60
|
}
|
|
52
61
|
}
|
|
62
|
+
sizes.current = sizes.previous + entities.length;
|
|
63
|
+
if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
|
|
64
|
+
const { current: total } = sizes;
|
|
65
|
+
this.logger.verbose(`✅ ${total} products saved successfully`);
|
|
66
|
+
}
|
|
53
67
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
multiples.current = Math.floor(sizes.current / 10);
|
|
60
|
-
if (multiples.current > multiples.previous) {
|
|
61
|
-
const message = `✅ ${sizes.current} products has been saved successfully`;
|
|
62
|
-
this.logger.verbose(message);
|
|
68
|
+
catch (error) {
|
|
69
|
+
const { message, stack } = error;
|
|
70
|
+
this.logger.error('🔥 Failed to save products');
|
|
71
|
+
this.logger.error(message);
|
|
72
|
+
this.logger.error(stack);
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
async reset() {
|
|
@@ -76,6 +86,7 @@ __decorate([
|
|
|
76
86
|
exports.ProductRepositoryService = ProductRepositoryService = __decorate([
|
|
77
87
|
(0, common_1.Injectable)(),
|
|
78
88
|
__param(0, (0, typeorm_1.InjectRepository)(product_entity_1.ProductEntity)),
|
|
79
|
-
__metadata("design:paramtypes", [typeorm_2.Repository
|
|
89
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
90
|
+
config_1.ConfigService])
|
|
80
91
|
], ProductRepositoryService);
|
|
81
92
|
//# sourceMappingURL=product.repository.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/product.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAChD,6CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"product.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/product.repository.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
1
2
|
import { Repository } from 'typeorm';
|
|
2
3
|
import { Provider } from '../../../common/class/provider';
|
|
3
4
|
import { ProviderEntity } from '../entities/provider.entity';
|
|
4
5
|
export declare class ProviderRepositoryService {
|
|
5
6
|
private readonly repository;
|
|
7
|
+
private readonly config;
|
|
6
8
|
private logger;
|
|
7
|
-
|
|
9
|
+
private readonly logging;
|
|
10
|
+
constructor(repository: Repository<ProviderEntity>, config: ConfigService);
|
|
8
11
|
find(): Promise<Provider[]>;
|
|
9
12
|
count(): Promise<number>;
|
|
10
13
|
save(providers: Provider[]): Promise<void>;
|
|
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.ProviderRepositoryService = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const config_1 = require("@nestjs/config");
|
|
17
18
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
18
19
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
20
|
const typeorm_2 = require("typeorm");
|
|
@@ -23,9 +24,11 @@ const provider_1 = require("../../../common/class/provider");
|
|
|
23
24
|
const provider_entity_1 = require("../entities/provider.entity");
|
|
24
25
|
const event_enum_1 = require("../../../common/enum/event.enum");
|
|
25
26
|
let ProviderRepositoryService = class ProviderRepositoryService {
|
|
26
|
-
constructor(repository) {
|
|
27
|
+
constructor(repository, config) {
|
|
27
28
|
this.repository = repository;
|
|
29
|
+
this.config = config;
|
|
28
30
|
this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
|
|
31
|
+
this.logging = this.config.get('REPOSITORY_SAVE_PROVIDER_LOG');
|
|
29
32
|
}
|
|
30
33
|
async find() {
|
|
31
34
|
const entities = await this.repository.find();
|
|
@@ -35,31 +38,38 @@ let ProviderRepositoryService = class ProviderRepositoryService {
|
|
|
35
38
|
return this.repository.count();
|
|
36
39
|
}
|
|
37
40
|
async save(providers) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
try {
|
|
42
|
+
const sizes = { previous: await this.repository.count(), current: 0 };
|
|
43
|
+
const datas = providers.map((c) => c.getData()).filter((x) => x.id);
|
|
44
|
+
const identificators = datas.map((x) => x.id);
|
|
45
|
+
const matches = await this.repository
|
|
46
|
+
.find({
|
|
47
|
+
select: ['id'],
|
|
48
|
+
where: { id: (0, typeorm_2.In)(identificators) },
|
|
49
|
+
})
|
|
50
|
+
.then((res) => new Set(res.map((x) => x.id)));
|
|
51
|
+
const entities = datas
|
|
52
|
+
.filter((x) => !matches.has(x.id))
|
|
53
|
+
.map((x) => this.repository.create(x));
|
|
54
|
+
if (entities.length > 0) {
|
|
55
|
+
await this.repository.manager.transaction(async (manager) => {
|
|
56
|
+
await manager.save(entities);
|
|
57
|
+
});
|
|
58
|
+
if (this.logging) {
|
|
59
|
+
entities.forEach((x) => this.logger.debug(`✅ ${x.name}`));
|
|
51
60
|
}
|
|
52
61
|
}
|
|
62
|
+
sizes.current = sizes.previous + entities.length;
|
|
63
|
+
if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
|
|
64
|
+
const { current: total } = sizes;
|
|
65
|
+
this.logger.verbose(`✅ ${total} providers saved successfully`);
|
|
66
|
+
}
|
|
53
67
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
multiples.current = Math.floor(sizes.current / 10);
|
|
60
|
-
if (multiples.current > multiples.previous) {
|
|
61
|
-
const message = `✅ ${sizes.current} providers has been saved successfully`;
|
|
62
|
-
this.logger.verbose(message);
|
|
68
|
+
catch (error) {
|
|
69
|
+
const { message, stack } = error;
|
|
70
|
+
this.logger.error('🔥 Failed to save providers');
|
|
71
|
+
this.logger.error(message);
|
|
72
|
+
this.logger.error(stack);
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
async reset() {
|
|
@@ -76,6 +86,7 @@ __decorate([
|
|
|
76
86
|
exports.ProviderRepositoryService = ProviderRepositoryService = __decorate([
|
|
77
87
|
(0, common_1.Injectable)(),
|
|
78
88
|
__param(0, (0, typeorm_1.InjectRepository)(provider_entity_1.ProviderEntity)),
|
|
79
|
-
__metadata("design:paramtypes", [typeorm_2.Repository
|
|
89
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
90
|
+
config_1.ConfigService])
|
|
80
91
|
], ProviderRepositoryService);
|
|
81
92
|
//# sourceMappingURL=provider.repository.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/provider.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAChD,6CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"provider.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/provider.repository.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
1
2
|
import { Repository } from 'typeorm';
|
|
2
3
|
import { Province } from '../../../common/class/province';
|
|
3
4
|
import { ProvinceEntity } from '../entities/province.entity';
|
|
4
5
|
export declare class ProvinceRepositoryService {
|
|
5
6
|
private readonly repository;
|
|
7
|
+
private readonly config;
|
|
6
8
|
private logger;
|
|
7
|
-
|
|
9
|
+
private readonly logging;
|
|
10
|
+
constructor(repository: Repository<ProvinceEntity>, config: ConfigService);
|
|
8
11
|
find(): Promise<Province[]>;
|
|
9
12
|
count(): Promise<number>;
|
|
10
13
|
save(provinces: Province[]): Promise<void>;
|
|
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.ProvinceRepositoryService = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const config_1 = require("@nestjs/config");
|
|
17
18
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
18
19
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
20
|
const typeorm_2 = require("typeorm");
|
|
@@ -23,9 +24,11 @@ const province_1 = require("../../../common/class/province");
|
|
|
23
24
|
const province_entity_1 = require("../entities/province.entity");
|
|
24
25
|
const event_enum_1 = require("../../../common/enum/event.enum");
|
|
25
26
|
let ProvinceRepositoryService = class ProvinceRepositoryService {
|
|
26
|
-
constructor(repository) {
|
|
27
|
+
constructor(repository, config) {
|
|
27
28
|
this.repository = repository;
|
|
29
|
+
this.config = config;
|
|
28
30
|
this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
|
|
31
|
+
this.logging = this.config.get('REPOSITORY_SAVE_PROVINCE_LOG');
|
|
29
32
|
}
|
|
30
33
|
async find() {
|
|
31
34
|
const entities = await this.repository.find();
|
|
@@ -35,31 +38,38 @@ let ProvinceRepositoryService = class ProvinceRepositoryService {
|
|
|
35
38
|
return this.repository.count();
|
|
36
39
|
}
|
|
37
40
|
async save(provinces) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
try {
|
|
42
|
+
const sizes = { previous: await this.repository.count(), current: 0 };
|
|
43
|
+
const datas = provinces.map((c) => c.getData()).filter((x) => x.id);
|
|
44
|
+
const identificators = datas.map((x) => x.id);
|
|
45
|
+
const matches = await this.repository
|
|
46
|
+
.find({
|
|
47
|
+
select: ['id'],
|
|
48
|
+
where: { id: (0, typeorm_2.In)(identificators) },
|
|
49
|
+
})
|
|
50
|
+
.then((res) => new Set(res.map((x) => x.id)));
|
|
51
|
+
const entities = datas
|
|
52
|
+
.filter((x) => !matches.has(x.id))
|
|
53
|
+
.map((x) => this.repository.create(x));
|
|
54
|
+
if (entities.length > 0) {
|
|
55
|
+
await this.repository.manager.transaction(async (manager) => {
|
|
56
|
+
await manager.save(entities);
|
|
57
|
+
});
|
|
58
|
+
if (this.logging) {
|
|
59
|
+
entities.forEach((x) => this.logger.debug(`✅ ${x.name}`));
|
|
51
60
|
}
|
|
52
61
|
}
|
|
62
|
+
sizes.current = sizes.previous + entities.length;
|
|
63
|
+
if (Math.floor(sizes.current / 10) > Math.floor(sizes.previous / 10)) {
|
|
64
|
+
const { current: total } = sizes;
|
|
65
|
+
this.logger.verbose(`✅ ${total} provinces saved successfully`);
|
|
66
|
+
}
|
|
53
67
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
multiples.current = Math.floor(sizes.current / 10);
|
|
60
|
-
if (multiples.current > multiples.previous) {
|
|
61
|
-
const message = `✅ ${sizes.current} provinces has been saved successfully`;
|
|
62
|
-
this.logger.verbose(message);
|
|
68
|
+
catch (error) {
|
|
69
|
+
const { message, stack } = error;
|
|
70
|
+
this.logger.error('🔥 Failed to save provinces');
|
|
71
|
+
this.logger.error(message);
|
|
72
|
+
this.logger.error(stack);
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
async reset() {
|
|
@@ -76,6 +86,7 @@ __decorate([
|
|
|
76
86
|
exports.ProvinceRepositoryService = ProvinceRepositoryService = __decorate([
|
|
77
87
|
(0, common_1.Injectable)(),
|
|
78
88
|
__param(0, (0, typeorm_1.InjectRepository)(province_entity_1.ProvinceEntity)),
|
|
79
|
-
__metadata("design:paramtypes", [typeorm_2.Repository
|
|
89
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
90
|
+
config_1.ConfigService])
|
|
80
91
|
], ProvinceRepositoryService);
|
|
81
92
|
//# sourceMappingURL=province.repository.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"province.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/province.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAChD,6CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"province.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/province.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAC/C,yDAAgD;AAChD,6CAAmD;AACnD,qCAAyC;AAEzC,0DAAuD;AACvD,gEAA4D;AAC5D,6DAA0D;AAC1D,iEAA6D;AAC7D,gEAAgE;AAGzD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAIpC,YAEE,UAAuD,EACtC,MAAqB;QADrB,eAAU,GAAV,UAAU,CAA4B;QACtC,WAAM,GAAN,MAAM,CAAe;QANhC,WAAM,GAAG,IAAI,eAAM,CAAC,sCAAiB,CAAC,IAAI,CAAC,CAAC;QAQlD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAC,SAAqB;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAEtE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpE,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU;iBAClC,IAAI,CAAC;gBACJ,MAAM,EAAE,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,cAAc,CAAC,EAAE;aAClC,CAAC;iBACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhD,MAAM,QAAQ,GAAG,KAAK;iBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC1D,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;YAED,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAEjD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC;gBACrE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,+BAA+B,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAc,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF,CAAA;AAlEY,8DAAyB;AAsB9B;IADL,IAAA,uBAAO,EAAC,0BAAa,CAAC,cAAc,CAAC;;;;qDAwCrC;oCA7DU,yBAAyB;IADrC,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,0BAAgB,EAAC,gCAAc,CAAC,CAAA;qCACJ,oBAAU;QACd,sBAAa;GAP7B,yBAAyB,CAkErC"}
|
|
@@ -31,7 +31,7 @@ let StorageService = StorageService_1 = class StorageService {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
getPath(slug) {
|
|
34
|
-
const filename = `${slug}
|
|
34
|
+
const filename = `${slug}.json`;
|
|
35
35
|
const filepath = (0, path_1.join)(output_1.OUTPUT_PATH, filename);
|
|
36
36
|
return filepath;
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/modules/storage/storage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,2BAAoC;AACpC,+BAA4B;AAG5B,yDAA2D;AAIpD,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGzB;QACE,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC;YACH,MAAM,aAAE,CAAC,MAAM,CAAC,oBAAW,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,aAAE,CAAC,KAAK,CAAC,oBAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAW,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,MAAM,QAAQ,GAAG,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/modules/storage/storage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,2BAAoC;AACpC,+BAA4B;AAG5B,yDAA2D;AAIpD,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGzB;QACE,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC;YACH,MAAM,aAAE,CAAC,MAAM,CAAC,oBAAW,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,aAAE,CAAC,KAAK,CAAC,oBAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAW,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,MAAM,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,oBAAW,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAsB;QAC/B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,aAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YACnD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,KAAc,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAjDY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;;GACA,cAAc,CAiD1B"}
|