@certd/midway-flyway-js 1.22.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Greper
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # Vue 3 + TypeScript + Vite
2
+
3
+ This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
4
+
5
+ ## Recommended IDE Setup
6
+
7
+ - [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar)
8
+
9
+ ## Type Support For `.vue` Imports in TS
10
+
11
+ Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can enable Volar's Take Over mode by following these steps:
12
+
13
+ 1. Run `Extensions: Show Built-in Extensions` from VS Code's command palette, look for `TypeScript and JavaScript Language Features`, then right click and select `Disable (Workspace)`. By default, Take Over mode will enable itself if the default TypeScript extension is disabled.
14
+ 2. Reload the VS Code window by running `Developer: Reload Window` from the command palette.
15
+
16
+ You can learn more about Take Over mode [here](https://github.com/johnsoncodehk/volar/discussions/471).
@@ -0,0 +1,7 @@
1
+ import type { ILogger } from '@midwayjs/logger';
2
+ import type { IMidwayContainer } from '@midwayjs/core';
3
+ export declare class FlywayConfiguration {
4
+ flyway: any;
5
+ logger: ILogger;
6
+ onReady(container: IMidwayContainer): Promise<void>;
7
+ }
@@ -0,0 +1,38 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Config, Configuration, Logger } from '@midwayjs/core';
11
+ import { Flyway } from './flyway.js';
12
+ import { TypeORMDataSourceManager } from '@midwayjs/typeorm';
13
+ export let FlywayConfiguration = class FlywayConfiguration {
14
+ flyway;
15
+ logger;
16
+ async onReady(container) {
17
+ this.logger.info('flyway start:' + JSON.stringify(this.flyway));
18
+ const dataSourceManager = await container.getAsync(TypeORMDataSourceManager);
19
+ const dataSourceName = this.flyway.dataSourceName || 'default';
20
+ const connection = dataSourceManager.getDataSource(dataSourceName);
21
+ await new Flyway({ ...this.flyway, logger: this.logger, connection }).run();
22
+ }
23
+ };
24
+ __decorate([
25
+ Config(),
26
+ __metadata("design:type", Object)
27
+ ], FlywayConfiguration.prototype, "flyway", void 0);
28
+ __decorate([
29
+ Logger(),
30
+ __metadata("design:type", Object)
31
+ ], FlywayConfiguration.prototype, "logger", void 0);
32
+ FlywayConfiguration = __decorate([
33
+ Configuration({
34
+ namespace: 'flyway',
35
+ //importConfigs: [join(__dirname, './config')],
36
+ })
37
+ ], FlywayConfiguration);
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFPdEQsV0FBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7SUFFOUIsTUFBTSxDQUFPO0lBRWIsTUFBTSxDQUFXO0lBQ2pCLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBMkI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDaEUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLFNBQVMsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM3RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxTQUFTLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0NBQ0YsQ0FBQTtBQVZDO0lBREMsTUFBTSxFQUFFOzttREFDSTtBQUViO0lBREMsTUFBTSxFQUFFOzttREFDUTtBQUpOLG1CQUFtQjtJQUovQixhQUFhLENBQUM7UUFDYixTQUFTLEVBQUUsUUFBUTtRQUNuQiwrQ0FBK0M7S0FDaEQsQ0FBQztHQUNXLG1CQUFtQixDQVkvQiJ9
@@ -0,0 +1,7 @@
1
+ export declare class FlywayHistory {
2
+ id?: number;
3
+ name?: string;
4
+ hash?: string;
5
+ timestamp?: Date;
6
+ success?: boolean;
7
+ }
package/dist/entity.js ADDED
@@ -0,0 +1,46 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
11
+ export let FlywayHistory = class FlywayHistory {
12
+ id;
13
+ name;
14
+ hash;
15
+ timestamp;
16
+ success;
17
+ };
18
+ __decorate([
19
+ PrimaryGeneratedColumn(),
20
+ __metadata("design:type", Number)
21
+ ], FlywayHistory.prototype, "id", void 0);
22
+ __decorate([
23
+ Column({ comment: '文件名', length: 100 }),
24
+ __metadata("design:type", String)
25
+ ], FlywayHistory.prototype, "name", void 0);
26
+ __decorate([
27
+ Column({ comment: 'hash', length: 32 }),
28
+ __metadata("design:type", String)
29
+ ], FlywayHistory.prototype, "hash", void 0);
30
+ __decorate([
31
+ Column({
32
+ comment: '执行时间',
33
+ }),
34
+ __metadata("design:type", Date)
35
+ ], FlywayHistory.prototype, "timestamp", void 0);
36
+ __decorate([
37
+ Column({
38
+ comment: '执行成功',
39
+ default: true,
40
+ }),
41
+ __metadata("design:type", Boolean)
42
+ ], FlywayHistory.prototype, "success", void 0);
43
+ FlywayHistory = __decorate([
44
+ Entity('flyway_history')
45
+ ], FlywayHistory);
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUcxRCxXQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO0lBRXhCLEVBQUUsQ0FBVTtJQUdaLElBQUksQ0FBVTtJQUdkLElBQUksQ0FBVTtJQUtkLFNBQVMsQ0FBUTtJQU1qQixPQUFPLENBQVc7Q0FDbkIsQ0FBQTtBQWxCQztJQURDLHNCQUFzQixFQUFFOzt5Q0FDYjtBQUdaO0lBREMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7OzJDQUMxQjtBQUdkO0lBREMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7OzJDQUMxQjtBQUtkO0lBSEMsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLE1BQU07S0FDaEIsQ0FBQzs4QkFDVSxJQUFJO2dEQUFDO0FBTWpCO0lBSkMsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLE1BQU07UUFDZixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUM7OzhDQUNnQjtBQW5CUCxhQUFhO0lBRHpCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztHQUNaLGFBQWEsQ0FvQnpCIn0=
@@ -0,0 +1,36 @@
1
+ import { QueryRunner } from 'typeorm';
2
+ export declare class Flyway {
3
+ scriptDir: any;
4
+ flywayTableName: any;
5
+ baseline: any;
6
+ allowHashNotMatch: any;
7
+ connection: any;
8
+ logger: any;
9
+ constructor(opts: any);
10
+ run(ignores?: (RegExp | string)[]): Promise<void>;
11
+ private storeSqlExecLog;
12
+ /**
13
+ * 读取升级脚本文件
14
+ * @private
15
+ */
16
+ private loadScriptFiles;
17
+ /**
18
+ * 创建history表
19
+ * @private
20
+ */
21
+ private prepare;
22
+ /**
23
+ * Creates table "flyway_history" that will store information about executed migrations.
24
+ */
25
+ protected createFlywayTableIfNotExist(queryRunner: QueryRunner): Promise<void>;
26
+ private isNeedIgnore;
27
+ private hasExec;
28
+ private getFileHash;
29
+ private execSql;
30
+ private execOnePart;
31
+ /**
32
+ * 将字符串分割为数组
33
+ * @param {string} str 字符串
34
+ */
35
+ splitSql2Array(str: any): any[];
36
+ }
package/dist/flyway.js ADDED
@@ -0,0 +1,294 @@
1
+ import * as path from 'path';
2
+ import * as fs from 'fs';
3
+ import { Table } from 'typeorm';
4
+ import { FlywayHistory } from './entity.js';
5
+ import * as crypto from 'crypto';
6
+ /**
7
+ * 脚本文件信息
8
+ */
9
+ class ScriptFile {
10
+ script;
11
+ isBaseline = false;
12
+ constructor(fileName, isBaseline) {
13
+ this.script = fileName;
14
+ this.isBaseline = isBaseline;
15
+ }
16
+ }
17
+ const DefaultLogger = {
18
+ debug: function (...args) {
19
+ console.log(args);
20
+ },
21
+ info: function (...args) {
22
+ console.log(args);
23
+ },
24
+ warn: function (...args) {
25
+ console.warn(args);
26
+ },
27
+ error: function (...args) {
28
+ console.error(args);
29
+ },
30
+ };
31
+ export class Flyway {
32
+ scriptDir;
33
+ flywayTableName;
34
+ baseline;
35
+ allowHashNotMatch;
36
+ connection;
37
+ logger;
38
+ constructor(opts) {
39
+ this.scriptDir = opts.scriptDir ?? 'db/migration';
40
+ this.flywayTableName = opts.flywayTableName ?? 'flyway_history';
41
+ this.baseline = opts.baseline ?? false;
42
+ this.allowHashNotMatch = opts.allowHashNotMatch ?? false;
43
+ this.logger = opts.logger || DefaultLogger;
44
+ this.connection = opts.connection;
45
+ }
46
+ async run(ignores) {
47
+ this.logger.info('[ midfly ] start-------------');
48
+ if (!fs.existsSync(this.scriptDir)) {
49
+ this.logger.info('[ midfly ] scriptDir<' + this.scriptDir + '> not found');
50
+ return;
51
+ }
52
+ const scriptFiles = await this.loadScriptFiles();
53
+ const queryRunner = this.connection.createQueryRunner();
54
+ await this.prepare(queryRunner);
55
+ for (const file of scriptFiles) {
56
+ if (this.isNeedIgnore(file.script, ignores)) {
57
+ continue;
58
+ }
59
+ const filepath = path.resolve(this.scriptDir, file.script);
60
+ await queryRunner.startTransaction();
61
+ try {
62
+ //查找是否已经执行
63
+ if (await this.hasExec(file.script, filepath, queryRunner)) {
64
+ await queryRunner.commitTransaction();
65
+ continue;
66
+ }
67
+ if (!file.isBaseline) {
68
+ this.logger.info('need exec script file: ', file.script);
69
+ //执行sql文件
70
+ if (/\.sql$/.test(file.script)) {
71
+ await this.execSql(filepath, queryRunner);
72
+ }
73
+ // 执行js或者ts
74
+ // if (/\.(js|ts)$/.test(file.script)) {
75
+ // await this.execJsOrTs(filepath, t);
76
+ // }
77
+ }
78
+ else {
79
+ this.logger.info('baseline script file: ', file.script);
80
+ }
81
+ await this.storeSqlExecLog(file.script, filepath, true, queryRunner);
82
+ await queryRunner.commitTransaction();
83
+ }
84
+ catch (err) {
85
+ this.logger.error(err);
86
+ await this.storeSqlExecLog(file.script, filepath, false, queryRunner);
87
+ await queryRunner.rollbackTransaction();
88
+ throw err;
89
+ }
90
+ }
91
+ this.logger.info('[ midfly ] end-------------');
92
+ }
93
+ async storeSqlExecLog(filename, filepath, success, queryRunner) {
94
+ const hash = await this.getFileHash(filepath);
95
+ //先删除
96
+ await queryRunner.manager.delete(FlywayHistory, {
97
+ name: filename,
98
+ });
99
+ const history = await queryRunner.manager.insert(FlywayHistory, {
100
+ name: filename,
101
+ hash,
102
+ timestamp: new Date().getTime(),
103
+ success,
104
+ });
105
+ return history;
106
+ }
107
+ /**
108
+ * 读取升级脚本文件
109
+ * @private
110
+ */
111
+ async loadScriptFiles() {
112
+ const files = fs.readdirSync(this.scriptDir);
113
+ files.sort();
114
+ // 获取基准脚本的位置
115
+ const local = files.indexOf(this.baseline);
116
+ const scriptFiles = new Array();
117
+ files.forEach((file, index) => {
118
+ if (index <= local) {
119
+ // 基准脚本和基准脚本之前的脚本都不执行
120
+ scriptFiles.push(new ScriptFile(file, true));
121
+ }
122
+ else {
123
+ scriptFiles.push(new ScriptFile(file, false));
124
+ }
125
+ });
126
+ return scriptFiles;
127
+ }
128
+ /**
129
+ * 创建history表
130
+ * @private
131
+ */
132
+ async prepare(queryRunner) {
133
+ await this.createFlywayTableIfNotExist(queryRunner);
134
+ }
135
+ /**
136
+ * Creates table "flyway_history" that will store information about executed migrations.
137
+ */
138
+ async createFlywayTableIfNotExist(queryRunner) {
139
+ // If driver is mongo no need to create
140
+ // if (this.connection.driver instanceof MongoDriver) {
141
+ // return;
142
+ // }
143
+ const tableExist = await queryRunner.hasTable(this.flywayTableName); // todo: table name should be configurable
144
+ if (!tableExist) {
145
+ await queryRunner.createTable(new Table({
146
+ name: this.flywayTableName,
147
+ columns: [
148
+ {
149
+ name: 'id',
150
+ type: this.connection.driver.normalizeType({
151
+ type: this.connection.driver.mappedDataTypes.migrationId,
152
+ }),
153
+ isGenerated: true,
154
+ generationStrategy: 'increment',
155
+ isPrimary: true,
156
+ isNullable: false,
157
+ },
158
+ {
159
+ name: 'timestamp',
160
+ type: this.connection.driver.normalizeType({
161
+ type: this.connection.driver.mappedDataTypes.migrationTimestamp,
162
+ }),
163
+ isPrimary: false,
164
+ isNullable: false,
165
+ },
166
+ {
167
+ name: 'name',
168
+ type: this.connection.driver.normalizeType({
169
+ type: this.connection.driver.mappedDataTypes.migrationName,
170
+ }),
171
+ isNullable: false,
172
+ },
173
+ {
174
+ name: 'hash',
175
+ type: this.connection.driver.normalizeType({
176
+ type: this.connection.driver.mappedDataTypes.migrationName,
177
+ }),
178
+ isNullable: true,
179
+ },
180
+ {
181
+ name: 'success',
182
+ type: this.connection.driver.normalizeType({
183
+ type: 'boolean',
184
+ }),
185
+ isNullable: true,
186
+ },
187
+ ],
188
+ }));
189
+ }
190
+ }
191
+ isNeedIgnore(file, ignores) {
192
+ if (!ignores) {
193
+ ignores = [/\.js\.map$/, /\.d\.ts$/];
194
+ }
195
+ let ret = false;
196
+ for (const ignore of ignores) {
197
+ if (typeof ignore === 'string' && file === ignore) {
198
+ ret = true;
199
+ break;
200
+ }
201
+ if (ignore instanceof RegExp && ignore.test(file)) {
202
+ ret = true;
203
+ break;
204
+ }
205
+ }
206
+ return ret;
207
+ }
208
+ async hasExec(file, filepath, queryRunner) {
209
+ const hash = await this.getFileHash(filepath);
210
+ const history = await queryRunner.manager.findOne(FlywayHistory, {
211
+ where: { name: file, success: true },
212
+ });
213
+ if (history) {
214
+ if (history.hash !== hash && this.allowHashNotMatch === false) {
215
+ throw new Error(file + `hash conflict ,old: ${history.hash} != new: ${hash}`);
216
+ }
217
+ return true;
218
+ }
219
+ return false;
220
+ }
221
+ async getFileHash(filepath) {
222
+ const content = fs.readFileSync(filepath).toString();
223
+ return crypto.createHash('md5').update(content.toString()).digest('hex');
224
+ }
225
+ async execSql(filepath, queryRunner) {
226
+ this.logger.info('[ midfly ] exec ', filepath);
227
+ const content = fs.readFileSync(filepath).toString().trim();
228
+ const arr = this.splitSql2Array(content);
229
+ for (const s of arr) {
230
+ await this.execOnePart(s, queryRunner);
231
+ }
232
+ }
233
+ async execOnePart(sql, queryRunner) {
234
+ this.logger.debug('exec sql index: ', sql);
235
+ try {
236
+ await queryRunner.query(sql);
237
+ }
238
+ catch (err) {
239
+ this.logger.error('exec sql error : ', err.message, err);
240
+ throw err;
241
+ }
242
+ }
243
+ /**
244
+ * 将字符串分割为数组
245
+ * @param {string} str 字符串
246
+ */
247
+ splitSql2Array(str) {
248
+ if (!str) {
249
+ return [];
250
+ }
251
+ const temp = String(str).trim();
252
+ if (temp === 'null') {
253
+ return [];
254
+ }
255
+ const semicolon = ';';
256
+ const deepChars = ['"', "'"];
257
+ const splits = [];
258
+ const deepQueue = [];
259
+ for (let i = 0; i < temp.length; i++) {
260
+ const charAt = temp.charAt(i);
261
+ if (deepChars.indexOf(charAt) >= 0) {
262
+ //如果是深度char
263
+ if (i !== 0 && temp.charAt(i - 1) === '\\') {
264
+ //如果前一个是转义字符,忽略它
265
+ }
266
+ else {
267
+ //说明需要进出深度了
268
+ if (deepQueue.length === 0 || deepQueue[deepQueue.length - 1] !== charAt) {
269
+ //进入深度
270
+ deepQueue.push(charAt);
271
+ }
272
+ else {
273
+ //退出深度
274
+ deepQueue.pop();
275
+ }
276
+ }
277
+ }
278
+ //当深度为0,则记录分割点
279
+ if (charAt === semicolon && deepQueue.length === 0) {
280
+ splits.push(i + 1);
281
+ }
282
+ }
283
+ //分割sql
284
+ const arr = [];
285
+ let lastIndex = 0;
286
+ for (const index of splits) {
287
+ const sql = temp.substring(lastIndex, index);
288
+ lastIndex = index;
289
+ arr.push(sql.trim());
290
+ }
291
+ return arr;
292
+ }
293
+ }
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5d2F5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZseXdheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQWUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFakM7O0dBRUc7QUFDSCxNQUFNLFVBQVU7SUFDZCxNQUFNLENBQVM7SUFDZixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRW5CLFlBQVksUUFBYSxFQUFFLFVBQWU7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxhQUFhLEdBQUc7SUFDcEIsS0FBSyxFQUFFLFVBQVUsR0FBRyxJQUFTO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksRUFBRSxVQUFVLEdBQUcsSUFBUztRQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLEVBQUUsVUFBVSxHQUFHLElBQVM7UUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsS0FBSyxFQUFFLFVBQVUsR0FBRyxJQUFTO1FBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztDQUNGLENBQUM7QUFDRixNQUFNLE9BQU8sTUFBTTtJQUNqQixTQUFTLENBQUM7SUFDVixlQUFlLENBQUM7SUFDaEIsUUFBUSxDQUFDO0lB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
@@ -0,0 +1,3 @@
1
+ export { FlywayConfiguration as Configuration } from './configuration.js';
2
+ export { Flyway } from './flyway.js';
3
+ export { FlywayHistory } from './entity.js';
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ // src/index.ts
2
+ export { FlywayConfiguration as Configuration } from './configuration.js';
3
+ // eslint-disable-next-line node/no-unpublished-import
4
+ export { Flyway } from './flyway.js';
5
+ // eslint-disable-next-line node/no-unpublished-import
6
+ export { FlywayHistory } from './entity.js';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtBQUNmLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxzREFBc0Q7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxzREFBc0Q7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQyJ9
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@certd/midway-flyway-js",
3
+ "version": "1.22.0",
4
+ "description": "midway with flyway, sql upgrade way ",
5
+ "private": false,
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "scripts": {
10
+ "build": "tsc --skipLibCheck",
11
+ "test": "midway-bin test --ts -V",
12
+ "test1": "midway-bin test --ts -V -f test/blank.test.ts -t 'hash-check'",
13
+ "cov": "midway-bin cov --ts",
14
+ "lint": "mwts check",
15
+ "lint:fix": "mwts fix",
16
+ "prepublish": "npm run build",
17
+ "pub": "npm publish"
18
+ },
19
+ "keywords": [],
20
+ "author": "greper",
21
+ "files": [
22
+ "dist/**/*.js",
23
+ "dist/**/*.d.ts"
24
+ ],
25
+ "license": "MIT",
26
+ "devDependencies": {
27
+ "@midwayjs/core": "^3",
28
+ "@midwayjs/logger": "^3",
29
+ "@midwayjs/typeorm": "^3",
30
+ "@rollup/plugin-commonjs": "^23.0.4",
31
+ "@rollup/plugin-json": "^6.0.0",
32
+ "@rollup/plugin-node-resolve": "^15.0.1",
33
+ "@rollup/plugin-terser": "^0.4.3",
34
+ "@rollup/plugin-typescript": "^11.0.0",
35
+ "@types/chai": "^4.3.3",
36
+ "@types/node": "16",
37
+ "@typescript-eslint/eslint-plugin": "^5.38.1",
38
+ "@typescript-eslint/parser": "^5.38.1",
39
+ "cross-env": "^6.0.0",
40
+ "eslint": "^8.24.0",
41
+ "eslint-config-prettier": "^8.5.0",
42
+ "eslint-plugin-import": "^2.26.0",
43
+ "eslint-plugin-node": "^11.1.0",
44
+ "eslint-plugin-prettier": "^4.2.1",
45
+ "mwts": "^1.3.0",
46
+ "mwtsc": "^1.4.0",
47
+ "prettier": "^2.8.8",
48
+ "rollup": "^3.7.4",
49
+ "rollup-plugin-visualizer": "^5.8.2",
50
+ "sqlite3": "^5.0.2",
51
+ "ts-node": "^10.9.1",
52
+ "tslib": "^2.5.2",
53
+ "typeorm": "^0.3.11",
54
+ "typescript": "~5.1.0"
55
+ },
56
+ "gitHead": "47fe3d5826661f678d081ab53e67c847a3239d88"
57
+ }