sonamu 0.0.7 → 0.0.9
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/.pnp.cjs +13 -0
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/init.d.ts +35 -5
- package/dist/api/init.d.ts.map +1 -1
- package/dist/api/init.js +142 -79
- package/dist/api/init.js.map +1 -1
- package/dist/api/sonamu.d.ts +42 -0
- package/dist/api/sonamu.d.ts.map +1 -0
- package/dist/api/sonamu.js +175 -0
- package/dist/api/sonamu.js.map +1 -0
- package/dist/bin/cli.js +152 -67
- package/dist/bin/cli.js.map +1 -1
- package/dist/database/db.d.ts +1 -3
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +12 -23
- package/dist/database/db.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/smd/migrator.d.ts +0 -5
- package/dist/smd/migrator.d.ts.map +1 -1
- package/dist/smd/migrator.js +18 -19
- package/dist/smd/migrator.js.map +1 -1
- package/dist/smd/smd-manager.js +2 -2
- package/dist/smd/smd-manager.js.map +1 -1
- package/dist/smd/smd.d.ts.map +1 -1
- package/dist/smd/smd.js +4 -5
- package/dist/smd/smd.js.map +1 -1
- package/dist/syncer/syncer.d.ts +8 -12
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +43 -43
- package/dist/syncer/syncer.js.map +1 -1
- package/dist/templates/generated_http.template.js +2 -2
- package/dist/templates/generated_http.template.js.map +1 -1
- package/dist/templates/init_enums.template.js +1 -1
- package/dist/templates/init_generated.template.d.ts.map +1 -1
- package/dist/templates/init_generated.template.js +8 -1
- package/dist/templates/init_generated.template.js.map +1 -1
- package/dist/templates/service.template.d.ts +1 -1
- package/dist/templates/service.template.d.ts.map +1 -1
- package/dist/templates/service.template.js +3 -2
- package/dist/templates/service.template.js.map +1 -1
- package/dist/templates/smd.template.js +2 -2
- package/dist/templates/smd.template.js.map +1 -1
- package/dist/templates/view_form.template.d.ts +2 -2
- package/dist/templates/view_list.template.d.ts +2 -2
- package/dist/testing/fixture-manager.d.ts +6 -7
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +35 -41
- package/dist/testing/fixture-manager.js.map +1 -1
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +13 -3
- package/dist/utils/utils.js.map +1 -1
- package/package.json +8 -4
- package/src/api/index.ts +1 -1
- package/src/api/sonamu.ts +212 -0
- package/src/bin/cli.ts +159 -70
- package/src/database/db.ts +15 -27
- package/src/index.ts +1 -1
- package/src/smd/migrator.ts +18 -31
- package/src/smd/smd-manager.ts +3 -3
- package/src/smd/smd.ts +10 -9
- package/src/syncer/syncer.ts +49 -68
- package/src/templates/generated_http.template.ts +2 -2
- package/src/templates/init_enums.template.ts +1 -1
- package/src/templates/init_generated.template.ts +8 -1
- package/src/templates/service.template.ts +6 -5
- package/src/templates/smd.template.ts +2 -2
- package/src/testing/fixture-manager.ts +44 -53
- package/src/utils/utils.ts +9 -1
- package/src/api/init.ts +0 -129
package/dist/bin/cli.js
CHANGED
|
@@ -22,29 +22,59 @@ const base_model_1 = require("../database/base-model");
|
|
|
22
22
|
const db_1 = require("../database/db");
|
|
23
23
|
const smd_manager_1 = require("../smd/smd-manager");
|
|
24
24
|
const migrator_1 = require("../smd/migrator");
|
|
25
|
-
const syncer_1 = require("../syncer/syncer");
|
|
26
25
|
const fixture_manager_1 = require("../testing/fixture-manager");
|
|
26
|
+
const tsicli_1 = require("tsicli");
|
|
27
|
+
const child_process_1 = require("child_process");
|
|
28
|
+
const fs_1 = require("fs");
|
|
29
|
+
const api_1 = require("../api");
|
|
27
30
|
let migrator;
|
|
28
31
|
let fixtureManager;
|
|
29
32
|
function bootstrap() {
|
|
30
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
yield api_1.Sonamu.init();
|
|
35
|
+
yield (0, tsicli_1.tsicli)(process.argv, {
|
|
36
|
+
types: {
|
|
37
|
+
"#smdId": {
|
|
38
|
+
type: "autocomplete",
|
|
39
|
+
name: "#smdId",
|
|
40
|
+
message: "Please input #smdId",
|
|
41
|
+
choices: smd_manager_1.SMDManager.getAllParentIds().map((smdId) => ({
|
|
42
|
+
title: smdId,
|
|
43
|
+
value: smdId,
|
|
44
|
+
})),
|
|
45
|
+
},
|
|
46
|
+
"#recordIds": "number[]",
|
|
47
|
+
"#name": "string",
|
|
48
|
+
},
|
|
49
|
+
args: [
|
|
50
|
+
["fixture", "import", "#smdId", "#recordIds"],
|
|
51
|
+
["fixture", "sync"],
|
|
52
|
+
["migrate", "run"],
|
|
53
|
+
["migrate", "rollback"],
|
|
54
|
+
["migrate", "reset"],
|
|
55
|
+
["migrate", "clear"],
|
|
56
|
+
["stub", "practice", "#name"],
|
|
57
|
+
["stub", "smd", "#name"],
|
|
58
|
+
["scaffold", "model", "#smdId"],
|
|
59
|
+
["scaffold", "model_test", "#smdId"],
|
|
60
|
+
["scaffold", "view_list", "#smdId"],
|
|
61
|
+
["scaffold", "view_form", "#smdId"],
|
|
62
|
+
],
|
|
63
|
+
runners: {
|
|
64
|
+
migrate_run,
|
|
65
|
+
migrate_rollback,
|
|
66
|
+
migrate_clear,
|
|
67
|
+
migrate_reset,
|
|
68
|
+
fixture_import,
|
|
69
|
+
fixture_sync,
|
|
70
|
+
stub_practice,
|
|
71
|
+
stub_smd,
|
|
72
|
+
scaffold_model,
|
|
73
|
+
scaffold_model_test,
|
|
74
|
+
// scaffold_view_list,
|
|
75
|
+
// scaffold_view_form,
|
|
76
|
+
},
|
|
35
77
|
});
|
|
36
|
-
yield db_1.DB.readKnexfile(appRootPath);
|
|
37
|
-
const [_0, _1, action, ...args] = process.argv;
|
|
38
|
-
switch (action) {
|
|
39
|
-
case "migrate":
|
|
40
|
-
yield migrate(args[0]);
|
|
41
|
-
break;
|
|
42
|
-
case "fixture":
|
|
43
|
-
yield fixture(args[0], args.slice(1));
|
|
44
|
-
break;
|
|
45
|
-
default:
|
|
46
|
-
throw new Error(`Unknown action ${action}`);
|
|
47
|
-
}
|
|
48
78
|
});
|
|
49
79
|
}
|
|
50
80
|
bootstrap().finally(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -58,66 +88,121 @@ bootstrap().finally(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
58
88
|
/* Global End */
|
|
59
89
|
console.log(chalk_1.default.bgBlue(`END ${new Date()}\n`));
|
|
60
90
|
}));
|
|
61
|
-
function
|
|
91
|
+
function setupMigrator() {
|
|
62
92
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
yield smd_manager_1.SMDManager.autoload();
|
|
64
93
|
// migrator
|
|
65
94
|
migrator = new migrator_1.Migrator({
|
|
66
|
-
appRootPath: syncer_1.Syncer.getInstance().config.appRootPath,
|
|
67
95
|
knexfile: db_1.DB.getKnexfile(),
|
|
68
96
|
mode: "dev",
|
|
69
97
|
});
|
|
70
|
-
switch (subAction) {
|
|
71
|
-
case "run":
|
|
72
|
-
yield migrator.cleanUpDist();
|
|
73
|
-
yield migrator.run();
|
|
74
|
-
break;
|
|
75
|
-
case "rollback":
|
|
76
|
-
yield migrator.rollback();
|
|
77
|
-
break;
|
|
78
|
-
case "clear":
|
|
79
|
-
yield migrator.clearPendingList();
|
|
80
|
-
break;
|
|
81
|
-
case "reset":
|
|
82
|
-
yield migrator.resetAll();
|
|
83
|
-
break;
|
|
84
|
-
default:
|
|
85
|
-
throw new Error(`Unknown subAction - ${subAction}`);
|
|
86
|
-
}
|
|
87
98
|
});
|
|
88
99
|
}
|
|
89
|
-
function
|
|
100
|
+
function setupFixtureManager() {
|
|
90
101
|
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
yield smd_manager_1.SMDManager.autoload();
|
|
92
102
|
fixtureManager = new fixture_manager_1.FixtureManager();
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function migrate_run() {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
yield setupMigrator();
|
|
108
|
+
yield migrator.cleanUpDist();
|
|
109
|
+
yield migrator.run();
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
function migrate_rollback() {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
yield setupMigrator();
|
|
115
|
+
yield migrator.rollback();
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
function migrate_clear() {
|
|
119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
yield setupMigrator();
|
|
121
|
+
yield migrator.clearPendingList();
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
function migrate_reset() {
|
|
125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
+
yield setupMigrator();
|
|
127
|
+
yield migrator.resetAll();
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
function fixture_import(smdId, recordIds) {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
yield setupFixtureManager();
|
|
133
|
+
yield fixtureManager.importFixture(smdId, recordIds);
|
|
134
|
+
yield fixtureManager.sync();
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
function fixture_sync() {
|
|
138
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
yield setupFixtureManager();
|
|
140
|
+
yield fixtureManager.sync();
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
function stub_practice(name) {
|
|
144
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
+
const practiceDir = path_1.default.join(api_1.Sonamu.apiRootPath, "src", "practices");
|
|
146
|
+
const fileNames = (0, fs_1.readdirSync)(practiceDir);
|
|
147
|
+
const maxSeqNo = (() => {
|
|
148
|
+
if ((0, fs_1.existsSync)(practiceDir) === false) {
|
|
149
|
+
(0, fs_1.mkdirSync)(practiceDir, { recursive: true });
|
|
150
|
+
}
|
|
151
|
+
const filteredSeqs = fileNames
|
|
152
|
+
.filter((fileName) => fileName.startsWith("p") && fileName.endsWith(".ts"))
|
|
153
|
+
.map((fileName) => {
|
|
154
|
+
var _a;
|
|
155
|
+
const [, seqNo] = (_a = fileName.match(/^p([0-9]+)\-/)) !== null && _a !== void 0 ? _a : ["0", "0"];
|
|
156
|
+
return parseInt(seqNo);
|
|
157
|
+
})
|
|
158
|
+
.sort((a, b) => b - a);
|
|
159
|
+
if (filteredSeqs.length > 0) {
|
|
160
|
+
return filteredSeqs[0];
|
|
161
|
+
}
|
|
162
|
+
return 0;
|
|
163
|
+
})();
|
|
164
|
+
const currentSeqNo = maxSeqNo + 1;
|
|
165
|
+
const fileName = `p${currentSeqNo}-${name}.ts`;
|
|
166
|
+
const dstPath = path_1.default.join(practiceDir, fileName);
|
|
167
|
+
const code = [
|
|
168
|
+
`import { BaseModel } from "sonamu";`,
|
|
169
|
+
"",
|
|
170
|
+
`console.clear();`,
|
|
171
|
+
`console.log("${fileName}");`,
|
|
172
|
+
"",
|
|
173
|
+
`async function bootstrap() {`,
|
|
174
|
+
` // TODO`,
|
|
175
|
+
`}`,
|
|
176
|
+
`bootstrap().finally(async () => {`,
|
|
177
|
+
`await BaseModel.destroy();`,
|
|
178
|
+
`});`,
|
|
179
|
+
].join("\n");
|
|
180
|
+
(0, fs_1.writeFileSync)(dstPath, code);
|
|
181
|
+
(0, child_process_1.execSync)(`code ${dstPath}`);
|
|
182
|
+
const runCode = `yarn node -r source-map-support/register dist/practices/${fileName.replace(".ts", ".js")}`;
|
|
183
|
+
console.log(`${chalk_1.default.blue(runCode)} copied to clipboard.`);
|
|
184
|
+
(0, child_process_1.execSync)(`echo "${runCode}" | pbcopy`);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function stub_smd(name) {
|
|
188
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
189
|
+
yield api_1.Sonamu.syncer.generateTemplate("smd", {
|
|
190
|
+
smdId: name,
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
function scaffold_model(smdId) {
|
|
195
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
196
|
+
yield api_1.Sonamu.syncer.generateTemplate("model", {
|
|
197
|
+
smdId,
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
function scaffold_model_test(smdId) {
|
|
202
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
203
|
+
yield api_1.Sonamu.syncer.generateTemplate("model_test", {
|
|
204
|
+
smdId,
|
|
205
|
+
});
|
|
121
206
|
});
|
|
122
207
|
}
|
|
123
208
|
//# sourceMappingURL=cli.js.map
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kBAAkB;AAClB,kDAA0B;AAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAEjD,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,gDAAwB;AACxB,uDAAmD;AACnD,uCAAoC;AACpC,oDAAgD;AAChD,8CAA2C;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/database/db.d.ts
CHANGED
|
@@ -12,9 +12,7 @@ export declare type SonamuDBConfig = {
|
|
|
12
12
|
declare class DBClass {
|
|
13
13
|
private wdb?;
|
|
14
14
|
private rdb?;
|
|
15
|
-
|
|
16
|
-
readKnexfile(_appRootPath?: string): Promise<SonamuDBConfig>;
|
|
17
|
-
getKnexfile(): SonamuDBConfig;
|
|
15
|
+
readKnexfile(): Promise<SonamuDBConfig>;
|
|
18
16
|
getDB(which: DBPreset): Knex;
|
|
19
17
|
destroy(): Promise<void>;
|
|
20
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/database/db.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC;AACjC,OAAa,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKlC,oBAAY,cAAc,GAAG;IAC3B,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC;IAChC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAClB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC;IAC3B,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC;IAC5B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC;IAC/B,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC;CAC/B,CAAC;AAEF,cAAM,OAAO;IACX,OAAO,CAAC,GAAG,CAAC,CAAO;IACnB,OAAO,CAAC,GAAG,CAAC,CAAO;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/database/db.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC;AACjC,OAAa,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKlC,oBAAY,cAAc,GAAG;IAC3B,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC;IAChC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAClB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC;IAC3B,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC;IAC5B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC;IAC/B,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC;CAC/B,CAAC;AAEF,cAAM,OAAO;IACX,OAAO,CAAC,GAAG,CAAC,CAAO;IACnB,OAAO,CAAC,GAAG,CAAC,CAAO;IAEb,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IAe7C,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAmCtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAU/B;AACD,eAAO,MAAM,EAAE,SAAgB,CAAC"}
|
package/dist/database/db.js
CHANGED
|
@@ -38,34 +38,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
38
38
|
exports.DB = void 0;
|
|
39
39
|
const knex_1 = __importDefault(require("knex"));
|
|
40
40
|
const path_1 = __importDefault(require("path"));
|
|
41
|
+
const api_1 = require("../api");
|
|
41
42
|
const so_exceptions_1 = require("../exceptions/so-exceptions");
|
|
42
|
-
const utils_1 = require("../utils/utils");
|
|
43
43
|
class DBClass {
|
|
44
|
-
readKnexfile(
|
|
44
|
+
readKnexfile() {
|
|
45
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
|
|
47
|
-
return this.knexfile;
|
|
48
|
-
}
|
|
49
|
-
const appRootPath = _appRootPath !== null && _appRootPath !== void 0 ? _appRootPath : (yield (0, utils_1.findAppRootPath)());
|
|
50
|
-
const configPath = path_1.default.join(appRootPath, "/api/dist/configs/db");
|
|
46
|
+
const dbConfigPath = path_1.default.join(api_1.Sonamu.apiRootPath, "/dist/configs/db");
|
|
51
47
|
try {
|
|
52
|
-
const knexfileModule = yield Promise.resolve().then(() => __importStar(require(
|
|
53
|
-
|
|
54
|
-
return this.knexfile;
|
|
48
|
+
const knexfileModule = yield Promise.resolve().then(() => __importStar(require(dbConfigPath)));
|
|
49
|
+
return knexfileModule.default;
|
|
55
50
|
}
|
|
56
51
|
catch (_a) { }
|
|
57
|
-
throw new so_exceptions_1.ServiceUnavailableException(`DB설정 파일을 찾을 수 없습니다. ${
|
|
52
|
+
throw new so_exceptions_1.ServiceUnavailableException(`DB설정 파일을 찾을 수 없습니다. ${dbConfigPath}`);
|
|
58
53
|
});
|
|
59
54
|
}
|
|
60
|
-
getKnexfile() {
|
|
61
|
-
if (this.knexfile) {
|
|
62
|
-
return this.knexfile;
|
|
63
|
-
}
|
|
64
|
-
throw new so_exceptions_1.ServiceUnavailableException("DB설정이 로드되지 않았습니다.");
|
|
65
|
-
}
|
|
66
55
|
getDB(which) {
|
|
67
56
|
var _a, _b, _c;
|
|
68
|
-
const
|
|
57
|
+
const dbConfig = api_1.Sonamu.dbConfig;
|
|
69
58
|
const instanceName = which === "w" ? "wdb" : "rdb";
|
|
70
59
|
if (!this[instanceName]) {
|
|
71
60
|
let config;
|
|
@@ -74,17 +63,17 @@ class DBClass {
|
|
|
74
63
|
case "staging":
|
|
75
64
|
config =
|
|
76
65
|
which === "w"
|
|
77
|
-
?
|
|
78
|
-
: (_b =
|
|
66
|
+
? dbConfig["development_master"]
|
|
67
|
+
: (_b = dbConfig["development_slave"]) !== null && _b !== void 0 ? _b : dbConfig["development_master"];
|
|
79
68
|
break;
|
|
80
69
|
case "production":
|
|
81
70
|
config =
|
|
82
71
|
which === "w"
|
|
83
|
-
?
|
|
84
|
-
: (_c =
|
|
72
|
+
? dbConfig["production_master"]
|
|
73
|
+
: (_c = dbConfig["production_slave"]) !== null && _c !== void 0 ? _c : dbConfig["production_master"];
|
|
85
74
|
break;
|
|
86
75
|
case "test":
|
|
87
|
-
config =
|
|
76
|
+
config = dbConfig["test"];
|
|
88
77
|
break;
|
|
89
78
|
default:
|
|
90
79
|
throw new Error(`현재 ENV ${process.env.NODE_ENV}에는 설정 가능한 DB설정이 없습니다.`);
|
package/dist/database/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database/db.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAAkC;AAClC,gDAAwB;AACxB,+DAA0E;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database/db.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAAkC;AAClC,gDAAwB;AACxB,gCAAgC;AAChC,+DAA0E;AAY1E,MAAM,OAAO;IAIL,YAAY;;YAChB,MAAM,YAAY,GAAW,cAAI,CAAC,IAAI,CACpC,YAAM,CAAC,WAAW,EAClB,kBAAkB,CACnB,CAAC;YACF,IAAI;gBACF,MAAM,cAAc,GAAG,wDAAa,YAAY,GAAC,CAAC;gBAClD,OAAO,cAAc,CAAC,OAAyB,CAAC;aACjD;YAAC,WAAM,GAAE;YAEV,MAAM,IAAI,2CAA2B,CACnC,uBAAuB,YAAY,EAAE,CACtC,CAAC;QACJ,CAAC;KAAA;IAED,KAAK,CAAC,KAAe;;QACnB,MAAM,QAAQ,GAAG,YAAM,CAAC,QAAQ,CAAC;QAEjC,MAAM,YAAY,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YACvB,IAAI,MAAmB,CAAC;YACxB,QAAQ,MAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,mCAAI,aAAa,EAAE;gBAC7C,KAAK,aAAa,CAAC;gBACnB,KAAK,SAAS;oBACZ,MAAM;wBACJ,KAAK,KAAK,GAAG;4BACX,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;4BAChC,CAAC,CAAC,MAAA,QAAQ,CAAC,mBAAmB,CAAC,mCAAI,QAAQ,CAAC,oBAAoB,CAAC,CAAC;oBACtE,MAAM;gBACR,KAAK,YAAY;oBACf,MAAM;wBACJ,KAAK,KAAK,GAAG;4BACX,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;4BAC/B,CAAC,CAAC,MAAA,QAAQ,CAAC,kBAAkB,CAAC,mCAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAC;oBACpE,MAAM;gBACR,KAAK,MAAM;oBACT,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1B,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,CAAC,GAAG,CAAC,QAAQ,uBAAuB,CACtD,CAAC;aACL;YACD,IAAI,CAAC,YAAY,CAAC,GAAG,IAAA,cAAI,EAAC,MAAM,CAAC,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,YAAY,CAAE,CAAC;IAC7B,CAAC;IAEK,OAAO;;YACX,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC1B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;aACtB;YACD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC1B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;aACtB;QACH,CAAC;KAAA;CACF;AACY,QAAA,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./api/code-converters";
|
|
2
2
|
export * from "./api/context";
|
|
3
3
|
export * from "./api/decorators";
|
|
4
|
-
export * from "./api/
|
|
4
|
+
export * from "./api/sonamu";
|
|
5
5
|
export * from "./database/base-model";
|
|
6
6
|
export * from "./database/db";
|
|
7
7
|
export * from "./database/upsert-builder";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./api/code-converters"), exports);
|
|
18
18
|
__exportStar(require("./api/context"), exports);
|
|
19
19
|
__exportStar(require("./api/decorators"), exports);
|
|
20
|
-
__exportStar(require("./api/
|
|
20
|
+
__exportStar(require("./api/sonamu"), exports);
|
|
21
21
|
__exportStar(require("./database/base-model"), exports);
|
|
22
22
|
__exportStar(require("./database/db"), exports);
|
|
23
23
|
__exportStar(require("./database/upsert-builder"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,gDAA8B;AAC9B,mDAAiC;AACjC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,gDAA8B;AAC9B,mDAAiC;AACjC,+CAA6B;AAC7B,wDAAsC;AACtC,gDAA8B;AAC9B,4DAA0C;AAC1C,6DAA2C;AAC3C,6DAA2C;AAC3C,oDAAkC;AAClC,kDAAgC;AAChC,kDAAgC;AAChC,4DAA0C;AAC1C,gDAA8B;AAC9B,qDAAmC;AACnC,gDAA8B;AAC9B,gDAA8B"}
|
package/dist/smd/migrator.d.ts
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import { Knex } from "knex";
|
|
2
2
|
import { GenMigrationCode, MigrationColumn, MigrationForeign, MigrationIndex, MigrationSet, MigrationSetAndJoinTable } from "../types/types";
|
|
3
3
|
import { SMD } from "./smd";
|
|
4
|
-
import { SonamuDBConfig } from "../database/db";
|
|
5
4
|
declare type MigratorMode = "dev" | "deploy";
|
|
6
5
|
export declare type MigratorOptions = {
|
|
7
|
-
appRootPath: string;
|
|
8
|
-
knexfile: SonamuDBConfig;
|
|
9
6
|
readonly mode: MigratorMode;
|
|
10
7
|
};
|
|
11
8
|
export declare class Migrator {
|
|
12
|
-
appRootPath: string;
|
|
13
|
-
knexfile: SonamuDBConfig;
|
|
14
9
|
readonly mode: MigratorMode;
|
|
15
10
|
targets: {
|
|
16
11
|
compare?: Knex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/smd/migrator.ts"],"names":[],"mappings":"AAWA,OAAa,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAiBlC,OAAO,EACL,gBAAgB,EAShB,eAAe,EACf,gBAAgB,EAChB,cAAc,EAEd,YAAY,EACZ,wBAAwB,EAIzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/smd/migrator.ts"],"names":[],"mappings":"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"}
|
package/dist/smd/migrator.js
CHANGED
|
@@ -27,21 +27,20 @@ const path_1 = __importDefault(require("path"));
|
|
|
27
27
|
const types_1 = require("../types/types");
|
|
28
28
|
const lodash_able_1 = require("../utils/lodash-able");
|
|
29
29
|
const smd_manager_1 = require("./smd-manager");
|
|
30
|
+
const api_1 = require("../api");
|
|
30
31
|
class Migrator {
|
|
31
32
|
constructor(options) {
|
|
32
|
-
this.appRootPath = options.appRootPath;
|
|
33
|
-
this.knexfile = options.knexfile;
|
|
34
33
|
this.mode = options.mode;
|
|
34
|
+
const { dbConfig } = api_1.Sonamu;
|
|
35
35
|
if (this.mode === "dev") {
|
|
36
|
-
const devDB = (0, knex_1.default)(
|
|
37
|
-
const testDB = (0, knex_1.default)(
|
|
38
|
-
const fixtureLocalDB = (0, knex_1.default)(
|
|
36
|
+
const devDB = (0, knex_1.default)(dbConfig.development_master);
|
|
37
|
+
const testDB = (0, knex_1.default)(dbConfig.test);
|
|
38
|
+
const fixtureLocalDB = (0, knex_1.default)(dbConfig.fixture_local);
|
|
39
39
|
const applyDBs = [devDB, testDB, fixtureLocalDB];
|
|
40
|
-
if (
|
|
40
|
+
if (dbConfig.fixture_local.connection
|
|
41
41
|
.host !==
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const fixtureRemoteDB = (0, knex_1.default)(this.knexfile.fixture_remote);
|
|
42
|
+
dbConfig.fixture_remote.connection.host) {
|
|
43
|
+
const fixtureRemoteDB = (0, knex_1.default)(dbConfig.fixture_remote);
|
|
45
44
|
applyDBs.push(fixtureRemoteDB);
|
|
46
45
|
}
|
|
47
46
|
this.targets = {
|
|
@@ -52,8 +51,8 @@ class Migrator {
|
|
|
52
51
|
};
|
|
53
52
|
}
|
|
54
53
|
else if (this.mode === "deploy") {
|
|
55
|
-
const productionDB = (0, knex_1.default)(
|
|
56
|
-
const testDB = (0, knex_1.default)(
|
|
54
|
+
const productionDB = (0, knex_1.default)(api_1.Sonamu.dbConfig.production_master);
|
|
55
|
+
const testDB = (0, knex_1.default)(api_1.Sonamu.dbConfig.test);
|
|
57
56
|
this.targets = {
|
|
58
57
|
pending: productionDB,
|
|
59
58
|
shadow: testDB,
|
|
@@ -67,7 +66,7 @@ class Migrator {
|
|
|
67
66
|
clearPendingList() {
|
|
68
67
|
return __awaiter(this, void 0, void 0, function* () {
|
|
69
68
|
const [, pendingList] = (yield this.targets.pending.migrate.list());
|
|
70
|
-
const migrationsDir = `${
|
|
69
|
+
const migrationsDir = `${api_1.Sonamu.apiRootPath}/src/migrations`;
|
|
71
70
|
const delList = pendingList.map((df) => {
|
|
72
71
|
return path_1.default.join(migrationsDir, df.file).replace(".js", ".ts");
|
|
73
72
|
});
|
|
@@ -131,7 +130,7 @@ class Migrator {
|
|
|
131
130
|
return;
|
|
132
131
|
}
|
|
133
132
|
// 실제 코드 생성
|
|
134
|
-
const migrationsDir = `${
|
|
133
|
+
const migrationsDir = `${api_1.Sonamu.apiRootPath}/src/migrations`;
|
|
135
134
|
codes
|
|
136
135
|
.filter((code) => code.formatted)
|
|
137
136
|
.map((code, index) => {
|
|
@@ -158,7 +157,7 @@ class Migrator {
|
|
|
158
157
|
cleanUpDist(force = false) {
|
|
159
158
|
return __awaiter(this, void 0, void 0, function* () {
|
|
160
159
|
const files = ["src", "dist"].reduce((r, which) => {
|
|
161
|
-
const migrationPath = path_1.default.join(
|
|
160
|
+
const migrationPath = path_1.default.join(api_1.Sonamu.apiRootPath, which, "migrations");
|
|
162
161
|
if ((0, fs_1.existsSync)(migrationPath) === false) {
|
|
163
162
|
(0, fs_1.mkdirSync)(migrationPath, {
|
|
164
163
|
recursive: true,
|
|
@@ -191,7 +190,7 @@ class Migrator {
|
|
|
191
190
|
}
|
|
192
191
|
}
|
|
193
192
|
const filesToRm = diffOnDist.map((filename) => {
|
|
194
|
-
return path_1.default.join(
|
|
193
|
+
return path_1.default.join(api_1.Sonamu.apiRootPath, "dist", "migrations", filename);
|
|
195
194
|
});
|
|
196
195
|
filesToRm.map((filePath) => {
|
|
197
196
|
(0, fs_1.unlinkSync)(filePath);
|
|
@@ -203,8 +202,8 @@ class Migrator {
|
|
|
203
202
|
runShadowTest() {
|
|
204
203
|
return __awaiter(this, void 0, void 0, function* () {
|
|
205
204
|
// ShadowDB 생성 후 테스트 진행
|
|
206
|
-
const tdb = (0, knex_1.default)(
|
|
207
|
-
const tdbConn =
|
|
205
|
+
const tdb = (0, knex_1.default)(api_1.Sonamu.dbConfig.test);
|
|
206
|
+
const tdbConn = api_1.Sonamu.dbConfig.test.connection;
|
|
208
207
|
const shadowDatabase = tdbConn.database + "__migration_shadow";
|
|
209
208
|
const tmpSqlPath = `/tmp/${shadowDatabase}.sql`;
|
|
210
209
|
// 테스트DB 덤프 후 Database명 치환
|
|
@@ -221,7 +220,7 @@ class Migrator {
|
|
|
221
220
|
// tdb 연결 종료
|
|
222
221
|
yield tdb.destroy();
|
|
223
222
|
// shadow db 테스트 진행
|
|
224
|
-
const sdb = (0, knex_1.default)(Object.assign(Object.assign({},
|
|
223
|
+
const sdb = (0, knex_1.default)(Object.assign(Object.assign({}, api_1.Sonamu.dbConfig.test), { connection: Object.assign(Object.assign({}, tdbConn), { database: shadowDatabase }) }));
|
|
225
224
|
try {
|
|
226
225
|
const [batchNo, log] = yield sdb.migrate.latest();
|
|
227
226
|
console.log(chalk_1.default.green("Shadow DB 테스트에 성공했습니다!"), {
|
|
@@ -260,7 +259,7 @@ class Migrator {
|
|
|
260
259
|
})));
|
|
261
260
|
console.log({ rollbackAllResult });
|
|
262
261
|
console.timeEnd(chalk_1.default.red("rollback-all:"));
|
|
263
|
-
const migrationsDir = `${
|
|
262
|
+
const migrationsDir = `${api_1.Sonamu.apiRootPath}/src/migrations`;
|
|
264
263
|
console.time(chalk_1.default.red("delete migration files"));
|
|
265
264
|
(0, child_process_1.execSync)(`rm -f ${migrationsDir}/*`);
|
|
266
265
|
(0, child_process_1.execSync)(`rm -f ${migrationsDir.replace("/src/", "/dist/")}/*`);
|