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.
Files changed (76) hide show
  1. package/.pnp.cjs +13 -0
  2. package/dist/api/index.d.ts +1 -1
  3. package/dist/api/index.d.ts.map +1 -1
  4. package/dist/api/index.js +1 -1
  5. package/dist/api/index.js.map +1 -1
  6. package/dist/api/init.d.ts +35 -5
  7. package/dist/api/init.d.ts.map +1 -1
  8. package/dist/api/init.js +142 -79
  9. package/dist/api/init.js.map +1 -1
  10. package/dist/api/sonamu.d.ts +42 -0
  11. package/dist/api/sonamu.d.ts.map +1 -0
  12. package/dist/api/sonamu.js +175 -0
  13. package/dist/api/sonamu.js.map +1 -0
  14. package/dist/bin/cli.js +152 -67
  15. package/dist/bin/cli.js.map +1 -1
  16. package/dist/database/db.d.ts +1 -3
  17. package/dist/database/db.d.ts.map +1 -1
  18. package/dist/database/db.js +12 -23
  19. package/dist/database/db.js.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/smd/migrator.d.ts +0 -5
  25. package/dist/smd/migrator.d.ts.map +1 -1
  26. package/dist/smd/migrator.js +18 -19
  27. package/dist/smd/migrator.js.map +1 -1
  28. package/dist/smd/smd-manager.js +2 -2
  29. package/dist/smd/smd-manager.js.map +1 -1
  30. package/dist/smd/smd.d.ts.map +1 -1
  31. package/dist/smd/smd.js +4 -5
  32. package/dist/smd/smd.js.map +1 -1
  33. package/dist/syncer/syncer.d.ts +8 -12
  34. package/dist/syncer/syncer.d.ts.map +1 -1
  35. package/dist/syncer/syncer.js +43 -43
  36. package/dist/syncer/syncer.js.map +1 -1
  37. package/dist/templates/generated_http.template.js +2 -2
  38. package/dist/templates/generated_http.template.js.map +1 -1
  39. package/dist/templates/init_enums.template.js +1 -1
  40. package/dist/templates/init_generated.template.d.ts.map +1 -1
  41. package/dist/templates/init_generated.template.js +8 -1
  42. package/dist/templates/init_generated.template.js.map +1 -1
  43. package/dist/templates/service.template.d.ts +1 -1
  44. package/dist/templates/service.template.d.ts.map +1 -1
  45. package/dist/templates/service.template.js +3 -2
  46. package/dist/templates/service.template.js.map +1 -1
  47. package/dist/templates/smd.template.js +2 -2
  48. package/dist/templates/smd.template.js.map +1 -1
  49. package/dist/templates/view_form.template.d.ts +2 -2
  50. package/dist/templates/view_list.template.d.ts +2 -2
  51. package/dist/testing/fixture-manager.d.ts +6 -7
  52. package/dist/testing/fixture-manager.d.ts.map +1 -1
  53. package/dist/testing/fixture-manager.js +35 -41
  54. package/dist/testing/fixture-manager.js.map +1 -1
  55. package/dist/utils/utils.d.ts +1 -0
  56. package/dist/utils/utils.d.ts.map +1 -1
  57. package/dist/utils/utils.js +13 -3
  58. package/dist/utils/utils.js.map +1 -1
  59. package/package.json +8 -4
  60. package/src/api/index.ts +1 -1
  61. package/src/api/sonamu.ts +212 -0
  62. package/src/bin/cli.ts +159 -70
  63. package/src/database/db.ts +15 -27
  64. package/src/index.ts +1 -1
  65. package/src/smd/migrator.ts +18 -31
  66. package/src/smd/smd-manager.ts +3 -3
  67. package/src/smd/smd.ts +10 -9
  68. package/src/syncer/syncer.ts +49 -68
  69. package/src/templates/generated_http.template.ts +2 -2
  70. package/src/templates/init_enums.template.ts +1 -1
  71. package/src/templates/init_generated.template.ts +8 -1
  72. package/src/templates/service.template.ts +6 -5
  73. package/src/templates/smd.template.ts +2 -2
  74. package/src/testing/fixture-manager.ts +44 -53
  75. package/src/utils/utils.ts +9 -1
  76. 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
- // appRootPath 셋업
32
- const appRootPath = path_1.default.resolve(process.cwd(), "..");
33
- syncer_1.Syncer.getInstance({
34
- appRootPath,
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 migrate(subAction) {
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 fixture(subAction, extras) {
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
- switch (subAction) {
94
- case "import":
95
- if (!extras || Array.isArray(extras) === false || extras.length !== 2) {
96
- throw new Error("Import 대상 smdId와 id가 필요합니다.");
97
- }
98
- const [smdId, idsString] = extras;
99
- let ids = [];
100
- if (idsString.includes(",")) {
101
- ids = idsString
102
- .split(",")
103
- .map((idString) => Number(idString))
104
- .filter((id) => Number.isNaN(id) === false);
105
- }
106
- else {
107
- ids = [Number(idsString)];
108
- }
109
- if (smdId === undefined || idsString === undefined || ids.length === 0) {
110
- throw new Error("잘못된 입력");
111
- }
112
- yield fixtureManager.importFixture(smdId, ids);
113
- yield fixtureManager.sync();
114
- break;
115
- case "sync":
116
- yield fixtureManager.sync();
117
- break;
118
- default:
119
- throw new Error(`Unknown subAction - ${subAction}`);
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
@@ -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;AAC3C,6CAA0C;AAC1C,gEAA4D;AAE5D,IAAI,QAAkB,CAAC;AACvB,IAAI,cAA8B,CAAC;AAEnC,SAAe,SAAS;;QACtB,iBAAiB;QACjB,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACtD,eAAM,CAAC,WAAW,CAAC;YACjB,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,OAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAEnC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAC/C,QAAQ,MAAM,EAAE;YACd,KAAK,SAAS;gBACZ,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAqB,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;SAC/C;IACH,CAAC;CAAA;AACD,SAAS,EAAE,CAAC,OAAO,CAAC,GAAS,EAAE;IAC7B,IAAI,QAAQ,EAAE;QACZ,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC1B;IACD,IAAI,cAAc,EAAE;QAClB,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;KAChC;IACD,MAAM,sBAAS,CAAC,OAAO,EAAE,CAAC;IAE1B,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC,CAAA,CAAC,CAAC;AAGH,SAAe,OAAO,CAAC,SAA2B;;QAChD,MAAM,wBAAU,CAAC,QAAQ,EAAE,CAAC;QAE5B,WAAW;QACX,QAAQ,GAAG,IAAI,mBAAQ,CAAC;YACtB,WAAW,EAAE,eAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW;YACpD,QAAQ,EAAE,OAAE,CAAC,WAAW,EAAE;YAC1B,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,QAAQ,SAAS,EAAE;YACjB,KAAK,KAAK;gBACR,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAClC,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;SACvD;IACH,CAAC;CAAA;AAGD,SAAe,OAAO,CAAC,SAA2B,EAAE,MAAiB;;QACnE,MAAM,wBAAU,CAAC,QAAQ,EAAE,CAAC;QAE5B,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;QAEtC,QAAQ,SAAS,EAAE;YACjB,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBACrE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;iBAChD;gBACD,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;gBAClC,IAAI,GAAG,GAAa,EAAE,CAAC;gBACvB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAC3B,GAAG,GAAG,SAAS;yBACZ,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;yBACnC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;iBAC/C;qBAAM;oBACL,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;iBAC3B;gBACD,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAC3B;gBACD,MAAM,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC/C,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;SACvD;IACH,CAAC;CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,7 @@ export declare type SonamuDBConfig = {
12
12
  declare class DBClass {
13
13
  private wdb?;
14
14
  private rdb?;
15
- private knexfile?;
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;IACnB,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAE5B,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkBlE,WAAW,IAAI,cAAc;IAQ7B,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAmCtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAU/B;AACD,eAAO,MAAM,EAAE,SAAgB,CAAC"}
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"}
@@ -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(_appRootPath) {
44
+ readKnexfile() {
45
45
  return __awaiter(this, void 0, void 0, function* () {
46
- if (this.knexfile) {
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(configPath)));
53
- this.knexfile = knexfileModule.default;
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설정 파일을 찾을 수 없습니다. ${configPath}`);
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 knexfile = this.getKnexfile();
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
- ? knexfile["development_master"]
78
- : (_b = knexfile["development_slave"]) !== null && _b !== void 0 ? _b : knexfile["development_master"];
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
- ? knexfile["production_master"]
84
- : (_c = knexfile["production_slave"]) !== null && _c !== void 0 ? _c : knexfile["production_master"];
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 = knexfile["test"];
76
+ config = dbConfig["test"];
88
77
  break;
89
78
  default:
90
79
  throw new Error(`현재 ENV ${process.env.NODE_ENV}에는 설정 가능한 DB설정이 없습니다.`);
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database/db.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAAkC;AAClC,gDAAwB;AACxB,+DAA0E;AAC1E,0CAAiD;AAYjD,MAAM,OAAO;IAKL,YAAY,CAAC,YAAqB;;YACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;YAED,MAAM,WAAW,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,MAAM,IAAA,uBAAe,GAAE,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAW,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;YAC1E,IAAI;gBACF,MAAM,cAAc,GAAG,wDAAa,UAAU,GAAC,CAAC;gBAChD,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,OAAyB,CAAC;gBACzD,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;YAAC,WAAM,GAAE;YAEV,MAAM,IAAI,2CAA2B,CACnC,uBAAuB,UAAU,EAAE,CACpC,CAAC;QACJ,CAAC;KAAA;IAED,WAAW;QACT,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;QAED,MAAM,IAAI,2CAA2B,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,KAAe;;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpC,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"}
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/init";
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";
@@ -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,YAAY,CAAC;AAC3B,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"}
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/init"), exports);
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,6CAA2B;AAC3B,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"}
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"}
@@ -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":"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"}
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;AAG5B,aAAK,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;AACrC,oBAAY,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B,CAAC;AACF,qBAAa,QAAQ;IACnB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B,OAAO,EAAE;QACP,OAAO,CAAC,EAAE,IAAI,CAAC;QACf,OAAO,EAAE,IAAI,CAAC;QACd,MAAM,EAAE,IAAI,CAAC;QACb,KAAK,EAAE,IAAI,EAAE,CAAC;KACf,CAAC;gBAEU,OAAO,EAAE,eAAe;IAuC9B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAgFpB,QAAQ;IAYR,WAAW,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAmElD,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IA6DjC,QAAQ;IA4BR,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAuIhD,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAuExE,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAsElD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAgD5D,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,wBAAwB;IA8MzD,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE;IAsC1D,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE;IAwBxD,qBAAqB,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,gBAAgB,EAAE,GAC3B;QAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;IAyBnC,mCAAmC,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,eAAe,EAAE,EAC1B,OAAO,EAAE,cAAc,EAAE,GACxB,gBAAgB;IA+BnB,0BAA0B,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,gBAAgB,EAAE;IA+CrB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI;IAwDjE,kCAAkC,CAChC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,eAAe,EAAE,EAC7B,UAAU,EAAE,cAAc,EAAE,EAC5B,SAAS,EAAE,eAAe,EAAE,EAC5B,SAAS,EAAE,cAAc,EAAE,GAC1B,gBAAgB,EAAE;IA4FrB,iBAAiB,CACf,UAAU,EAAE,eAAe,EAAE,EAC7B,SAAS,EAAE,eAAe,EAAE;;;;;IAsC9B,qBAAqB,CACnB,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EACpD,UAAU,EAAE,eAAe,EAAE;;;;;;;;;;;;;;IA8E/B,iBAAiB,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;;;;IAwB3E,oBAAoB,CAClB,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EACpD,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;;;;;;;;;;IA2DhD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/B"}
@@ -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)(this.knexfile.development_master);
37
- const testDB = (0, knex_1.default)(this.knexfile.test);
38
- const fixtureLocalDB = (0, knex_1.default)(this.knexfile.fixture_local);
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 (this.knexfile.fixture_local.connection
40
+ if (dbConfig.fixture_local.connection
41
41
  .host !==
42
- this.knexfile.fixture_remote.connection
43
- .host) {
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)(this.knexfile.production_master);
56
- const testDB = (0, knex_1.default)(this.knexfile.test);
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 = `${this.appRootPath}/api/src/migrations`;
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 = `${this.appRootPath}/api/src/migrations`;
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(this.appRootPath, "api", which, "migrations");
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(this.appRootPath, "api", "dist", "migrations", filename);
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)(this.knexfile.test);
207
- const tdbConn = this.knexfile.test.connection;
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({}, this.knexfile.test), { connection: Object.assign(Object.assign({}, tdbConn), { database: shadowDatabase }) }));
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 = `${this.appRootPath}/api/src/migrations`;
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/")}/*`);