sonamu 0.2.43 → 0.2.44
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-EYNTBWQC.js} +36 -32
- package/dist/chunk-EYNTBWQC.js.map +1 -0
- package/dist/{chunk-5B6LB6JU.mjs → chunk-FOD6BJQJ.mjs} +36 -32
- package/dist/{chunk-5B6LB6JU.mjs.map → chunk-FOD6BJQJ.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 _chunkEYNTBWQCjs = require('./chunk-EYNTBWQC.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 (_chunkEYNTBWQCjs.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 = _chunkEYNTBWQCjs.AlreadyProcessedException; exports.ApiParamType = _chunkEYNTBWQCjs.ApiParamType; exports.BadRequestException = _chunkEYNTBWQCjs.BadRequestException; exports.BaseModel = _chunkEYNTBWQCjs.BaseModel; exports.BaseModelClass = _chunkEYNTBWQCjs.BaseModelClass; exports.DB = _chunkEYNTBWQCjs.DB; exports.DuplicateRowException = _chunkEYNTBWQCjs.DuplicateRowException; exports.EntityManager = _chunkEYNTBWQCjs.EntityManager; exports.FixtureManager = _chunkEYNTBWQCjs.FixtureManager; exports.FixtureManagerClass = _chunkEYNTBWQCjs.FixtureManagerClass; exports.GenerateOptions = _chunkEYNTBWQCjs.GenerateOptions; exports.InternalServerErrorException = _chunkEYNTBWQCjs.InternalServerErrorException; exports.Migrator = _chunkEYNTBWQCjs.Migrator; exports.NotFoundException = _chunkEYNTBWQCjs.NotFoundException; exports.PathAndCode = _chunkEYNTBWQCjs.PathAndCode; exports.RenderingNode = _chunkEYNTBWQCjs.RenderingNode; exports.SQLDateTimeString = _chunkEYNTBWQCjs.SQLDateTimeString; exports.ServiceUnavailableException = _chunkEYNTBWQCjs.ServiceUnavailableException; exports.SoException = _chunkEYNTBWQCjs.SoException; exports.Sonamu = _chunkEYNTBWQCjs.Sonamu; exports.SonamuQueryMode = _chunkEYNTBWQCjs.SonamuQueryMode; exports.Syncer = _chunkEYNTBWQCjs.Syncer; exports.TargetNotFoundException = _chunkEYNTBWQCjs.TargetNotFoundException; exports.TemplateKey = _chunkEYNTBWQCjs.TemplateKey; exports.TemplateOptions = _chunkEYNTBWQCjs.TemplateOptions; exports.UnauthorizedException = _chunkEYNTBWQCjs.UnauthorizedException; exports.UpsertBuilder = _chunkEYNTBWQCjs.UpsertBuilder; exports.api = _chunkEYNTBWQCjs.api; exports.apiParamToTsCode = _chunkEYNTBWQCjs.apiParamToTsCode; exports.apiParamTypeToTsType = _chunkEYNTBWQCjs.apiParamTypeToTsType; exports.asArray = asArray; exports.findApiRootPath = _chunkEYNTBWQCjs.findApiRootPath; exports.findAppRootPath = _chunkEYNTBWQCjs.findAppRootPath; exports.getTextTypeLength = _chunkEYNTBWQCjs.getTextTypeLength; exports.getZodObjectFromApi = _chunkEYNTBWQCjs.getZodObjectFromApi; exports.getZodObjectFromApiParams = _chunkEYNTBWQCjs.getZodObjectFromApiParams; exports.getZodTypeFromApiParamType = _chunkEYNTBWQCjs.getZodTypeFromApiParamType; exports.globAsync = _chunkEYNTBWQCjs.globAsync; exports.i = i; exports.importMultiple = _chunkEYNTBWQCjs.importMultiple; exports.isBelongsToOneRelationProp = _chunkEYNTBWQCjs.isBelongsToOneRelationProp; exports.isBigIntegerProp = _chunkEYNTBWQCjs.isBigIntegerProp; exports.isBooleanProp = _chunkEYNTBWQCjs.isBooleanProp; exports.isCustomJoinClause = _chunkEYNTBWQCjs.isCustomJoinClause; exports.isDaemonServer = _chunkEYNTBWQCjs.isDaemonServer; exports.isDateProp = _chunkEYNTBWQCjs.isDateProp; exports.isDateTimeProp = _chunkEYNTBWQCjs.isDateTimeProp; exports.isDecimalProp = _chunkEYNTBWQCjs.isDecimalProp; exports.isDevelopment = _chunkEYNTBWQCjs.isDevelopment; exports.isDoubleProp = _chunkEYNTBWQCjs.isDoubleProp; exports.isEnumProp = _chunkEYNTBWQCjs.isEnumProp; exports.isFloatProp = _chunkEYNTBWQCjs.isFloatProp; exports.isHasManyRelationProp = _chunkEYNTBWQCjs.isHasManyRelationProp; exports.isInDocker = _chunkEYNTBWQCjs.isInDocker; exports.isIntegerProp = _chunkEYNTBWQCjs.isIntegerProp; exports.isJsonProp = _chunkEYNTBWQCjs.isJsonProp; exports.isKnexError = _chunkEYNTBWQCjs.isKnexError; exports.isLocal = _chunkEYNTBWQCjs.isLocal; exports.isManyToManyRelationProp = _chunkEYNTBWQCjs.isManyToManyRelationProp; exports.isOneToOneRelationProp = _chunkEYNTBWQCjs.isOneToOneRelationProp; exports.isProduction = _chunkEYNTBWQCjs.isProduction; exports.isRefField = _chunkEYNTBWQCjs.isRefField; exports.isRelationProp = _chunkEYNTBWQCjs.isRelationProp; exports.isRemote = _chunkEYNTBWQCjs.isRemote; exports.isSoException = _chunkEYNTBWQCjs.isSoException; exports.isStaging = _chunkEYNTBWQCjs.isStaging; exports.isStringProp = _chunkEYNTBWQCjs.isStringProp; exports.isTest = _chunkEYNTBWQCjs.isTest; exports.isTextProp = _chunkEYNTBWQCjs.isTextProp; exports.isTimeProp = _chunkEYNTBWQCjs.isTimeProp; exports.isTimestampProp = _chunkEYNTBWQCjs.isTimestampProp; exports.isUuidProp = _chunkEYNTBWQCjs.isUuidProp; exports.isVirtualProp = _chunkEYNTBWQCjs.isVirtualProp; exports.nonNullable = _chunkEYNTBWQCjs.nonNullable; exports.objToMap = objToMap; exports.p = p; exports.propNodeToZodTypeDef = _chunkEYNTBWQCjs.propNodeToZodTypeDef; exports.propToZodTypeDef = _chunkEYNTBWQCjs.propToZodTypeDef; exports.registeredApis = _chunkEYNTBWQCjs.registeredApis; exports.serializeZodType = _chunkEYNTBWQCjs.serializeZodType; exports.setupErrorHandler = setupErrorHandler; exports.unwrapPromiseOnce = _chunkEYNTBWQCjs.unwrapPromiseOnce; exports.zArrayable = _chunkEYNTBWQCjs.zArrayable; exports.zodTypeToTsTypeDef = _chunkEYNTBWQCjs.zodTypeToTsTypeDef; exports.zodTypeToZodCode = _chunkEYNTBWQCjs.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
|
});
|