@villedemontreal/mongo 7.0.0-beta → 7.0.1

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.
Files changed (44) hide show
  1. package/dist/scripts/index.d.ts +6 -0
  2. package/dist/scripts/index.js +16 -0
  3. package/dist/scripts/index.js.map +1 -0
  4. package/dist/scripts/lint.d.ts +6 -0
  5. package/dist/scripts/lint.js +18 -0
  6. package/dist/scripts/lint.js.map +1 -0
  7. package/dist/scripts/lintFix.d.ts +6 -0
  8. package/dist/scripts/lintFix.js +21 -0
  9. package/dist/scripts/lintFix.js.map +1 -0
  10. package/dist/scripts/showCoverage.d.ts +13 -0
  11. package/dist/scripts/showCoverage.js +40 -0
  12. package/dist/scripts/showCoverage.js.map +1 -0
  13. package/dist/scripts/test.d.ts +13 -0
  14. package/dist/scripts/test.js +29 -0
  15. package/dist/scripts/test.js.map +1 -0
  16. package/dist/scripts/testUnits.d.ts +15 -0
  17. package/dist/scripts/testUnits.js +95 -0
  18. package/dist/scripts/testUnits.js.map +1 -0
  19. package/dist/scripts/watch.d.ts +14 -0
  20. package/dist/scripts/watch.js +96 -0
  21. package/dist/scripts/watch.js.map +1 -0
  22. package/dist/src/config/configs.d.ts +3 -0
  23. package/dist/src/config/configs.js +6 -0
  24. package/dist/src/config/configs.js.map +1 -1
  25. package/dist/src/mongoClient.js +63 -58
  26. package/dist/src/mongoClient.js.map +1 -1
  27. package/dist/src/mongoUpdater.js +9 -9
  28. package/dist/src/mongoUpdater.js.map +1 -1
  29. package/dist/src/mongoUpdater.test.js +9 -9
  30. package/dist/src/mongoUpdater.test.js.map +1 -1
  31. package/dist/src/mongoUtils.js +4 -1
  32. package/dist/src/mongoUtils.js.map +1 -1
  33. package/dist/src/mongoUtils.test.js +1 -0
  34. package/dist/src/mongoUtils.test.js.map +1 -1
  35. package/dist/src/plugins/pagination/index.test.js +1 -1
  36. package/dist/src/plugins/pagination/index.test.js.map +1 -1
  37. package/dist/tests/testingMongoUpdates/1.0.1.js +1 -1
  38. package/dist/tests/testingMongoUpdates/1.0.1.js.map +1 -1
  39. package/package.json +18 -16
  40. package/src/config/configs.ts +9 -0
  41. package/src/mongoClient.ts +80 -69
  42. package/src/mongoUpdater.test.ts +9 -9
  43. package/src/mongoUpdater.ts +9 -10
  44. package/src/plugins/pagination/index.test.ts +1 -1
@@ -0,0 +1,6 @@
1
+ export { LintScript } from './lint';
2
+ export { LintFixScript } from './lintFix';
3
+ export { ShowCoverageScript } from './showCoverage';
4
+ export { TestScript } from './test';
5
+ export { TestUnitsScript } from './testUnits';
6
+ export { WatchScript } from './watch';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WatchScript = exports.TestUnitsScript = exports.TestScript = exports.ShowCoverageScript = exports.LintFixScript = exports.LintScript = void 0;
4
+ var lint_1 = require("./lint");
5
+ Object.defineProperty(exports, "LintScript", { enumerable: true, get: function () { return lint_1.LintScript; } });
6
+ var lintFix_1 = require("./lintFix");
7
+ Object.defineProperty(exports, "LintFixScript", { enumerable: true, get: function () { return lintFix_1.LintFixScript; } });
8
+ var showCoverage_1 = require("./showCoverage");
9
+ Object.defineProperty(exports, "ShowCoverageScript", { enumerable: true, get: function () { return showCoverage_1.ShowCoverageScript; } });
10
+ var test_1 = require("./test");
11
+ Object.defineProperty(exports, "TestScript", { enumerable: true, get: function () { return test_1.TestScript; } });
12
+ var testUnits_1 = require("./testUnits");
13
+ Object.defineProperty(exports, "TestUnitsScript", { enumerable: true, get: function () { return testUnits_1.TestUnitsScript; } });
14
+ var watch_1 = require("./watch");
15
+ Object.defineProperty(exports, "WatchScript", { enumerable: true, get: function () { return watch_1.WatchScript; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../scripts/index.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAC3B,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AACxB,iCAAsC;AAA7B,oGAAA,WAAW,OAAA"}
@@ -0,0 +1,6 @@
1
+ import { ScriptBase } from '@villedemontreal/scripting/dist/src';
2
+ export declare class LintScript extends ScriptBase {
3
+ get name(): string;
4
+ get description(): string;
5
+ protected main(): Promise<void>;
6
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LintScript = void 0;
4
+ const src_1 = require("@villedemontreal/scripting/dist/src");
5
+ const configs_1 = require("../src/config/configs");
6
+ class LintScript extends src_1.ScriptBase {
7
+ get name() {
8
+ return 'lint';
9
+ }
10
+ get description() {
11
+ return `Run the ESLint validation (including TSLint and Prettier rules).`;
12
+ }
13
+ async main() {
14
+ await this.invokeShellCommand(`${configs_1.configs.libRoot}/node_modules/.bin/eslint`, [configs_1.configs.libRoot]);
15
+ }
16
+ }
17
+ exports.LintScript = LintScript;
18
+ //# sourceMappingURL=lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../scripts/lint.ts"],"names":[],"mappings":";;;AAAA,6DAAiE;AACjE,mDAAgD;AAEhD,MAAa,UAAW,SAAQ,gBAAU;IACxC,IAAI,IAAI;QACN,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,kEAAkE,CAAC;IAC5E,CAAC;IAES,KAAK,CAAC,IAAI;QAClB,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,iBAAO,CAAC,OAAO,2BAA2B,EAAE,CAAC,iBAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAClG,CAAC;CACF;AAZD,gCAYC"}
@@ -0,0 +1,6 @@
1
+ import { ScriptBase } from '@villedemontreal/scripting/dist/src';
2
+ export declare class LintFixScript extends ScriptBase {
3
+ get name(): string;
4
+ get description(): string;
5
+ protected main(): Promise<void>;
6
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LintFixScript = void 0;
4
+ const src_1 = require("@villedemontreal/scripting/dist/src");
5
+ const configs_1 = require("../src/config/configs");
6
+ class LintFixScript extends src_1.ScriptBase {
7
+ get name() {
8
+ return 'lint-fix';
9
+ }
10
+ get description() {
11
+ return `Fix the code using ESLint validation (including TSLint and Prettier rules).`;
12
+ }
13
+ async main() {
14
+ await this.invokeShellCommand(`${configs_1.configs.libRoot}/node_modules/.bin/eslint`, [
15
+ '--fix',
16
+ configs_1.configs.libRoot,
17
+ ]);
18
+ }
19
+ }
20
+ exports.LintFixScript = LintFixScript;
21
+ //# sourceMappingURL=lintFix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lintFix.js","sourceRoot":"","sources":["../../scripts/lintFix.ts"],"names":[],"mappings":";;;AAAA,6DAAiE;AACjE,mDAAgD;AAEhD,MAAa,aAAc,SAAQ,gBAAU;IAC3C,IAAI,IAAI;QACN,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,6EAA6E,CAAC;IACvF,CAAC;IAES,KAAK,CAAC,IAAI;QAClB,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,iBAAO,CAAC,OAAO,2BAA2B,EAAE;YAC3E,OAAO;YACP,iBAAO,CAAC,OAAO;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAfD,sCAeC"}
@@ -0,0 +1,13 @@
1
+ import { Command } from '@caporal/core';
2
+ import { ScriptBase } from '@villedemontreal/scripting/dist/src';
3
+ export interface Options {
4
+ report?: string;
5
+ }
6
+ export declare class ShowCoverageScript extends ScriptBase<Options> {
7
+ get name(): string;
8
+ get description(): string;
9
+ protected get requiredDependencies(): string[];
10
+ protected configure(command: Command): Promise<void>;
11
+ protected main(): Promise<void>;
12
+ protected getReportDir(): string;
13
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShowCoverageScript = void 0;
4
+ const core_1 = require("@caporal/core");
5
+ const src_1 = require("@villedemontreal/scripting/dist/src");
6
+ const path = require("path");
7
+ const configs_1 = require("../src/config/configs");
8
+ class ShowCoverageScript extends src_1.ScriptBase {
9
+ get name() {
10
+ return 'show-coverage';
11
+ }
12
+ get description() {
13
+ return `Open the tests coverage report.`;
14
+ }
15
+ get requiredDependencies() {
16
+ return ['nyc'];
17
+ }
18
+ async configure(command) {
19
+ command.option(`--report <path>`, `The relative path to the coverage report directory.`, {
20
+ default: `output/coverage`,
21
+ validator: core_1.program.STRING,
22
+ });
23
+ }
24
+ async main() {
25
+ if (configs_1.configs.isWindows) {
26
+ await this.invokeShellCommand('start', ['', this.getReportDir()], {
27
+ useShellOption: true,
28
+ });
29
+ }
30
+ else {
31
+ await this.invokeShellCommand('open', [this.getReportDir()]);
32
+ }
33
+ }
34
+ getReportDir() {
35
+ const reportDir = path.resolve(configs_1.configs.libRoot, this.options.report, 'lcov-report/index.html');
36
+ return reportDir;
37
+ }
38
+ }
39
+ exports.ShowCoverageScript = ShowCoverageScript;
40
+ //# sourceMappingURL=showCoverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showCoverage.js","sourceRoot":"","sources":["../../scripts/showCoverage.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AACjD,6DAAiE;AACjE,6BAA6B;AAC7B,mDAAgD;AAMhD,MAAa,kBAAmB,SAAQ,gBAAmB;IACzD,IAAI,IAAI;QACN,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IAED,IAAc,oBAAoB;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,OAAgB;QACxC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,qDAAqD,EAAE;YACvF,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,cAAO,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,IAAI;QAClB,IAAI,iBAAO,CAAC,SAAS,EAAE;YACrB,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;gBAChE,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;SAC9D;IACH,CAAC;IAES,YAAY;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;QAC/F,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAlCD,gDAkCC"}
@@ -0,0 +1,13 @@
1
+ import { Command } from '@caporal/core';
2
+ import { ScriptBase } from '@villedemontreal/scripting/dist/src';
3
+ export interface Options {
4
+ bail?: boolean;
5
+ jenkins?: boolean;
6
+ report?: string;
7
+ }
8
+ export declare class TestScript extends ScriptBase<Options> {
9
+ get name(): string;
10
+ get description(): string;
11
+ protected configure(command: Command): Promise<void>;
12
+ protected main(): Promise<void>;
13
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestScript = void 0;
4
+ const core_1 = require("@caporal/core");
5
+ const src_1 = require("@villedemontreal/scripting/dist/src");
6
+ const lint_1 = require("./lint");
7
+ const testUnits_1 = require("./testUnits");
8
+ class TestScript extends src_1.ScriptBase {
9
+ get name() {
10
+ return 'test';
11
+ }
12
+ get description() {
13
+ return `Run the unit tests + the linting validations.`;
14
+ }
15
+ async configure(command) {
16
+ command.option(`--bail`, `Stop the execution of the tests as soon as an error occures.`);
17
+ command.option(`--jenkins`, `Configure the tests to be run by Jenkins.`);
18
+ command.option(`--report <path>`, `The relative path to the report, when the tests are run for Jenkins.`, {
19
+ default: `output/test-results/report.xml`,
20
+ validator: core_1.program.STRING,
21
+ });
22
+ }
23
+ async main() {
24
+ await this.invokeScript(lint_1.LintScript, {}, {});
25
+ await this.invokeScript(testUnits_1.TestUnitsScript, this.options, {});
26
+ }
27
+ }
28
+ exports.TestScript = TestScript;
29
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../scripts/test.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AACjD,6DAAiE;AACjE,iCAAoC;AACpC,2CAA8C;AAQ9C,MAAa,UAAW,SAAQ,gBAAmB;IACjD,IAAI,IAAI;QACN,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,+CAA+C,CAAC;IACzD,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,OAAgB;QACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,8DAA8D,CAAC,CAAC;QACzF,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC,CAAC;QACzE,OAAO,CAAC,MAAM,CACZ,iBAAiB,EACjB,sEAAsE,EACtE;YACE,OAAO,EAAE,gCAAgC;YACzC,SAAS,EAAE,cAAO,CAAC,MAAM;SAC1B,CACF,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,IAAI;QAClB,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,YAAY,CAAC,2BAAe,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AA1BD,gCA0BC"}
@@ -0,0 +1,15 @@
1
+ import { Command } from '@caporal/core';
2
+ import { ScriptBase } from '@villedemontreal/scripting/dist/src';
3
+ export interface Options {
4
+ bail?: boolean;
5
+ jenkins?: boolean;
6
+ report?: string;
7
+ }
8
+ export declare class TestUnitsScript extends ScriptBase<Options> {
9
+ get name(): string;
10
+ get description(): string;
11
+ protected configure(command: Command): Promise<void>;
12
+ protected get requiredDependencies(): string[];
13
+ private addQuotes;
14
+ protected main(): Promise<void>;
15
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestUnitsScript = void 0;
4
+ const core_1 = require("@caporal/core");
5
+ const src_1 = require("@villedemontreal/scripting/dist/src");
6
+ const _ = require("lodash");
7
+ const configs_1 = require("../src/config/configs");
8
+ const TESTS_LOCATIONS = [`${configs_1.configs.libRoot}/dist/src/**/*.test.js`];
9
+ class TestUnitsScript extends src_1.ScriptBase {
10
+ get name() {
11
+ return 'test-units';
12
+ }
13
+ get description() {
14
+ return `Run the unit tests.`;
15
+ }
16
+ async configure(command) {
17
+ command.option(`--bail`, `Stop the execution of the tests as soon as an error occures.`);
18
+ command.option(`--jenkins`, `Configure the tests to be run by Jenkins.`);
19
+ command.option(`--report <path>`, `The relative path to the report, when the tests are run for Jenkins.`, {
20
+ default: `output/test-results/report.xml`,
21
+ validator: core_1.program.STRING,
22
+ });
23
+ }
24
+ get requiredDependencies() {
25
+ const deps = ['mocha'];
26
+ if (this.options.jenkins) {
27
+ deps.push('mocha-jenkins-reporter');
28
+ }
29
+ return deps;
30
+ }
31
+ addQuotes(tokens) {
32
+ if (_.isNil(tokens) || tokens.length === 0) {
33
+ return [];
34
+ }
35
+ return tokens.map((token) => {
36
+ return _.isNil(token) ? token : `"${_.trim(token, '"')}"`;
37
+ });
38
+ }
39
+ async main() {
40
+ const cmdArgs = [];
41
+ if (await this.isProjectDirectDependency(`nyc`)) {
42
+ cmdArgs.push(`${configs_1.configs.libRoot}/node_modules/nyc/bin/nyc`);
43
+ }
44
+ else {
45
+ this.logger.warn(`The "nyc" direct dependency was not found in your project. The tests will be run using Mocha only!`);
46
+ }
47
+ cmdArgs.push(`${configs_1.configs.libRoot}/node_modules/mocha/bin/_mocha`);
48
+ // ==========================================
49
+ // The test locations need to be quoted because
50
+ // they may contain a "**" wildcard that some
51
+ // shells may interpret differently otherwise!
52
+ //
53
+ // @see https://mochajs.org/#the-test-directory
54
+ // ==========================================
55
+ cmdArgs.push(...this.addQuotes(TESTS_LOCATIONS));
56
+ cmdArgs.push(`--exit`);
57
+ // ==========================================
58
+ // Stop testing as soon as one test fails?
59
+ // ==========================================
60
+ if (this.options.bail) {
61
+ cmdArgs.push('--bail');
62
+ }
63
+ // ==========================================
64
+ // For Jenkins, the path to the report to generate
65
+ // can be passed :
66
+ // - as a command line param :
67
+ // "run test-units --jenkins --report output/test-results/report.xml"
68
+ // - as an "JUNIT_REPORT_PATH" environment variable.
69
+ //
70
+ // By default, the path will be "output/test-results/report.xml"
71
+ // ==========================================
72
+ if (this.options.jenkins) {
73
+ if (this.options.report) {
74
+ process.env.JUNIT_REPORT_PATH = this.options.report;
75
+ }
76
+ else if (!process.env.JUNIT_REPORT_PATH) {
77
+ process.env.JUNIT_REPORT_PATH = 'output/test-results/report.xml';
78
+ }
79
+ this.logger.info('Exporting tests to junit file ' + process.env.JUNIT_REPORT_PATH);
80
+ cmdArgs.push('--reporter');
81
+ cmdArgs.push('mocha-jenkins-reporter');
82
+ }
83
+ try {
84
+ await this.invokeShellCommand('node', cmdArgs, {
85
+ useTestsNodeAppInstance: true,
86
+ });
87
+ this.logger.info(" \u21b3 type 'run show-coverage' (or './run show-coverage' on Linux/Mac) to display the HTML report");
88
+ }
89
+ catch (err) {
90
+ throw new Error('Some unit tests failed');
91
+ }
92
+ }
93
+ }
94
+ exports.TestUnitsScript = TestUnitsScript;
95
+ //# sourceMappingURL=testUnits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUnits.js","sourceRoot":"","sources":["../../scripts/testUnits.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AACjD,6DAAiE;AACjE,4BAA4B;AAC5B,mDAAgD;AAEhD,MAAM,eAAe,GAAG,CAAC,GAAG,iBAAO,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAQrE,MAAa,eAAgB,SAAQ,gBAAmB;IACtD,IAAI,IAAI;QACN,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,OAAgB;QACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,8DAA8D,CAAC,CAAC;QACzF,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC,CAAC;QACzE,OAAO,CAAC,MAAM,CACZ,iBAAiB,EACjB,sEAAsE,EACtE;YACE,OAAO,EAAE,gCAAgC;YACzC,SAAS,EAAE,cAAO,CAAC,MAAM;SAC1B,CACF,CAAC;IACJ,CAAC;IAED,IAAc,oBAAoB;QAChC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,SAAS,CAAC,MAAgB;QAChC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,OAAO,EAAE,CAAC;SACX;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,IAAI;QAClB,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,IAAI,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE;YAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAO,CAAC,OAAO,2BAA2B,CAAC,CAAC;SAC7D;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oGAAoG,CACrG,CAAC;SACH;QAED,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAO,CAAC,OAAO,gCAAgC,CAAC,CAAC;QAEjE,6CAA6C;QAC7C,+CAA+C;QAC/C,6CAA6C;QAC7C,8CAA8C;QAC9C,EAAE;QACF,+CAA+C;QAC/C,6CAA6C;QAC7C,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;QAEjD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvB,6CAA6C;QAC7C,0CAA0C;QAC1C,6CAA6C;QAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxB;QAED,6CAA6C;QAC7C,kDAAkD;QAClD,kBAAkB;QAClB,8BAA8B;QAC9B,uEAAuE;QACvE,oDAAoD;QACpD,EAAE;QACF,gEAAgE;QAChE,6CAA6C;QAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACxB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;aACrD;iBAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;gBACzC,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,gCAAgC,CAAC;aAClE;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SACxC;QAED,IAAI;YACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE;gBAC7C,uBAAuB,EAAE,IAAI;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wGAAwG,CACzG,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;IACH,CAAC;CACF;AAxGD,0CAwGC"}
@@ -0,0 +1,14 @@
1
+ import { Command } from '@caporal/core';
2
+ import { ScriptBase } from '@villedemontreal/scripting/dist/src';
3
+ export interface Options {
4
+ /**
5
+ * Disable the visual notification
6
+ */
7
+ dn?: boolean;
8
+ }
9
+ export declare class WatchScript extends ScriptBase<Options> {
10
+ get name(): string;
11
+ get description(): string;
12
+ protected configure(command: Command): Promise<void>;
13
+ protected main(): Promise<void>;
14
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WatchScript = void 0;
4
+ const general_utils_1 = require("@villedemontreal/general-utils");
5
+ const src_1 = require("@villedemontreal/scripting/dist/src");
6
+ const _ = require("lodash");
7
+ const path = require("path");
8
+ const configs_1 = require("../src/config/configs");
9
+ const notifier = require('node-notifier');
10
+ class WatchScript extends src_1.ScriptBase {
11
+ get name() {
12
+ return 'watch';
13
+ }
14
+ get description() {
15
+ return `Start Typescript incremental compilation. \
16
+ You can run this script in an external terminal and then debug your \
17
+ application in your IDE. When you have made some modifications and want \
18
+ to test them, you stop your application and restart it \
19
+ using the "Debug Locally - fast" launch configuration (if you are \
20
+ in VSCode) or \`run start --nc\`. No compilation is required at \
21
+ that point since the incremental compilation is already done by this script.`;
22
+ }
23
+ async configure(command) {
24
+ command.option(`--dn`, `Disable the visual notifications`);
25
+ }
26
+ async main() {
27
+ this.logger.info(`\n==========================================\n` +
28
+ `Starting incremental compilation...\n` +
29
+ `==========================================\n`);
30
+ const projectName = require(configs_1.configs.libRoot + '/package.json').namae;
31
+ let ignoreNextCompilationComplete = false;
32
+ const compilationCompletetRegEx = /(Compilation complete)|(Found 0 errors)/;
33
+ // eslint-disable-next-line no-control-regex
34
+ const errorRegEx = /(: error)|(error)/;
35
+ const outputHandler = (stdoutData, stderrData) => {
36
+ if (stdoutData) {
37
+ const stdoutDataClean = stdoutData.toString();
38
+ this.logger.info(stdoutDataClean);
39
+ if (this.options.dn) {
40
+ return;
41
+ }
42
+ let error = false;
43
+ if (errorRegEx.test(stdoutDataClean)) {
44
+ error = true;
45
+ notifier.notify({
46
+ title: projectName,
47
+ message: 'incremental compilation error',
48
+ icon: path.normalize(`${__dirname}/../../../assets/notifications/error.png`),
49
+ sound: false,
50
+ });
51
+ }
52
+ else if (compilationCompletetRegEx.test(stdoutDataClean)) {
53
+ if (!ignoreNextCompilationComplete) {
54
+ notifier.notify({
55
+ title: projectName,
56
+ message: 'incremental compilation done',
57
+ icon: path.normalize(`${__dirname}/../../../assets/notifications/success.png`),
58
+ sound: false,
59
+ });
60
+ }
61
+ }
62
+ ignoreNextCompilationComplete = error && !compilationCompletetRegEx.test(stdoutDataClean);
63
+ }
64
+ if (stderrData && !stderrData.match(/^Debugger attached.(\n|\r\n)$/)) {
65
+ this.logger.error(stderrData);
66
+ }
67
+ };
68
+ // eslint-disable-next-line no-constant-condition
69
+ while (true) {
70
+ try {
71
+ await this.invokeShellCommand('node', [
72
+ `${configs_1.configs.libRoot}/node_modules/typescript/lib/tsc.js`,
73
+ '--project',
74
+ configs_1.configs.libRoot,
75
+ '--watch',
76
+ '--pretty',
77
+ ], {
78
+ outputHandler,
79
+ });
80
+ }
81
+ catch (err) {
82
+ // ==========================================
83
+ // @see https://stackoverflow.com/a/25444766/843699
84
+ // ==========================================
85
+ if (_.isString(err) && err.indexOf('3221225786') >= 0) {
86
+ this.logger.error('Exiting...');
87
+ process.exit(0);
88
+ }
89
+ this.logger.error('Error, restarting incremental compilation in a second : ' + String(err));
90
+ await general_utils_1.utils.sleep(1000);
91
+ }
92
+ }
93
+ }
94
+ }
95
+ exports.WatchScript = WatchScript;
96
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../scripts/watch.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,10 @@ import { ILogger } from '@villedemontreal/logger';
3
3
  * Lib configs
4
4
  */
5
5
  export declare class Configs {
6
+ isWindows: boolean;
7
+ libRoot: string;
6
8
  private _loggerCreator;
9
+ constructor();
7
10
  /**
8
11
  * The Logger creator
9
12
  */
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.configs = exports.Configs = void 0;
4
+ const os = require("os");
5
+ const path = require("path");
4
6
  /**
5
7
  * Lib configs
6
8
  */
7
9
  class Configs {
10
+ constructor() {
11
+ this.libRoot = path.normalize(__dirname + '/../../..');
12
+ this.isWindows = os.platform() === 'win32';
13
+ }
8
14
  /**
9
15
  * The Logger creator
10
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"configs.js","sourceRoot":"","sources":["../../../src/config/configs.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,OAAO;IAGlB;;OAEG;IACH,IAAI,aAAa;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,aAAwC;QAC9D,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;CACF;AAnBD,0BAmBC;AAEY,QAAA,OAAO,GAAY,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"configs.js","sourceRoot":"","sources":["../../../src/config/configs.ts"],"names":[],"mappings":";;;AACA,yBAAyB;AACzB,6BAA6B;AAE7B;;GAEG;AACH,MAAa,OAAO;IAKlB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,aAAwC;QAC9D,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;CACF;AA1BD,0BA0BC;AAEY,QAAA,OAAO,GAAY,IAAI,OAAO,EAAE,CAAC"}
@@ -10,6 +10,64 @@ const mongoUtils_1 = require("./mongoUtils");
10
10
  const logger_1 = require("./utils/logger");
11
11
  const logger = (0, logger_1.createLogger)('mongoClient');
12
12
  let mongooseConnection;
13
+ async function doInitMongoose(mongooseConfigClean, resolve, reject) {
14
+ let connectionString = mongooseConfigClean.connectionString;
15
+ // ==========================================
16
+ // Mocked Mongo server?
17
+ // ==========================================
18
+ if (connectionString === constants_1.constants.mongo.testing.MOCK_CONNECTION_STRING) {
19
+ // ==========================================
20
+ // Mock!
21
+ // ==========================================
22
+ const mongoServer = await mongoUtils_1.mongoUtils.mockMongoose(null, mongooseConfigClean.mockServer.serverVersion);
23
+ connectionString = mongoServer.getUri();
24
+ }
25
+ if (mongooseConnection) {
26
+ await mongooseConnection.close();
27
+ mongooseConnection = undefined;
28
+ }
29
+ // Updates Promise for mongoose, avoid warning log emit by mongoose
30
+ mongoose.Promise = global.Promise;
31
+ const mongoOptions = (0, lodash_1.defaultsDeep)(mongooseConfigClean.connectionOptions, {
32
+ promiseLibrary: global.Promise,
33
+ });
34
+ // Creates the connection
35
+ mongooseConnection = mongoose.createConnection(connectionString, mongoOptions);
36
+ // Triggered if an error occured
37
+ mongooseConnection.on('error', (err) => {
38
+ mongooseConnection = null;
39
+ reject(`Mongo Database: Error connecting to Mongo: ${err}`);
40
+ });
41
+ // Triggered when the connection is made.
42
+ mongooseConnection.on('connected', () => {
43
+ (async () => {
44
+ // Check for schema updates once the connexion is made
45
+ if (mongooseConfigClean.applyUpdates) {
46
+ try {
47
+ await checkForUpdates(mongooseConfigClean);
48
+ }
49
+ catch (err) {
50
+ try {
51
+ await mongooseConnection.close();
52
+ mongooseConnection = undefined;
53
+ }
54
+ catch (err) {
55
+ logger.warning(`Error closing connection to Mongo : ${err}`);
56
+ }
57
+ reject(`Error updating Mongo: ${err}`);
58
+ return;
59
+ }
60
+ }
61
+ else {
62
+ logger.info(`Mongo updates skipped`);
63
+ }
64
+ // All good!
65
+ resolve(mongooseConnection);
66
+ })().catch((err) => {
67
+ reject(err);
68
+ });
69
+ });
70
+ }
13
71
  /**
14
72
  * This is the entry point to use this library to manage your
15
73
  * Mongoose connections.
@@ -25,63 +83,10 @@ async function initMongoose(mongooseConfig) {
25
83
  // configs have a default value.
26
84
  // ==========================================
27
85
  const mongooseConfigClean = new mongooseConfigs_1.MongooseConfigs(mongooseConfig);
28
- return new Promise(async (resolve, reject) => {
29
- let connectionString = mongooseConfigClean.connectionString;
30
- // ==========================================
31
- // Mocked Mongo server?
32
- // ==========================================
33
- if (connectionString === constants_1.constants.mongo.testing.MOCK_CONNECTION_STRING) {
34
- // ==========================================
35
- // Mock!
36
- // ==========================================
37
- const mongoServer = await mongoUtils_1.mongoUtils.mockMongoose(null, mongooseConfigClean.mockServer.serverVersion);
38
- connectionString = mongoServer.getUri();
39
- }
40
- try {
41
- if (mongooseConnection) {
42
- await mongooseConnection.close();
43
- mongooseConnection = undefined;
44
- }
45
- // Updates Promise for mongoose, avoid warning log emit by mongoose
46
- mongoose.Promise = global.Promise;
47
- const mongoOptions = (0, lodash_1.defaultsDeep)(mongooseConfigClean.connectionOptions, {
48
- promiseLibrary: global.Promise,
49
- });
50
- // Creates the connection
51
- mongooseConnection = mongoose.createConnection(connectionString, mongoOptions);
52
- // Triggered if an error occured
53
- mongooseConnection.on('error', (err) => {
54
- mongooseConnection = null;
55
- reject('Mongo Database: Error connecting to Mongo: ' + err);
56
- });
57
- // Triggered when the connection is made.
58
- mongooseConnection.on('connected', async () => {
59
- // Check for schema updates once the connexion is made
60
- if (mongooseConfigClean.applyUpdates) {
61
- try {
62
- await checkForUpdates(mongooseConfigClean);
63
- }
64
- catch (err) {
65
- try {
66
- await mongooseConnection.close();
67
- mongooseConnection = undefined;
68
- }
69
- catch (err) {
70
- logger.warning(`Error closing connection to Mongo : ${err}`);
71
- }
72
- return reject('Error updating Mongo: ' + err);
73
- }
74
- }
75
- else {
76
- logger.info(`Mongo updates skipped`);
77
- }
78
- // All good!
79
- resolve(mongooseConnection);
80
- });
81
- }
82
- catch (err) {
83
- return reject('Error initializing Mongo: ' + err);
84
- }
86
+ return new Promise((resolve, reject) => {
87
+ doInitMongoose(mongooseConfigClean, resolve, reject).catch((err) => {
88
+ reject(`Error initializing Mongo: ${err}`);
89
+ });
85
90
  });
86
91
  }
87
92
  exports.initMongoose = initMongoose;
@@ -90,7 +95,7 @@ exports.initMongoose = initMongoose;
90
95
  * to run the application on the target Mongo database.
91
96
  */
92
97
  async function checkForUpdates(mongooseConfig) {
93
- const connection = await getMongooseConnection();
98
+ const connection = getMongooseConnection();
94
99
  const updater = new mongoUpdater_1.MongoUpdater(connection.db, mongooseConfig.updater.mongoSchemaUpdatesDirPath, mongooseConfig.updater.lockMaxAgeSeconds, mongooseConfig.updater.appSchemaCollectionName);
95
100
  await updater.checkInstallation();
96
101
  await updater.checkUpdates();
@@ -1 +1 @@
1
- {"version":3,"file":"mongoClient.js","sourceRoot":"","sources":["../../src/mongoClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongoClient.js","sourceRoot":"","sources":["../../src/mongoClient.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,qCAAqC;AACrC,kDAA+C;AAC/C,8DAA6E;AAC7E,iDAA6D;AAC7D,6CAA0C;AAC1C,2CAA8C;AAE9C,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,aAAa,CAAC,CAAC;AAE3C,IAAI,kBAAuC,CAAC;AAE5C,KAAK,UAAU,cAAc,CAC3B,mBAAoC,EACpC,OAA6C,EAC7C,MAA8B;IAE9B,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;IAE5D,6CAA6C;IAC7C,uBAAuB;IACvB,6CAA6C;IAC7C,IAAI,gBAAgB,KAAK,qBAAS,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,EAAE;QACvE,6CAA6C;QAC7C,QAAQ;QACR,6CAA6C;QAC7C,MAAM,WAAW,GAAG,MAAM,uBAAU,CAAC,YAAY,CAC/C,IAAI,EACJ,mBAAmB,CAAC,UAAU,CAAC,aAAa,CAC7C,CAAC;QAEF,gBAAgB,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;KACzC;IAED,IAAI,kBAAkB,EAAE;QACtB,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACjC,kBAAkB,GAAG,SAAS,CAAC;KAChC;IAED,mEAAmE;IAClE,QAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3C,MAAM,YAAY,GAA4B,IAAA,qBAAY,EACxD,mBAAmB,CAAC,iBAAiB,EACrC;QACE,cAAc,EAAE,MAAM,CAAC,OAAO;KAC/B,CACF,CAAC;IAEF,yBAAyB;IACzB,kBAAkB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAE/E,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;QAC1C,kBAAkB,GAAG,IAAI,CAAC;QAC1B,MAAM,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACtC,CAAC,KAAK,IAAI,EAAE;YACV,sDAAsD;YACtD,IAAI,mBAAmB,CAAC,YAAY,EAAE;gBACpC,IAAI;oBACF,MAAM,eAAe,CAAC,mBAAmB,CAAC,CAAC;iBAC5C;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI;wBACF,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC;wBACjC,kBAAkB,GAAG,SAAS,CAAC;qBAChC;oBAAC,OAAO,GAAG,EAAE;wBACZ,MAAM,CAAC,OAAO,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;qBAC9D;oBAED,MAAM,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;oBACvC,OAAO;iBACR;aACF;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;aACtC;YAED,YAAY;YACZ,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CAAC,cAAgC;IACjE,6CAA6C;IAC7C,oDAAoD;IACpD,gCAAgC;IAChC,6CAA6C;IAC7C,MAAM,mBAAmB,GAAG,IAAI,iCAAe,CAAC,cAAc,CAAC,CAAC;IAEhE,OAAO,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1D,cAAc,CAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjE,MAAM,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAZD,oCAYC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,cAAgC;IAC7D,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAkB,IAAI,2BAAY,CAC7C,UAAU,CAAC,EAAE,EACb,cAAc,CAAC,OAAO,CAAC,yBAAyB,EAChD,cAAc,CAAC,OAAO,CAAC,iBAAiB,EACxC,cAAc,CAAC,OAAO,CAAC,uBAAuB,CAC/C,CAAC;IACF,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAClC,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB;IACnC,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;KAC5F;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAND,sDAMC"}