@tramvai/tools-migrate 0.7.2 → 0.7.4

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/bin/migrate.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  try {
4
- require('../lib/index');
4
+ require('../lib/index').run();
5
5
  } catch (e) {
6
6
  console.error(e);
7
7
  console.error('Игнорируй ошибку выше при работе в репозитории tramvai');
package/lib/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ export declare function run(): Promise<void>;
1
2
  export * from './types';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkHA,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwBA,wBAAsB,GAAG,kBAwFxB;AAED,cAAc,SAAS,CAAC"}
package/lib/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = void 0;
3
4
  const tslib_1 = require("tslib");
4
5
  const pathOr_1 = tslib_1.__importDefault(require("@tinkoff/utils/object/pathOr"));
5
6
  const pathSet_1 = tslib_1.__importDefault(require("@tinkoff/utils/object/pathSet"));
@@ -18,74 +19,77 @@ const cwd = process.env.INIT_CWD || process.cwd();
18
19
  const log = (0, logger_1.logger)('tramvai-migrate');
19
20
  logger_1.logger.enable('tramvai-migrate');
20
21
  // eslint-disable-next-line max-statements
21
- (() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
22
- const { name: cwdPackageName } = yield (0, fs_extra_1.readJSON)((0, path_1.resolve)(cwd, 'package.json')).catch(() => ({}));
23
- const tramvaiJSONPath = yield (0, api_1.getTramvaiJSONPath)(cwd);
24
- // ignore the migration check in the tramvai repository,
25
- // or is absent `tramvai.json`,
26
- // or if the environment variable is set,
27
- // or we do the installation inside the CI,
28
- if (cwdPackageName === 'tramvai' ||
29
- !tramvaiJSONPath ||
30
- process.env.SKIP_TRAMVAI_MIGRATIONS ||
31
- ciInfo.isCi) {
32
- return;
33
- }
34
- log.info('Checking migrations');
35
- const files = yield (0, fast_glob_1.default)([
36
- `${constants_1.TRAMVAI_BASE_PATH}*/__migrations__/*.js`,
37
- `${constants_1.TRAMVAI_TINKOFF_BASE_PATH}*/__migrations__/*.js`,
38
- ], {
39
- cwd,
40
- objectMode: true,
41
- ignore: ['**/*.spec.js'],
42
- });
43
- if (!files.length) {
44
- log.info('Migrations are not found. The migration process is completed');
45
- return;
46
- }
47
- log.debug('Migrations found');
48
- files.sort((a, b) => {
49
- return a.name.localeCompare(b.name);
50
- });
51
- const appliedFilename = (0, path_1.resolve)(cwd, constants_1.APPLIED_FILENAME);
52
- yield (0, fs_extra_1.ensureFile)(appliedFilename);
53
- let appliedInfo = yield (0, fs_extra_1.readJSON)(appliedFilename).catch(() => ({}));
54
- let api;
55
- let save;
56
- log.info('Starting to perform migrations');
57
- for (const fileInfo of files) {
58
- const packageName = getPackageName(fileInfo.path);
59
- const migrationPath = [
60
- /@tramvai-tinkoff/.test(fileInfo.path) ? 'tinkoff-package' : 'package',
61
- packageName,
62
- 'migrations',
63
- ];
64
- const appliedMigrations = (0, pathOr_1.default)(migrationPath, [], appliedInfo);
65
- if (!appliedMigrations.includes(fileInfo.name)) {
66
- log.info(`Running migration '${fileInfo.name}' from module '${packageName}'`);
67
- if (!api) {
68
- // TODO: createApi is executed for every migration
69
- // that could be optimized to single initialization
70
- // eslint-disable-next-line no-await-in-loop
71
- ({ api, save } = yield (0, api_1.createApi)(cwd));
72
- }
73
- const migration = require((0, path_1.resolve)(cwd, fileInfo.path));
74
- try {
75
- // eslint-disable-next-line no-await-in-loop
76
- yield migration(api);
77
- appliedMigrations.push(fileInfo.name);
78
- appliedInfo = (0, pathSet_1.default)(migrationPath, appliedMigrations, appliedInfo);
79
- }
80
- catch (error) {
81
- log.error(error, `Migration error '${fileInfo.name}' from module '${packageName}'`);
22
+ function run() {
23
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
24
+ const { name: cwdPackageName } = yield (0, fs_extra_1.readJSON)((0, path_1.resolve)(cwd, 'package.json')).catch(() => ({}));
25
+ const tramvaiJSONPath = yield (0, api_1.getTramvaiJSONPath)(cwd);
26
+ // ignore the migration check in the tramvai repository,
27
+ // or is absent `tramvai.json`,
28
+ // or if the environment variable is set,
29
+ // or we do the installation inside the CI,
30
+ if (cwdPackageName === 'tramvai' ||
31
+ !tramvaiJSONPath ||
32
+ process.env.SKIP_TRAMVAI_MIGRATIONS ||
33
+ ciInfo.isCi) {
34
+ return;
35
+ }
36
+ log.info('Checking migrations');
37
+ const files = yield (0, fast_glob_1.default)([
38
+ `${constants_1.TRAMVAI_BASE_PATH}*/__migrations__/*.js`,
39
+ `${constants_1.TRAMVAI_TINKOFF_BASE_PATH}*/__migrations__/*.js`,
40
+ ], {
41
+ cwd,
42
+ objectMode: true,
43
+ ignore: ['**/*.spec.js'],
44
+ });
45
+ if (!files.length) {
46
+ log.info('Migrations are not found. The migration process is completed');
47
+ return;
48
+ }
49
+ log.debug('Migrations found');
50
+ files.sort((a, b) => {
51
+ return a.name.localeCompare(b.name);
52
+ });
53
+ const appliedFilename = (0, path_1.resolve)(cwd, constants_1.APPLIED_FILENAME);
54
+ yield (0, fs_extra_1.ensureFile)(appliedFilename);
55
+ let appliedInfo = yield (0, fs_extra_1.readJSON)(appliedFilename).catch(() => ({}));
56
+ let api;
57
+ let save;
58
+ log.info('Starting to perform migrations');
59
+ for (const fileInfo of files) {
60
+ const packageName = getPackageName(fileInfo.path);
61
+ const migrationPath = [
62
+ /@tramvai-tinkoff/.test(fileInfo.path) ? 'tinkoff-package' : 'package',
63
+ packageName,
64
+ 'migrations',
65
+ ];
66
+ const appliedMigrations = (0, pathOr_1.default)(migrationPath, [], appliedInfo);
67
+ if (!appliedMigrations.includes(fileInfo.name)) {
68
+ log.info(`Running migration '${fileInfo.name}' from module '${packageName}'`);
69
+ if (!api) {
70
+ // TODO: createApi is executed for every migration
71
+ // that could be optimized to single initialization
72
+ // eslint-disable-next-line no-await-in-loop
73
+ ({ api, save } = yield (0, api_1.createApi)(cwd));
74
+ }
75
+ const migration = require((0, path_1.resolve)(cwd, fileInfo.path));
76
+ try {
77
+ // eslint-disable-next-line no-await-in-loop
78
+ yield migration(api);
79
+ appliedMigrations.push(fileInfo.name);
80
+ appliedInfo = (0, pathSet_1.default)(migrationPath, appliedMigrations, appliedInfo);
81
+ }
82
+ catch (error) {
83
+ log.error(error, `Migration error '${fileInfo.name}' from module '${packageName}'`);
84
+ }
82
85
  }
83
86
  }
84
- }
85
- log.info('All migrations are completed, save the information about the completed migrations');
86
- yield (save === null || save === void 0 ? void 0 : save());
87
- yield (0, fs_extra_1.writeJSON)(appliedFilename, appliedInfo);
88
- log.info('Migrations successfully completed');
89
- }))();
87
+ log.info('All migrations are completed, save the information about the completed migrations');
88
+ yield (save === null || save === void 0 ? void 0 : save());
89
+ yield (0, fs_extra_1.writeJSON)(appliedFilename, appliedInfo);
90
+ log.info('Migrations successfully completed');
91
+ });
92
+ }
93
+ exports.run = run;
90
94
  tslib_1.__exportStar(require("./types"), exports);
91
95
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/tools-migrate",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "bin": {
@@ -12,8 +12,8 @@
12
12
  "author": "",
13
13
  "license": "Apache-2.0",
14
14
  "dependencies": {
15
- "@tinkoff/logger": "0.10.169",
16
- "@tinkoff/package-manager-wrapper": "0.2.1",
15
+ "@tinkoff/logger": "0.10.171",
16
+ "@tinkoff/package-manager-wrapper": "0.2.2",
17
17
  "@tinkoff/utils": "^2.1.2",
18
18
  "env-ci": "^5.0.2",
19
19
  "fast-glob": "^3.2.2",