sonamu 0.0.4 → 0.0.6
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/dist/api/init.d.ts +0 -1
- package/dist/api/init.d.ts.map +1 -1
- package/dist/api/init.js +6 -4
- package/dist/api/init.js.map +1 -1
- package/dist/database/base-model.d.ts +1 -0
- package/dist/database/base-model.d.ts.map +1 -1
- package/dist/database/base-model.js +1 -1
- package/dist/database/base-model.js.map +1 -1
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +6 -6
- package/dist/database/db.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 +7 -3
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +66 -28
- package/dist/testing/fixture-manager.js.map +1 -1
- package/dist/types/types.d.ts +10 -10
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +18 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/api/init.ts +6 -5
- package/src/database/base-model.ts +2 -1
- package/src/database/db.ts +8 -7
- package/src/testing/fixture-manager.ts +53 -29
- package/src/utils/utils.ts +14 -0
package/dist/api/init.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { IncomingMessage, Server, ServerResponse } from "http";
|
|
|
4
4
|
import { Context } from "./context";
|
|
5
5
|
export declare type SonamuInitConfig = {
|
|
6
6
|
prefix: string;
|
|
7
|
-
appRootPath: string;
|
|
8
7
|
syncTargets: string[];
|
|
9
8
|
contextProvider: (defaultContext: Pick<Context, "headers" | "reply">, request: FastifyRequest, reply: FastifyReply) => Context;
|
|
10
9
|
};
|
package/dist/api/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/api/init.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/api/init.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,oBAAY,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,CACf,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,EAClD,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,KAChB,OAAO,CAAC;CACd,CAAC;AACF,wBAAsB,IAAI,CACxB,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EAChE,MAAM,EAAE,gBAAgB,iBAiGzB;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C"}
|
package/dist/api/init.js
CHANGED
|
@@ -24,6 +24,7 @@ const syncer_1 = require("../syncer/syncer");
|
|
|
24
24
|
const controller_1 = require("../utils/controller");
|
|
25
25
|
const db_1 = require("../database/db");
|
|
26
26
|
const base_model_1 = require("../database/base-model");
|
|
27
|
+
const utils_1 = require("../utils/utils");
|
|
27
28
|
function init(server, config) {
|
|
28
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
30
|
// 전체 라우팅 리스트
|
|
@@ -35,8 +36,9 @@ function init(server, config) {
|
|
|
35
36
|
return "ok";
|
|
36
37
|
}));
|
|
37
38
|
// Syncer
|
|
39
|
+
const appRootPath = yield (0, utils_1.findAppRootPath)();
|
|
38
40
|
const syncer = syncer_1.Syncer.getInstance({
|
|
39
|
-
appRootPath:
|
|
41
|
+
appRootPath: appRootPath,
|
|
40
42
|
targets: config.syncTargets,
|
|
41
43
|
});
|
|
42
44
|
// DB 설정파일 확인
|
|
@@ -45,9 +47,9 @@ function init(server, config) {
|
|
|
45
47
|
// Autoload: SMD / Models / Types / APIs
|
|
46
48
|
console.time(chalk_1.default.cyan("autoload&sync:"));
|
|
47
49
|
yield smd_manager_1.SMDManager.autoload();
|
|
48
|
-
const importedModels = yield syncer.autoloadModels(
|
|
49
|
-
const references = yield syncer.autoloadTypes(
|
|
50
|
-
const apis = yield syncer.autoloadApis(
|
|
50
|
+
const importedModels = yield syncer.autoloadModels(appRootPath);
|
|
51
|
+
const references = yield syncer.autoloadTypes(appRootPath);
|
|
52
|
+
const apis = yield syncer.autoloadApis(appRootPath);
|
|
51
53
|
if ((0, controller_1.isLocal)()) {
|
|
52
54
|
yield syncer.sync();
|
|
53
55
|
}
|
package/dist/api/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/api/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAG1B,6BAA+B;AAC/B,uDAAwD;AAExD,+DAAkE;AAClE,oDAAgD;AAChD,0CAA8C;AAC9C,0CAA8C;AAC9C,6CAA0C;AAC1C,oDAA8C;AAC9C,uCAAoC;AACpC,uDAAmD;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/api/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export declare class BaseModelClass {
|
|
|
28
28
|
rows: any[];
|
|
29
29
|
total?: number | undefined;
|
|
30
30
|
subsetQuery: SubsetQuery;
|
|
31
|
+
qb: Knex.QueryBuilder;
|
|
31
32
|
}>;
|
|
32
33
|
getJoinClause(db: Knex<any, unknown>, join: SubsetQuery["joins"][number]): Knex.Raw<any>;
|
|
33
34
|
getUpsertBuilder(): UpsertBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-model.d.ts","sourceRoot":"","sources":["../../src/database/base-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,EAAE,QAAQ,EAAM,MAAM,MAAM,CAAC;AACpC,OAAO,EAAsB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,cAAc;IAClB,SAAS,EAAE,MAAM,CAAa;IAGrC,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAGtB,OAAO;IAIb,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAQ3B,cAAc,CAClB,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,GAAG,EAAE,EACX,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,GAAE,MAAY;IAkCnB,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC;IA6DvE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;IAuCpB,cAAc,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,SAAS,MAAM,EAAE,EAC/D,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EACL,KAAK,GACN,EAAE;QACD,MAAM,EAAE,CAAC,CAAC;QACV,MAAM,EAAE,CAAC,CAAC;QACV,WAAW,EAAE,WAAW,CAAC;QACzB,KAAK,EAAE,CAAC,WAAW,EAAE;YACnB,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC;YACtB,EAAE,EAAE,IAAI,CAAC;YACT,MAAM,EAAE,MAAM,EAAE,CAAC;YACjB,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;SACnB,KAAK,IAAI,CAAC,YAAY,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;KACpC,GAAG,OAAO,CAAC;QACV,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,WAAW,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"base-model.d.ts","sourceRoot":"","sources":["../../src/database/base-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,EAAE,QAAQ,EAAM,MAAM,MAAM,CAAC;AACpC,OAAO,EAAsB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,cAAc;IAClB,SAAS,EAAE,MAAM,CAAa;IAGrC,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAGtB,OAAO;IAIb,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAQ3B,cAAc,CAClB,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,GAAG,EAAE,EACX,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,GAAE,MAAY;IAkCnB,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC;IA6DvE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;IAuCpB,cAAc,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,SAAS,MAAM,EAAE,EAC/D,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EACL,KAAK,GACN,EAAE;QACD,MAAM,EAAE,CAAC,CAAC;QACV,MAAM,EAAE,CAAC,CAAC;QACV,WAAW,EAAE,WAAW,CAAC;QACzB,KAAK,EAAE,CAAC,WAAW,EAAE;YACnB,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC;YACtB,EAAE,EAAE,IAAI,CAAC;YACT,MAAM,EAAE,MAAM,EAAE,CAAC;YACjB,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;SACnB,KAAK,IAAI,CAAC,YAAY,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;KACpC,GAAG,OAAO,CAAC;QACV,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,WAAW,EAAE,WAAW,CAAC;QACzB,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC;KACvB,CAAC;IA6EF,aAAa,CACX,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EACtB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAQhB,gBAAgB,IAAI,aAAa;CAGlC;AACD,eAAO,MAAM,SAAS,gBAAuB,CAAC"}
|
|
@@ -202,7 +202,7 @@ class BaseModelClass {
|
|
|
202
202
|
console.debug("DEBUG: count query", chalk_1.default.blue(countQuery.toQuery().toString()));
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
|
-
return { rows, total, subsetQuery };
|
|
205
|
+
return { rows, total, subsetQuery, qb };
|
|
206
206
|
});
|
|
207
207
|
}
|
|
208
208
|
getJoinClause(db, join) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-model.js","sourceRoot":"","sources":["../../src/database/base-model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AAEjC,mCAAmE;AACnE,sFAAkF;AAClF,IAAA,kDAAuB,GAAE,CAAC;AAC1B,6BAAoC;AACpC,0CAAiE;AAEjE,2CAAmD;AACnD,kDAA0B;AAC1B,qDAAiD;AAEjD,MAAa,cAAc;IAA3B;QACS,cAAS,GAAW,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"base-model.js","sourceRoot":"","sources":["../../src/database/base-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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,IAAI,OAAO,CAAC,cAAc,CAAC;IAoB7C,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"}
|
package/dist/database/db.js
CHANGED
|
@@ -39,11 +39,14 @@ exports.DB = void 0;
|
|
|
39
39
|
const knex_1 = __importDefault(require("knex"));
|
|
40
40
|
const path_1 = __importDefault(require("path"));
|
|
41
41
|
const so_exceptions_1 = require("../exceptions/so-exceptions");
|
|
42
|
-
const
|
|
42
|
+
const utils_1 = require("../utils/utils");
|
|
43
43
|
class DBClass {
|
|
44
44
|
readKnexfile() {
|
|
45
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
|
|
46
|
+
if (this.knexfile) {
|
|
47
|
+
return this.knexfile;
|
|
48
|
+
}
|
|
49
|
+
const configPath = path_1.default.join(yield (0, utils_1.findAppRootPath)(), "/api/dist/configs/db");
|
|
47
50
|
try {
|
|
48
51
|
const knexfileModule = yield Promise.resolve().then(() => __importStar(require(configPath)));
|
|
49
52
|
this.knexfile = knexfileModule.default;
|
|
@@ -57,7 +60,7 @@ class DBClass {
|
|
|
57
60
|
if (this.knexfile) {
|
|
58
61
|
return this.knexfile;
|
|
59
62
|
}
|
|
60
|
-
throw new so_exceptions_1.ServiceUnavailableException("DB
|
|
63
|
+
throw new so_exceptions_1.ServiceUnavailableException("DB설정이 로드되지 않았습니다.");
|
|
61
64
|
}
|
|
62
65
|
getDB(which) {
|
|
63
66
|
var _a, _b, _c;
|
|
@@ -92,9 +95,6 @@ class DBClass {
|
|
|
92
95
|
destroy() {
|
|
93
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
97
|
if (this.wdb !== undefined) {
|
|
95
|
-
if (this.wdb.destroy === undefined) {
|
|
96
|
-
console.log(this.wdb);
|
|
97
|
-
}
|
|
98
98
|
yield this.wdb.destroy();
|
|
99
99
|
this.wdb = undefined;
|
|
100
100
|
}
|
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;AAC1E,
|
|
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;;YAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;YAED,MAAM,UAAU,GAAW,cAAI,CAAC,IAAI,CAClC,MAAM,IAAA,uBAAe,GAAE,EACvB,sBAAsB,CACvB,CAAC;YACF,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"}
|
|
@@ -19,8 +19,8 @@ export declare class Template__view_form extends Template {
|
|
|
19
19
|
key: "smd" | "init_enums" | "init_types" | "init_generated" | "generated" | "generated_http" | "model" | "model_test" | "bridge" | "service" | "view_list" | "view_list_columns" | "view_search_input" | "view_form" | "view_id_all_select" | "view_id_async_select" | "view_enums_select" | "view_enums_dropdown" | "view_enums_buttonset";
|
|
20
20
|
options: {
|
|
21
21
|
refCode?: string | undefined;
|
|
22
|
-
title: string;
|
|
23
22
|
smdId: string;
|
|
23
|
+
title: string;
|
|
24
24
|
} | {
|
|
25
25
|
def?: Record<string, Record<string, string>> | undefined;
|
|
26
26
|
smdId: string;
|
|
@@ -46,12 +46,12 @@ export declare class Template__view_form extends Template {
|
|
|
46
46
|
extra?: unknown;
|
|
47
47
|
smdId: string;
|
|
48
48
|
} | {
|
|
49
|
+
smdId: string;
|
|
49
50
|
columns: {
|
|
50
51
|
name: string;
|
|
51
52
|
label: string;
|
|
52
53
|
tc: string;
|
|
53
54
|
}[];
|
|
54
|
-
smdId: string;
|
|
55
55
|
columnImports: string;
|
|
56
56
|
} | {
|
|
57
57
|
smdId: string;
|
|
@@ -24,8 +24,8 @@ export declare class Template__view_list extends Template {
|
|
|
24
24
|
key: "smd" | "init_enums" | "init_types" | "init_generated" | "generated" | "generated_http" | "model" | "model_test" | "bridge" | "service" | "view_list" | "view_list_columns" | "view_search_input" | "view_form" | "view_id_all_select" | "view_id_async_select" | "view_enums_select" | "view_enums_dropdown" | "view_enums_buttonset";
|
|
25
25
|
options: {
|
|
26
26
|
refCode?: string | undefined;
|
|
27
|
-
title: string;
|
|
28
27
|
smdId: string;
|
|
28
|
+
title: string;
|
|
29
29
|
} | {
|
|
30
30
|
def?: Record<string, Record<string, string>> | undefined;
|
|
31
31
|
smdId: string;
|
|
@@ -51,12 +51,12 @@ export declare class Template__view_list extends Template {
|
|
|
51
51
|
extra?: unknown;
|
|
52
52
|
smdId: string;
|
|
53
53
|
} | {
|
|
54
|
+
smdId: string;
|
|
54
55
|
columns: {
|
|
55
56
|
name: string;
|
|
56
57
|
label: string;
|
|
57
58
|
tc: string;
|
|
58
59
|
}[];
|
|
59
|
-
smdId: string;
|
|
60
60
|
columnImports: string;
|
|
61
61
|
} | {
|
|
62
62
|
smdId: string;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { Knex } from "knex";
|
|
2
|
+
import { SonamuDBConfig } from "../database/db";
|
|
2
3
|
export declare class FixtureManager {
|
|
3
4
|
usingTables?: string[] | undefined;
|
|
4
|
-
private
|
|
5
|
-
private fdb;
|
|
6
|
-
private knexfile;
|
|
5
|
+
private config?;
|
|
7
6
|
constructor(usingTables?: string[] | undefined);
|
|
7
|
+
init(): Promise<{
|
|
8
|
+
tdb: Knex;
|
|
9
|
+
fdb: Knex;
|
|
10
|
+
knexfile: SonamuDBConfig;
|
|
11
|
+
}>;
|
|
8
12
|
cleanAndSeed(): Promise<void>;
|
|
9
13
|
initFixtureDB(): Promise<void>;
|
|
10
14
|
getChecksum(db: Knex, tableName: string): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture-manager.d.ts","sourceRoot":"","sources":["../../src/testing/fixture-manager.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"fixture-manager.d.ts","sourceRoot":"","sources":["../../src/testing/fixture-manager.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGlC,OAAO,EAAM,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAOpD,qBAAa,cAAc;IAON,WAAW,CAAC;IAN/B,OAAO,CAAC,MAAM,CAAC,CAIb;gBAEiB,WAAW,CAAC,sBAAU;IAiBnC,IAAI,IAAI,OAAO,CAAC;QACpB,GAAG,EAAE,IAAI,CAAC;QACV,GAAG,EAAE,IAAI,CAAC;QACV,QAAQ,EAAE,cAAc,CAAC;KAC1B,CAAC;IAcI,YAAY;IA6CZ,aAAa;IA2Cb,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM;IAKvC,IAAI;IAmDJ,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;IAqB1C,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,EAAE,CAAC;IA+Dd,OAAO;CAQd"}
|
|
@@ -8,6 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
|
+
var m = o[Symbol.asyncIterator], i;
|
|
14
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
15
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
16
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
|
+
};
|
|
11
18
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
19
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
20
|
};
|
|
@@ -24,10 +31,10 @@ const types_1 = require("../types/types");
|
|
|
24
31
|
class FixtureManager {
|
|
25
32
|
constructor(usingTables) {
|
|
26
33
|
this.usingTables = usingTables;
|
|
27
|
-
this.knexfile = db_1.DB.getKnexfile();
|
|
28
|
-
this.tdb = (0, knex_1.default)(this.knexfile.test);
|
|
29
|
-
this.fdb = (0, knex_1.default)(this.knexfile.fixture_local);
|
|
30
34
|
if (process.env.NODE_ENV === "test") {
|
|
35
|
+
beforeAll(() => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
yield this.init();
|
|
37
|
+
}));
|
|
31
38
|
beforeEach(() => __awaiter(this, void 0, void 0, function* () {
|
|
32
39
|
yield this.cleanAndSeed();
|
|
33
40
|
}));
|
|
@@ -37,36 +44,61 @@ class FixtureManager {
|
|
|
37
44
|
}));
|
|
38
45
|
}
|
|
39
46
|
}
|
|
47
|
+
init() {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
if (this.config) {
|
|
50
|
+
return this.config;
|
|
51
|
+
}
|
|
52
|
+
const knexfile = yield db_1.DB.readKnexfile();
|
|
53
|
+
this.config = {
|
|
54
|
+
knexfile,
|
|
55
|
+
tdb: (0, knex_1.default)(knexfile.test),
|
|
56
|
+
fdb: (0, knex_1.default)(knexfile.fixture_local),
|
|
57
|
+
};
|
|
58
|
+
return this.config;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
40
61
|
cleanAndSeed() {
|
|
62
|
+
var e_1, _a;
|
|
41
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
const { tdb, fdb, knexfile } = yield this.init();
|
|
42
65
|
// console.time("FIXTURE-CleanAndSeed");
|
|
43
66
|
let tableNames = [];
|
|
44
67
|
if (this.usingTables === undefined) {
|
|
45
|
-
const [tables] = yield
|
|
68
|
+
const [tables] = yield tdb.raw("SHOW TABLE STATUS WHERE Engine IS NOT NULL");
|
|
46
69
|
tableNames = tables.map((tableInfo) => tableInfo["Name"]);
|
|
47
70
|
}
|
|
48
71
|
else {
|
|
49
72
|
tableNames = this.usingTables;
|
|
50
73
|
}
|
|
51
|
-
yield
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
74
|
+
yield tdb.raw(`SET FOREIGN_KEY_CHECKS = 0`);
|
|
75
|
+
try {
|
|
76
|
+
for (var tableNames_1 = __asyncValues(tableNames), tableNames_1_1; tableNames_1_1 = yield tableNames_1.next(), !tableNames_1_1.done;) {
|
|
77
|
+
let tableName = tableNames_1_1.value;
|
|
78
|
+
if (tableName == "migrations") {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const [[fdbChecksumRow]] = yield fdb.raw(`CHECKSUM TABLE ${tableName}`);
|
|
82
|
+
const fdbChecksum = fdbChecksumRow["Checksum"];
|
|
83
|
+
const [[tdbChecksumRow]] = yield tdb.raw(`CHECKSUM TABLE ${tableName}`);
|
|
84
|
+
const tdbChecksum = tdbChecksumRow["Checksum"];
|
|
85
|
+
if (fdbChecksum !== tdbChecksum) {
|
|
86
|
+
yield tdb(tableName).truncate();
|
|
87
|
+
const rawQuery = `INSERT INTO ${knexfile.test.connection.database}.${tableName}
|
|
88
|
+
SELECT * FROM ${knexfile.fixture_local.connection
|
|
89
|
+
.database}.${tableName}`;
|
|
90
|
+
yield tdb.raw(rawQuery);
|
|
91
|
+
}
|
|
55
92
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
yield this.tdb(tableName).truncate();
|
|
62
|
-
const rawQuery = `INSERT INTO ${this.knexfile.test.connection.database}.${tableName}
|
|
63
|
-
SELECT * FROM ${this.knexfile.fixture_local.connection
|
|
64
|
-
.database}.${tableName}`;
|
|
65
|
-
yield this.tdb.raw(rawQuery);
|
|
93
|
+
}
|
|
94
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
95
|
+
finally {
|
|
96
|
+
try {
|
|
97
|
+
if (tableNames_1_1 && !tableNames_1_1.done && (_a = tableNames_1.return)) yield _a.call(tableNames_1);
|
|
66
98
|
}
|
|
99
|
+
finally { if (e_1) throw e_1.error; }
|
|
67
100
|
}
|
|
68
|
-
yield
|
|
69
|
-
// console.timeEnd("FIXTURE-CleanAndSeed");
|
|
101
|
+
yield tdb.raw(`SET FOREIGN_KEY_CHECKS = 1`);
|
|
70
102
|
});
|
|
71
103
|
}
|
|
72
104
|
// TODO: 추후 작업
|
|
@@ -99,8 +131,9 @@ class FixtureManager {
|
|
|
99
131
|
}
|
|
100
132
|
sync() {
|
|
101
133
|
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
const
|
|
103
|
-
const
|
|
134
|
+
const { fdb, knexfile } = yield this.init();
|
|
135
|
+
const frdb = (0, knex_1.default)(knexfile.fixture_remote);
|
|
136
|
+
const [tables] = yield fdb.raw("SHOW TABLE STATUS WHERE Engine IS NOT NULL");
|
|
104
137
|
const tableNames = tables.map((table) => table.Name);
|
|
105
138
|
console.log(chalk_1.default.magenta("SYNC..."));
|
|
106
139
|
yield Promise.all(tableNames.map((tableName) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -108,9 +141,9 @@ class FixtureManager {
|
|
|
108
141
|
return;
|
|
109
142
|
}
|
|
110
143
|
const remoteChecksum = yield this.getChecksum(frdb, tableName);
|
|
111
|
-
const localChecksum = yield this.getChecksum(
|
|
144
|
+
const localChecksum = yield this.getChecksum(fdb, tableName);
|
|
112
145
|
if (remoteChecksum !== localChecksum) {
|
|
113
|
-
yield
|
|
146
|
+
yield fdb.transaction((transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
114
147
|
yield transaction.raw(`SET FOREIGN_KEY_CHECKS = 0`);
|
|
115
148
|
yield transaction(tableName).truncate();
|
|
116
149
|
const rows = yield frdb(tableName);
|
|
@@ -151,6 +184,7 @@ class FixtureManager {
|
|
|
151
184
|
}
|
|
152
185
|
getImportQueries(smdId, field, id) {
|
|
153
186
|
return __awaiter(this, void 0, void 0, function* () {
|
|
187
|
+
const { knexfile } = yield this.init();
|
|
154
188
|
console.log({ smdId, field, id });
|
|
155
189
|
const smd = smd_manager_1.SMDManager.get(smdId);
|
|
156
190
|
const wdb = base_model_1.BaseModel.getDB("w");
|
|
@@ -160,9 +194,9 @@ class FixtureManager {
|
|
|
160
194
|
throw new Error(`${smdId}#${id} row를 찾을 수 없습니다.`);
|
|
161
195
|
}
|
|
162
196
|
// 픽스쳐DB, 실DB
|
|
163
|
-
const fixtureDatabase =
|
|
197
|
+
const fixtureDatabase = knexfile.fixture_remote.connection
|
|
164
198
|
.database;
|
|
165
|
-
const realDatabase =
|
|
199
|
+
const realDatabase = knexfile.production_master.connection
|
|
166
200
|
.database;
|
|
167
201
|
const selfQuery = `INSERT IGNORE INTO \`${fixtureDatabase}\`.\`${smd.table}\` (SELECT * FROM \`${realDatabase}\`.\`${smd.table}\` WHERE \`id\` = ${id})`;
|
|
168
202
|
const args = Object.entries(smd.relations)
|
|
@@ -203,8 +237,12 @@ class FixtureManager {
|
|
|
203
237
|
}
|
|
204
238
|
destory() {
|
|
205
239
|
return __awaiter(this, void 0, void 0, function* () {
|
|
206
|
-
|
|
207
|
-
|
|
240
|
+
if (!this.config) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const { tdb, fdb } = yield this.init();
|
|
244
|
+
yield tdb.destroy();
|
|
245
|
+
yield fdb.destroy();
|
|
208
246
|
});
|
|
209
247
|
}
|
|
210
248
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture-manager.js","sourceRoot":"","sources":["../../src/testing/fixture-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fixture-manager.js","sourceRoot":"","sources":["../../src/testing/fixture-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -352,12 +352,12 @@ export declare const TemplateOptions: z.ZodObject<{
|
|
|
352
352
|
refCode: z.ZodOptional<z.ZodString>;
|
|
353
353
|
}, "strip", z.ZodTypeAny, {
|
|
354
354
|
refCode?: string | undefined;
|
|
355
|
-
title: string;
|
|
356
355
|
smdId: string;
|
|
356
|
+
title: string;
|
|
357
357
|
}, {
|
|
358
358
|
refCode?: string | undefined;
|
|
359
|
-
title: string;
|
|
360
359
|
smdId: string;
|
|
360
|
+
title: string;
|
|
361
361
|
}>;
|
|
362
362
|
init_enums: z.ZodObject<{
|
|
363
363
|
smdId: z.ZodString;
|
|
@@ -458,20 +458,20 @@ export declare const TemplateOptions: z.ZodObject<{
|
|
|
458
458
|
}>, "many">;
|
|
459
459
|
columnImports: z.ZodString;
|
|
460
460
|
}, "strip", z.ZodTypeAny, {
|
|
461
|
+
smdId: string;
|
|
461
462
|
columns: {
|
|
462
463
|
name: string;
|
|
463
464
|
label: string;
|
|
464
465
|
tc: string;
|
|
465
466
|
}[];
|
|
466
|
-
smdId: string;
|
|
467
467
|
columnImports: string;
|
|
468
468
|
}, {
|
|
469
|
+
smdId: string;
|
|
469
470
|
columns: {
|
|
470
471
|
name: string;
|
|
471
472
|
label: string;
|
|
472
473
|
tc: string;
|
|
473
474
|
}[];
|
|
474
|
-
smdId: string;
|
|
475
475
|
columnImports: string;
|
|
476
476
|
}>;
|
|
477
477
|
view_search_input: z.ZodObject<{
|
|
@@ -547,8 +547,8 @@ export declare const TemplateOptions: z.ZodObject<{
|
|
|
547
547
|
}, "strip", z.ZodTypeAny, {
|
|
548
548
|
smd: {
|
|
549
549
|
refCode?: string | undefined;
|
|
550
|
-
title: string;
|
|
551
550
|
smdId: string;
|
|
551
|
+
title: string;
|
|
552
552
|
};
|
|
553
553
|
init_enums: {
|
|
554
554
|
def?: Record<string, Record<string, string>> | undefined;
|
|
@@ -585,12 +585,12 @@ export declare const TemplateOptions: z.ZodObject<{
|
|
|
585
585
|
smdId: string;
|
|
586
586
|
};
|
|
587
587
|
view_list_columns: {
|
|
588
|
+
smdId: string;
|
|
588
589
|
columns: {
|
|
589
590
|
name: string;
|
|
590
591
|
label: string;
|
|
591
592
|
tc: string;
|
|
592
593
|
}[];
|
|
593
|
-
smdId: string;
|
|
594
594
|
columnImports: string;
|
|
595
595
|
};
|
|
596
596
|
view_search_input: {
|
|
@@ -624,8 +624,8 @@ export declare const TemplateOptions: z.ZodObject<{
|
|
|
624
624
|
}, {
|
|
625
625
|
smd: {
|
|
626
626
|
refCode?: string | undefined;
|
|
627
|
-
title: string;
|
|
628
627
|
smdId: string;
|
|
628
|
+
title: string;
|
|
629
629
|
};
|
|
630
630
|
init_enums: {
|
|
631
631
|
def?: Record<string, Record<string, string>> | undefined;
|
|
@@ -662,12 +662,12 @@ export declare const TemplateOptions: z.ZodObject<{
|
|
|
662
662
|
smdId: string;
|
|
663
663
|
};
|
|
664
664
|
view_list_columns: {
|
|
665
|
+
smdId: string;
|
|
665
666
|
columns: {
|
|
666
667
|
name: string;
|
|
667
668
|
label: string;
|
|
668
669
|
tc: string;
|
|
669
670
|
}[];
|
|
670
|
-
smdId: string;
|
|
671
671
|
columnImports: string;
|
|
672
672
|
};
|
|
673
673
|
view_search_input: {
|
|
@@ -714,11 +714,11 @@ export declare const PathAndCode: z.ZodObject<{
|
|
|
714
714
|
path: z.ZodString;
|
|
715
715
|
code: z.ZodString;
|
|
716
716
|
}, "strip", z.ZodTypeAny, {
|
|
717
|
-
code: string;
|
|
718
717
|
path: string;
|
|
719
|
-
}, {
|
|
720
718
|
code: string;
|
|
719
|
+
}, {
|
|
721
720
|
path: string;
|
|
721
|
+
code: string;
|
|
722
722
|
}>;
|
|
723
723
|
export declare type PathAndCode = z.infer<typeof PathAndCode>;
|
|
724
724
|
export {};
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUhE;AACD,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,EAAE,CAAC,CAWhD;AACD,wBAAsB,eAAe,oBAYpC"}
|
package/dist/utils/utils.js
CHANGED
|
@@ -35,9 +35,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.importMultiple = exports.globAsync = void 0;
|
|
38
|
+
exports.findAppRootPath = exports.importMultiple = exports.globAsync = void 0;
|
|
39
39
|
const path_1 = __importDefault(require("path"));
|
|
40
40
|
const glob_1 = __importDefault(require("glob"));
|
|
41
|
+
const fs_1 = require("fs");
|
|
41
42
|
function globAsync(pathPattern) {
|
|
42
43
|
return new Promise((resolve, reject) => {
|
|
43
44
|
(0, glob_1.default)(path_1.default.resolve(pathPattern), (err, files) => {
|
|
@@ -64,4 +65,20 @@ function importMultiple(filePaths) {
|
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
exports.importMultiple = importMultiple;
|
|
68
|
+
function findAppRootPath() {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
if (require.main === undefined) {
|
|
71
|
+
throw new Error("Cannot find AppRoot using Sonamu");
|
|
72
|
+
}
|
|
73
|
+
let dir = path_1.default.dirname(require.main.path);
|
|
74
|
+
do {
|
|
75
|
+
if ((0, fs_1.existsSync)(path_1.default.join(dir, "/package.json"))) {
|
|
76
|
+
return dir.split(path_1.default.sep).slice(0, -1).join(path_1.default.sep);
|
|
77
|
+
}
|
|
78
|
+
dir = dir.split(path_1.default.sep).slice(0, -1).join(path_1.default.sep);
|
|
79
|
+
} while (dir.split(path_1.default.sep).length > 1);
|
|
80
|
+
throw new Error("Cannot find AppRoot using Sonamu");
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
exports.findAppRootPath = findAppRootPath;
|
|
67
84
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,gDAAwB;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,gDAAwB;AACxB,2BAAgC;AAEhC,SAAgB,SAAS,CAAC,WAAmB;IAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAA,cAAI,EAAC,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC7C,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAVD,8BAUC;AACD,SAAsB,cAAc,CAClC,SAAmB;;QAEnB,OAAO,OAAO,CAAC,GAAG,CAChB,SAAS,CAAC,GAAG,CAAC,CAAO,QAAQ,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,wDAAa,UAAU,GAAC,CAAC;YAC1C,OAAO;gBACL,QAAQ;gBACR,QAAQ;aACT,CAAC;QACJ,CAAC,CAAA,CAAC,CACH,CAAC;IACJ,CAAC;CAAA;AAbD,wCAaC;AACD,SAAsB,eAAe;;QACnC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,IAAI,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,GAAG;YACD,IAAI,IAAA,eAAU,EAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,EAAE;gBAC/C,OAAO,GAAG,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC;aACxD;YACD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC;SACvD,QAAQ,GAAG,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;CAAA;AAZD,0CAYC"}
|
package/package.json
CHANGED
package/src/api/init.ts
CHANGED
|
@@ -12,10 +12,10 @@ import { Syncer } from "../syncer/syncer";
|
|
|
12
12
|
import { isLocal } from "../utils/controller";
|
|
13
13
|
import { DB } from "../database/db";
|
|
14
14
|
import { BaseModel } from "../database/base-model";
|
|
15
|
+
import { findAppRootPath } from "../utils/utils";
|
|
15
16
|
|
|
16
17
|
export type SonamuInitConfig = {
|
|
17
18
|
prefix: string;
|
|
18
|
-
appRootPath: string;
|
|
19
19
|
syncTargets: string[];
|
|
20
20
|
contextProvider: (
|
|
21
21
|
defaultContext: Pick<Context, "headers" | "reply">,
|
|
@@ -44,8 +44,9 @@ export async function init(
|
|
|
44
44
|
);
|
|
45
45
|
|
|
46
46
|
// Syncer
|
|
47
|
+
const appRootPath = await findAppRootPath();
|
|
47
48
|
const syncer = Syncer.getInstance({
|
|
48
|
-
appRootPath:
|
|
49
|
+
appRootPath: appRootPath,
|
|
49
50
|
targets: config.syncTargets,
|
|
50
51
|
});
|
|
51
52
|
|
|
@@ -56,9 +57,9 @@ export async function init(
|
|
|
56
57
|
// Autoload: SMD / Models / Types / APIs
|
|
57
58
|
console.time(chalk.cyan("autoload&sync:"));
|
|
58
59
|
await SMDManager.autoload();
|
|
59
|
-
const importedModels = await syncer.autoloadModels(
|
|
60
|
-
const references = await syncer.autoloadTypes(
|
|
61
|
-
const apis = await syncer.autoloadApis(
|
|
60
|
+
const importedModels = await syncer.autoloadModels(appRootPath);
|
|
61
|
+
const references = await syncer.autoloadTypes(appRootPath);
|
|
62
|
+
const apis = await syncer.autoloadApis(appRootPath);
|
|
62
63
|
if (isLocal()) {
|
|
63
64
|
await syncer.sync();
|
|
64
65
|
}
|
|
@@ -192,6 +192,7 @@ export class BaseModelClass {
|
|
|
192
192
|
rows: any[];
|
|
193
193
|
total?: number | undefined;
|
|
194
194
|
subsetQuery: SubsetQuery;
|
|
195
|
+
qb: Knex.QueryBuilder;
|
|
195
196
|
}> {
|
|
196
197
|
const db = this.getDB(subset.startsWith("A") ? "w" : "r");
|
|
197
198
|
baseTable = baseTable ?? pluralize(underscore(this.modelName));
|
|
@@ -266,7 +267,7 @@ export class BaseModelClass {
|
|
|
266
267
|
}
|
|
267
268
|
}
|
|
268
269
|
|
|
269
|
-
return { rows, total, subsetQuery };
|
|
270
|
+
return { rows, total, subsetQuery, qb };
|
|
270
271
|
}
|
|
271
272
|
|
|
272
273
|
getJoinClause(
|
package/src/database/db.ts
CHANGED
|
@@ -2,7 +2,7 @@ export type DBPreset = "w" | "r";
|
|
|
2
2
|
import knex, { Knex } from "knex";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import { ServiceUnavailableException } from "../exceptions/so-exceptions";
|
|
5
|
-
import {
|
|
5
|
+
import { findAppRootPath } from "../utils/utils";
|
|
6
6
|
|
|
7
7
|
export type SonamuDBConfig = {
|
|
8
8
|
development_master: Knex.Config;
|
|
@@ -19,9 +19,13 @@ class DBClass {
|
|
|
19
19
|
private rdb?: Knex;
|
|
20
20
|
private knexfile?: SonamuDBConfig;
|
|
21
21
|
|
|
22
|
-
async readKnexfile() {
|
|
22
|
+
async readKnexfile(): Promise<SonamuDBConfig> {
|
|
23
|
+
if (this.knexfile) {
|
|
24
|
+
return this.knexfile;
|
|
25
|
+
}
|
|
26
|
+
|
|
23
27
|
const configPath: string = path.join(
|
|
24
|
-
|
|
28
|
+
await findAppRootPath(),
|
|
25
29
|
"/api/dist/configs/db"
|
|
26
30
|
);
|
|
27
31
|
try {
|
|
@@ -40,7 +44,7 @@ class DBClass {
|
|
|
40
44
|
return this.knexfile;
|
|
41
45
|
}
|
|
42
46
|
|
|
43
|
-
throw new ServiceUnavailableException("DB
|
|
47
|
+
throw new ServiceUnavailableException("DB설정이 로드되지 않았습니다.");
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
getDB(which: DBPreset): Knex {
|
|
@@ -80,9 +84,6 @@ class DBClass {
|
|
|
80
84
|
|
|
81
85
|
async destroy(): Promise<void> {
|
|
82
86
|
if (this.wdb !== undefined) {
|
|
83
|
-
if (this.wdb.destroy === undefined) {
|
|
84
|
-
console.log(this.wdb);
|
|
85
|
-
}
|
|
86
87
|
await this.wdb.destroy();
|
|
87
88
|
this.wdb = undefined;
|
|
88
89
|
}
|
|
@@ -11,16 +11,18 @@ import {
|
|
|
11
11
|
} from "../types/types";
|
|
12
12
|
|
|
13
13
|
export class FixtureManager {
|
|
14
|
-
private
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
private config?: {
|
|
15
|
+
tdb: Knex;
|
|
16
|
+
fdb: Knex;
|
|
17
|
+
knexfile: SonamuDBConfig;
|
|
18
|
+
};
|
|
17
19
|
|
|
18
20
|
constructor(public usingTables?: string[]) {
|
|
19
|
-
this.knexfile = DB.getKnexfile();
|
|
20
|
-
this.tdb = knex(this.knexfile.test);
|
|
21
|
-
this.fdb = knex(this.knexfile.fixture_local);
|
|
22
|
-
|
|
23
21
|
if (process.env.NODE_ENV === "test") {
|
|
22
|
+
beforeAll(async () => {
|
|
23
|
+
await this.init();
|
|
24
|
+
});
|
|
25
|
+
|
|
24
26
|
beforeEach(async () => {
|
|
25
27
|
await this.cleanAndSeed();
|
|
26
28
|
});
|
|
@@ -32,13 +34,32 @@ export class FixtureManager {
|
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
|
|
37
|
+
async init(): Promise<{
|
|
38
|
+
tdb: Knex;
|
|
39
|
+
fdb: Knex;
|
|
40
|
+
knexfile: SonamuDBConfig;
|
|
41
|
+
}> {
|
|
42
|
+
if (this.config) {
|
|
43
|
+
return this.config;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const knexfile = await DB.readKnexfile();
|
|
47
|
+
this.config = {
|
|
48
|
+
knexfile,
|
|
49
|
+
tdb: knex(knexfile.test),
|
|
50
|
+
fdb: knex(knexfile.fixture_local),
|
|
51
|
+
};
|
|
52
|
+
return this.config;
|
|
53
|
+
}
|
|
54
|
+
|
|
35
55
|
async cleanAndSeed() {
|
|
56
|
+
const { tdb, fdb, knexfile } = await this.init();
|
|
36
57
|
// console.time("FIXTURE-CleanAndSeed");
|
|
37
58
|
|
|
38
59
|
let tableNames: string[] = [];
|
|
39
60
|
|
|
40
61
|
if (this.usingTables === undefined) {
|
|
41
|
-
const [tables] = await
|
|
62
|
+
const [tables] = await tdb.raw(
|
|
42
63
|
"SHOW TABLE STATUS WHERE Engine IS NOT NULL"
|
|
43
64
|
);
|
|
44
65
|
tableNames = tables.map((tableInfo: any) => tableInfo["Name"]);
|
|
@@ -46,35 +67,31 @@ export class FixtureManager {
|
|
|
46
67
|
tableNames = this.usingTables;
|
|
47
68
|
}
|
|
48
69
|
|
|
49
|
-
await
|
|
50
|
-
for (let tableName of tableNames) {
|
|
70
|
+
await tdb.raw(`SET FOREIGN_KEY_CHECKS = 0`);
|
|
71
|
+
for await (let tableName of tableNames) {
|
|
51
72
|
if (tableName == "migrations") {
|
|
52
73
|
continue;
|
|
53
74
|
}
|
|
54
75
|
|
|
55
|
-
const [[fdbChecksumRow]] = await
|
|
56
|
-
`CHECKSUM TABLE ${tableName}`
|
|
57
|
-
);
|
|
76
|
+
const [[fdbChecksumRow]] = await fdb.raw(`CHECKSUM TABLE ${tableName}`);
|
|
58
77
|
const fdbChecksum = fdbChecksumRow["Checksum"];
|
|
59
78
|
|
|
60
|
-
const [[tdbChecksumRow]] = await
|
|
61
|
-
`CHECKSUM TABLE ${tableName}`
|
|
62
|
-
);
|
|
79
|
+
const [[tdbChecksumRow]] = await tdb.raw(`CHECKSUM TABLE ${tableName}`);
|
|
63
80
|
const tdbChecksum = tdbChecksumRow["Checksum"];
|
|
64
81
|
|
|
65
82
|
if (fdbChecksum !== tdbChecksum) {
|
|
66
|
-
await
|
|
83
|
+
await tdb(tableName).truncate();
|
|
67
84
|
const rawQuery = `INSERT INTO ${
|
|
68
|
-
(
|
|
85
|
+
(knexfile.test.connection as Knex.ConnectionConfig).database
|
|
69
86
|
}.${tableName}
|
|
70
87
|
SELECT * FROM ${
|
|
71
|
-
(
|
|
88
|
+
(knexfile.fixture_local.connection as Knex.ConnectionConfig)
|
|
72
89
|
.database
|
|
73
90
|
}.${tableName}`;
|
|
74
|
-
await
|
|
91
|
+
await tdb.raw(rawQuery);
|
|
75
92
|
}
|
|
76
93
|
}
|
|
77
|
-
await
|
|
94
|
+
await tdb.raw(`SET FOREIGN_KEY_CHECKS = 1`);
|
|
78
95
|
|
|
79
96
|
// console.timeEnd("FIXTURE-CleanAndSeed");
|
|
80
97
|
}
|
|
@@ -129,9 +146,10 @@ export class FixtureManager {
|
|
|
129
146
|
}
|
|
130
147
|
|
|
131
148
|
async sync() {
|
|
132
|
-
const
|
|
149
|
+
const { fdb, knexfile } = await this.init();
|
|
150
|
+
const frdb = knex(knexfile.fixture_remote);
|
|
133
151
|
|
|
134
|
-
const [tables] = await
|
|
152
|
+
const [tables] = await fdb.raw(
|
|
135
153
|
"SHOW TABLE STATUS WHERE Engine IS NOT NULL"
|
|
136
154
|
);
|
|
137
155
|
const tableNames: string[] = tables.map(
|
|
@@ -146,10 +164,10 @@ export class FixtureManager {
|
|
|
146
164
|
}
|
|
147
165
|
|
|
148
166
|
const remoteChecksum = await this.getChecksum(frdb, tableName);
|
|
149
|
-
const localChecksum = await this.getChecksum(
|
|
167
|
+
const localChecksum = await this.getChecksum(fdb, tableName);
|
|
150
168
|
|
|
151
169
|
if (remoteChecksum !== localChecksum) {
|
|
152
|
-
await
|
|
170
|
+
await fdb.transaction(async (transaction) => {
|
|
153
171
|
await transaction.raw(`SET FOREIGN_KEY_CHECKS = 0`);
|
|
154
172
|
await transaction(tableName).truncate();
|
|
155
173
|
|
|
@@ -204,6 +222,8 @@ export class FixtureManager {
|
|
|
204
222
|
field: string,
|
|
205
223
|
id: number
|
|
206
224
|
): Promise<string[]> {
|
|
225
|
+
const { knexfile } = await this.init();
|
|
226
|
+
|
|
207
227
|
console.log({ smdId, field, id });
|
|
208
228
|
const smd = SMDManager.get(smdId);
|
|
209
229
|
const wdb = BaseModel.getDB("w");
|
|
@@ -215,9 +235,9 @@ export class FixtureManager {
|
|
|
215
235
|
}
|
|
216
236
|
|
|
217
237
|
// 픽스쳐DB, 실DB
|
|
218
|
-
const fixtureDatabase = (
|
|
238
|
+
const fixtureDatabase = (knexfile.fixture_remote.connection as any)
|
|
219
239
|
.database;
|
|
220
|
-
const realDatabase = (
|
|
240
|
+
const realDatabase = (knexfile.production_master.connection as any)
|
|
221
241
|
.database;
|
|
222
242
|
|
|
223
243
|
const selfQuery = `INSERT IGNORE INTO \`${fixtureDatabase}\`.\`${smd.table}\` (SELECT * FROM \`${realDatabase}\`.\`${smd.table}\` WHERE \`id\` = ${id})`;
|
|
@@ -265,7 +285,11 @@ export class FixtureManager {
|
|
|
265
285
|
}
|
|
266
286
|
|
|
267
287
|
async destory() {
|
|
268
|
-
|
|
269
|
-
|
|
288
|
+
if (!this.config) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
const { tdb, fdb } = await this.init();
|
|
292
|
+
await tdb.destroy();
|
|
293
|
+
await fdb.destroy();
|
|
270
294
|
}
|
|
271
295
|
}
|
package/src/utils/utils.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import glob from "glob";
|
|
3
|
+
import { existsSync } from "fs";
|
|
3
4
|
|
|
4
5
|
export function globAsync(pathPattern: string): Promise<string[]> {
|
|
5
6
|
return new Promise((resolve, reject) => {
|
|
@@ -26,3 +27,16 @@ export async function importMultiple(
|
|
|
26
27
|
})
|
|
27
28
|
);
|
|
28
29
|
}
|
|
30
|
+
export async function findAppRootPath() {
|
|
31
|
+
if (require.main === undefined) {
|
|
32
|
+
throw new Error("Cannot find AppRoot using Sonamu");
|
|
33
|
+
}
|
|
34
|
+
let dir = path.dirname(require.main.path);
|
|
35
|
+
do {
|
|
36
|
+
if (existsSync(path.join(dir, "/package.json"))) {
|
|
37
|
+
return dir.split(path.sep).slice(0, -1).join(path.sep);
|
|
38
|
+
}
|
|
39
|
+
dir = dir.split(path.sep).slice(0, -1).join(path.sep);
|
|
40
|
+
} while (dir.split(path.sep).length > 1);
|
|
41
|
+
throw new Error("Cannot find AppRoot using Sonamu");
|
|
42
|
+
}
|