sonamu 0.2.43 → 0.2.45
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/bin/cli.js +48 -48
- package/dist/bin/cli.mjs +1 -1
- package/dist/{chunk-COTJCJ2O.js → chunk-77XBF27L.js} +35 -32
- package/dist/chunk-77XBF27L.js.map +1 -0
- package/dist/{chunk-5B6LB6JU.mjs → chunk-7BVQURJT.mjs} +35 -32
- package/dist/{chunk-5B6LB6JU.mjs.map → chunk-7BVQURJT.mjs.map} +1 -1
- package/dist/index.js +3 -3
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/src/database/knex-plugins/knex-on-duplicate-update.ts +36 -32
- package/tsup.config.js +17 -2
- package/dist/chunk-COTJCJ2O.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -79,13 +79,13 @@
|
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
|
|
82
|
-
var
|
|
82
|
+
var _chunk77XBF27Ljs = require('./chunk-77XBF27L.js');
|
|
83
83
|
|
|
84
84
|
// src/exceptions/error-handler.ts
|
|
85
85
|
function setupErrorHandler(server) {
|
|
86
86
|
server.setErrorHandler((error, request, reply) => {
|
|
87
87
|
_nullishCoalesce(error.statusCode, () => ( (error.statusCode = 400)));
|
|
88
|
-
if (
|
|
88
|
+
if (_chunk77XBF27Ljs.isSoException.call(void 0, error) && error.payload && Array.isArray(error.payload)) {
|
|
89
89
|
const issues = error.payload;
|
|
90
90
|
const [issue] = issues;
|
|
91
91
|
const message = `${issue.message} (${issue.path.join("/")})`;
|
|
@@ -421,5 +421,5 @@ function unique(columns) {
|
|
|
421
421
|
|
|
422
422
|
|
|
423
423
|
|
|
424
|
-
exports.AlreadyProcessedException =
|
|
424
|
+
exports.AlreadyProcessedException = _chunk77XBF27Ljs.AlreadyProcessedException; exports.ApiParamType = _chunk77XBF27Ljs.ApiParamType; exports.BadRequestException = _chunk77XBF27Ljs.BadRequestException; exports.BaseModel = _chunk77XBF27Ljs.BaseModel; exports.BaseModelClass = _chunk77XBF27Ljs.BaseModelClass; exports.DB = _chunk77XBF27Ljs.DB; exports.DuplicateRowException = _chunk77XBF27Ljs.DuplicateRowException; exports.EntityManager = _chunk77XBF27Ljs.EntityManager; exports.FixtureManager = _chunk77XBF27Ljs.FixtureManager; exports.FixtureManagerClass = _chunk77XBF27Ljs.FixtureManagerClass; exports.GenerateOptions = _chunk77XBF27Ljs.GenerateOptions; exports.InternalServerErrorException = _chunk77XBF27Ljs.InternalServerErrorException; exports.Migrator = _chunk77XBF27Ljs.Migrator; exports.NotFoundException = _chunk77XBF27Ljs.NotFoundException; exports.PathAndCode = _chunk77XBF27Ljs.PathAndCode; exports.RenderingNode = _chunk77XBF27Ljs.RenderingNode; exports.SQLDateTimeString = _chunk77XBF27Ljs.SQLDateTimeString; exports.ServiceUnavailableException = _chunk77XBF27Ljs.ServiceUnavailableException; exports.SoException = _chunk77XBF27Ljs.SoException; exports.Sonamu = _chunk77XBF27Ljs.Sonamu; exports.SonamuQueryMode = _chunk77XBF27Ljs.SonamuQueryMode; exports.Syncer = _chunk77XBF27Ljs.Syncer; exports.TargetNotFoundException = _chunk77XBF27Ljs.TargetNotFoundException; exports.TemplateKey = _chunk77XBF27Ljs.TemplateKey; exports.TemplateOptions = _chunk77XBF27Ljs.TemplateOptions; exports.UnauthorizedException = _chunk77XBF27Ljs.UnauthorizedException; exports.UpsertBuilder = _chunk77XBF27Ljs.UpsertBuilder; exports.api = _chunk77XBF27Ljs.api; exports.apiParamToTsCode = _chunk77XBF27Ljs.apiParamToTsCode; exports.apiParamTypeToTsType = _chunk77XBF27Ljs.apiParamTypeToTsType; exports.asArray = asArray; exports.findApiRootPath = _chunk77XBF27Ljs.findApiRootPath; exports.findAppRootPath = _chunk77XBF27Ljs.findAppRootPath; exports.getTextTypeLength = _chunk77XBF27Ljs.getTextTypeLength; exports.getZodObjectFromApi = _chunk77XBF27Ljs.getZodObjectFromApi; exports.getZodObjectFromApiParams = _chunk77XBF27Ljs.getZodObjectFromApiParams; exports.getZodTypeFromApiParamType = _chunk77XBF27Ljs.getZodTypeFromApiParamType; exports.globAsync = _chunk77XBF27Ljs.globAsync; exports.i = i; exports.importMultiple = _chunk77XBF27Ljs.importMultiple; exports.isBelongsToOneRelationProp = _chunk77XBF27Ljs.isBelongsToOneRelationProp; exports.isBigIntegerProp = _chunk77XBF27Ljs.isBigIntegerProp; exports.isBooleanProp = _chunk77XBF27Ljs.isBooleanProp; exports.isCustomJoinClause = _chunk77XBF27Ljs.isCustomJoinClause; exports.isDaemonServer = _chunk77XBF27Ljs.isDaemonServer; exports.isDateProp = _chunk77XBF27Ljs.isDateProp; exports.isDateTimeProp = _chunk77XBF27Ljs.isDateTimeProp; exports.isDecimalProp = _chunk77XBF27Ljs.isDecimalProp; exports.isDevelopment = _chunk77XBF27Ljs.isDevelopment; exports.isDoubleProp = _chunk77XBF27Ljs.isDoubleProp; exports.isEnumProp = _chunk77XBF27Ljs.isEnumProp; exports.isFloatProp = _chunk77XBF27Ljs.isFloatProp; exports.isHasManyRelationProp = _chunk77XBF27Ljs.isHasManyRelationProp; exports.isInDocker = _chunk77XBF27Ljs.isInDocker; exports.isIntegerProp = _chunk77XBF27Ljs.isIntegerProp; exports.isJsonProp = _chunk77XBF27Ljs.isJsonProp; exports.isKnexError = _chunk77XBF27Ljs.isKnexError; exports.isLocal = _chunk77XBF27Ljs.isLocal; exports.isManyToManyRelationProp = _chunk77XBF27Ljs.isManyToManyRelationProp; exports.isOneToOneRelationProp = _chunk77XBF27Ljs.isOneToOneRelationProp; exports.isProduction = _chunk77XBF27Ljs.isProduction; exports.isRefField = _chunk77XBF27Ljs.isRefField; exports.isRelationProp = _chunk77XBF27Ljs.isRelationProp; exports.isRemote = _chunk77XBF27Ljs.isRemote; exports.isSoException = _chunk77XBF27Ljs.isSoException; exports.isStaging = _chunk77XBF27Ljs.isStaging; exports.isStringProp = _chunk77XBF27Ljs.isStringProp; exports.isTest = _chunk77XBF27Ljs.isTest; exports.isTextProp = _chunk77XBF27Ljs.isTextProp; exports.isTimeProp = _chunk77XBF27Ljs.isTimeProp; exports.isTimestampProp = _chunk77XBF27Ljs.isTimestampProp; exports.isUuidProp = _chunk77XBF27Ljs.isUuidProp; exports.isVirtualProp = _chunk77XBF27Ljs.isVirtualProp; exports.nonNullable = _chunk77XBF27Ljs.nonNullable; exports.objToMap = objToMap; exports.p = p; exports.propNodeToZodTypeDef = _chunk77XBF27Ljs.propNodeToZodTypeDef; exports.propToZodTypeDef = _chunk77XBF27Ljs.propToZodTypeDef; exports.registeredApis = _chunk77XBF27Ljs.registeredApis; exports.serializeZodType = _chunk77XBF27Ljs.serializeZodType; exports.setupErrorHandler = setupErrorHandler; exports.unwrapPromiseOnce = _chunk77XBF27Ljs.unwrapPromiseOnce; exports.zArrayable = _chunk77XBF27Ljs.zArrayable; exports.zodTypeToTsTypeDef = _chunk77XBF27Ljs.zodTypeToTsTypeDef; exports.zodTypeToZodCode = _chunk77XBF27Ljs.zodTypeToZodCode;
|
|
425
425
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,41 +1,45 @@
|
|
|
1
1
|
import knex from "knex";
|
|
2
2
|
|
|
3
3
|
export function attachOnDuplicateUpdate() {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
try {
|
|
5
|
+
knex.QueryBuilder.extend("onDuplicateUpdate", function (...columns) {
|
|
6
|
+
if (columns.length === 0) {
|
|
7
|
+
// 업데이트 할 컬럼이 없으면 onDuplicateUpdate 구문 처리 패스
|
|
8
|
+
const { sql: originalSQL, bindings: originalBindings } = this.toSQL();
|
|
9
|
+
return this.client.raw(originalSQL, originalBindings);
|
|
10
|
+
}
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
const { placeholders, bindings } = columns.reduce(
|
|
13
|
+
(result, column) => {
|
|
14
|
+
if (typeof column === "string") {
|
|
15
|
+
result.placeholders.push(`?? = Values(??)`);
|
|
16
|
+
result.bindings.push(column, column);
|
|
17
|
+
} else if (column && typeof column === "object") {
|
|
18
|
+
Object.keys(column).forEach((key) => {
|
|
19
|
+
result.placeholders.push(`?? = ?`);
|
|
20
|
+
result.bindings.push(key, column[key]);
|
|
21
|
+
});
|
|
22
|
+
} else {
|
|
23
|
+
throw new Error(
|
|
24
|
+
"onDuplicateUpdate error: expected column name to be string or object."
|
|
25
|
+
);
|
|
26
|
+
}
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
return result;
|
|
29
|
+
},
|
|
30
|
+
{ placeholders: [], bindings: [] }
|
|
31
|
+
);
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
const { sql: originalSQL, bindings: originalBindings } = this.toSQL();
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
const newBindings = [...originalBindings, ...bindings];
|
|
35
36
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
return this.client.raw(
|
|
38
|
+
`${originalSQL} ON DUPLICATE KEY UPDATE ${placeholders.join(", ")}`,
|
|
39
|
+
newBindings
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
} catch {
|
|
43
|
+
// ignored
|
|
44
|
+
}
|
|
41
45
|
}
|
package/tsup.config.js
CHANGED
|
@@ -19,11 +19,26 @@ export default defineConfig({
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
external: [
|
|
22
|
-
"
|
|
22
|
+
"chalk",
|
|
23
|
+
"dotenv",
|
|
24
|
+
"fast-deep-equal",
|
|
23
25
|
"fastify",
|
|
26
|
+
"fs-extra",
|
|
27
|
+
"glob",
|
|
24
28
|
"inflection",
|
|
29
|
+
"knex",
|
|
30
|
+
"lodash",
|
|
31
|
+
"luxon",
|
|
32
|
+
"mysql2",
|
|
33
|
+
"node-sql-parser",
|
|
34
|
+
"prompts",
|
|
35
|
+
"qs",
|
|
36
|
+
"tsicli",
|
|
37
|
+
"uuid",
|
|
38
|
+
"zod",
|
|
39
|
+
"prettier",
|
|
25
40
|
"source-map-support",
|
|
41
|
+
"tsup",
|
|
26
42
|
"typescript",
|
|
27
|
-
"prettier",
|
|
28
43
|
],
|
|
29
44
|
});
|