@simplysm/sd-cli 10.0.4 → 10.0.22

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 (286) hide show
  1. package/.eslintrc.cjs +1 -1
  2. package/dist/SdLinter.d.ts +5 -0
  3. package/dist/SdLinter.js.map +1 -0
  4. package/dist/SdLinter.mjs +37 -0
  5. package/dist/SdTsIncrementalBuilder.d.ts +16 -0
  6. package/dist/SdTsIncrementalBuilder.js.map +1 -0
  7. package/dist/SdTsIncrementalBuilder.mjs +54 -0
  8. package/dist/build-cluster.js.map +1 -1
  9. package/dist/build-cluster.mjs +124 -0
  10. package/dist/builders/SdCliClientBuilder.d.ts +13 -0
  11. package/dist/builders/SdCliClientBuilder.js.map +1 -0
  12. package/dist/builders/SdCliClientBuilder.mjs +167 -0
  13. package/dist/builders/SdCliJsLibLinter.d.ts +3 -7
  14. package/dist/builders/SdCliJsLibLinter.js.map +1 -1
  15. package/dist/builders/{SdCliJsLibLinter.js → SdCliJsLibLinter.mjs} +8 -17
  16. package/dist/builders/SdCliServerBuilder.d.ts +14 -0
  17. package/dist/builders/SdCliServerBuilder.js.map +1 -0
  18. package/dist/builders/SdCliServerBuilder.mjs +171 -0
  19. package/dist/builders/SdCliTsLibBuilder.d.ts +3 -10
  20. package/dist/builders/SdCliTsLibBuilder.js.map +1 -1
  21. package/dist/builders/SdCliTsLibBuilder.mjs +75 -0
  22. package/dist/commons.d.ts +28 -2
  23. package/dist/entry/SdCliLocalUpdate.d.ts +7 -0
  24. package/dist/entry/SdCliLocalUpdate.js.map +1 -0
  25. package/dist/entry/SdCliLocalUpdate.mjs +55 -0
  26. package/dist/entry/SdCliProject.d.ts +1 -0
  27. package/dist/entry/SdCliProject.js.map +1 -1
  28. package/dist/entry/{SdCliProject.js → SdCliProject.mjs} +94 -10
  29. package/dist/sd-cli.js.map +1 -1
  30. package/dist/{sd-cli.js → sd-cli.mjs} +16 -0
  31. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.d.ts +20 -0
  32. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.js.map +1 -0
  33. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.mjs +12 -0
  34. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.d.ts +43 -0
  35. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.js.map +1 -0
  36. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.mjs +54 -0
  37. package/dist/sd-core-common/src/decorators/PropertyValidate.d.ts +16 -0
  38. package/dist/sd-core-common/src/decorators/PropertyValidate.js.map +1 -0
  39. package/dist/sd-core-common/src/decorators/PropertyValidate.mjs +26 -0
  40. package/dist/sd-core-common/src/decorators/decorator-return-types.d.ts +14 -0
  41. package/dist/sd-core-common/src/decorators/decorator-return-types.js.map +1 -0
  42. package/dist/sd-core-common/src/decorators/decorator-return-types.mjs +2 -0
  43. package/dist/sd-core-common/src/errors/ArgumentError.d.ts +10 -0
  44. package/dist/sd-core-common/src/errors/ArgumentError.js.map +1 -0
  45. package/dist/sd-core-common/src/errors/ArgumentError.mjs +13 -0
  46. package/dist/sd-core-common/src/errors/NeverEntryError.d.ts +10 -0
  47. package/dist/sd-core-common/src/errors/NeverEntryError.js.map +1 -0
  48. package/dist/sd-core-common/src/errors/NeverEntryError.mjs +13 -0
  49. package/dist/sd-core-common/src/errors/NotImplementError.d.ts +10 -0
  50. package/dist/sd-core-common/src/errors/NotImplementError.js.map +1 -0
  51. package/dist/sd-core-common/src/errors/NotImplementError.mjs +13 -0
  52. package/dist/sd-core-common/src/errors/SdError.d.ts +23 -0
  53. package/dist/sd-core-common/src/errors/SdError.js.map +1 -0
  54. package/dist/sd-core-common/src/errors/SdError.mjs +40 -0
  55. package/dist/sd-core-common/src/errors/TimeoutError.d.ts +11 -0
  56. package/dist/sd-core-common/src/errors/TimeoutError.js.map +1 -0
  57. package/dist/sd-core-common/src/errors/TimeoutError.mjs +16 -0
  58. package/dist/sd-core-common/src/extensions/ArrayExtension.d.ts +147 -0
  59. package/dist/sd-core-common/src/extensions/ArrayExtension.js.map +1 -0
  60. package/dist/sd-core-common/src/extensions/ArrayExtension.mjs +448 -0
  61. package/dist/sd-core-common/src/extensions/MapExtension.d.ts +4 -0
  62. package/dist/sd-core-common/src/extensions/MapExtension.js.map +1 -0
  63. package/dist/sd-core-common/src/extensions/MapExtension.mjs +15 -0
  64. package/dist/sd-core-common/src/extensions/SetExtension.d.ts +3 -0
  65. package/dist/sd-core-common/src/extensions/SetExtension.js.map +1 -0
  66. package/dist/sd-core-common/src/extensions/SetExtension.mjs +10 -0
  67. package/dist/sd-core-common/src/index.d.ts +32 -0
  68. package/dist/sd-core-common/src/index.js.map +1 -0
  69. package/dist/sd-core-common/src/index.mjs +33 -0
  70. package/dist/sd-core-common/src/types/DateOnly.d.ts +135 -0
  71. package/dist/sd-core-common/src/types/DateOnly.js.map +1 -0
  72. package/dist/sd-core-common/src/types/DateOnly.mjs +220 -0
  73. package/dist/sd-core-common/src/types/DateTime.d.ts +42 -0
  74. package/dist/sd-core-common/src/types/DateTime.js.map +1 -0
  75. package/dist/sd-core-common/src/types/DateTime.mjs +156 -0
  76. package/dist/sd-core-common/src/types/DeepPartial.d.ts +3 -0
  77. package/dist/sd-core-common/src/types/DeepPartial.js.map +1 -0
  78. package/dist/sd-core-common/src/types/DeepPartial.mjs +2 -0
  79. package/dist/sd-core-common/src/types/ObjectSet.d.ts +4 -0
  80. package/dist/sd-core-common/src/types/ObjectSet.js.map +1 -0
  81. package/dist/sd-core-common/src/types/ObjectSet.mjs +18 -0
  82. package/dist/sd-core-common/src/types/Time.d.ts +27 -0
  83. package/dist/sd-core-common/src/types/Time.js.map +1 -0
  84. package/dist/sd-core-common/src/types/Time.mjs +108 -0
  85. package/dist/sd-core-common/src/types/Type.d.ts +7 -0
  86. package/dist/sd-core-common/src/types/Type.js.map +1 -0
  87. package/dist/sd-core-common/src/types/Type.mjs +2 -0
  88. package/dist/sd-core-common/src/types/UnwrappedType.d.ts +1 -0
  89. package/dist/sd-core-common/src/types/UnwrappedType.js.map +1 -0
  90. package/dist/sd-core-common/src/types/UnwrappedType.mjs +2 -0
  91. package/dist/sd-core-common/src/types/Uuid.d.ts +8 -0
  92. package/dist/sd-core-common/src/types/Uuid.js.map +1 -0
  93. package/dist/sd-core-common/src/types/Uuid.mjs +26 -0
  94. package/dist/sd-core-common/src/types/WrappedType.d.ts +1 -0
  95. package/dist/sd-core-common/src/types/WrappedType.js.map +1 -0
  96. package/dist/sd-core-common/src/types/WrappedType.mjs +2 -0
  97. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.d.ts +12 -0
  98. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.js.map +1 -0
  99. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.mjs +67 -0
  100. package/dist/sd-core-common/src/utils/FunctionQueue.d.ts +8 -0
  101. package/dist/sd-core-common/src/utils/FunctionQueue.js.map +1 -0
  102. package/dist/sd-core-common/src/utils/FunctionQueue.mjs +46 -0
  103. package/dist/sd-core-common/src/utils/FunctionUtil.d.ts +6 -0
  104. package/dist/sd-core-common/src/utils/FunctionUtil.js.map +1 -0
  105. package/dist/sd-core-common/src/utils/FunctionUtil.mjs +31 -0
  106. package/dist/sd-core-common/src/utils/JsonConvert.d.ts +8 -0
  107. package/dist/sd-core-common/src/utils/JsonConvert.js.map +1 -0
  108. package/dist/sd-core-common/src/utils/JsonConvert.mjs +78 -0
  109. package/dist/sd-core-common/src/utils/MathUtil.d.ts +3 -0
  110. package/dist/sd-core-common/src/utils/MathUtil.js.map +1 -0
  111. package/dist/sd-core-common/src/utils/MathUtil.mjs +6 -0
  112. package/dist/sd-core-common/src/utils/NumberUtil.d.ts +6 -0
  113. package/dist/sd-core-common/src/utils/NumberUtil.js.map +1 -0
  114. package/dist/sd-core-common/src/utils/NumberUtil.mjs +32 -0
  115. package/dist/sd-core-common/src/utils/ObjectUtil.d.ts +80 -0
  116. package/dist/sd-core-common/src/utils/ObjectUtil.js.map +1 -0
  117. package/dist/sd-core-common/src/utils/ObjectUtil.mjs +452 -0
  118. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.d.ts +6 -0
  119. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.js.map +1 -0
  120. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.mjs +27 -0
  121. package/dist/sd-core-common/src/utils/StringUtil.d.ts +8 -0
  122. package/dist/sd-core-common/src/utils/StringUtil.js.map +1 -0
  123. package/dist/sd-core-common/src/utils/StringUtil.mjs +77 -0
  124. package/dist/sd-core-common/src/utils/Wait.d.ts +4 -0
  125. package/dist/sd-core-common/src/utils/Wait.js.map +1 -0
  126. package/dist/sd-core-common/src/utils/Wait.mjs +23 -0
  127. package/dist/sd-core-node/src/index.d.ts +6 -0
  128. package/dist/sd-core-node/src/index.js.map +1 -0
  129. package/dist/sd-core-node/src/index.mjs +7 -0
  130. package/dist/sd-core-node/src/utils/FsUtil.d.ts +44 -0
  131. package/dist/sd-core-node/src/utils/FsUtil.js.map +1 -0
  132. package/dist/sd-core-node/src/utils/FsUtil.mjs +493 -0
  133. package/dist/sd-core-node/src/utils/Logger.d.ts +91 -0
  134. package/dist/sd-core-node/src/utils/Logger.js.map +1 -0
  135. package/dist/sd-core-node/src/utils/Logger.mjs +185 -0
  136. package/dist/sd-core-node/src/utils/PathUtil.d.ts +6 -0
  137. package/dist/sd-core-node/src/utils/PathUtil.js.map +1 -0
  138. package/dist/sd-core-node/src/utils/PathUtil.mjs +24 -0
  139. package/dist/sd-core-node/src/utils/SdFsWatcher.d.ts +15 -0
  140. package/dist/sd-core-node/src/utils/SdFsWatcher.js.map +1 -0
  141. package/dist/sd-core-node/src/utils/SdFsWatcher.mjs +43 -0
  142. package/dist/sd-core-node/src/utils/SdProcess.d.ts +5 -0
  143. package/dist/sd-core-node/src/utils/SdProcess.js.map +1 -0
  144. package/dist/sd-core-node/src/utils/SdProcess.mjs +36 -0
  145. package/dist/sd-orm-common/src/CaseQueryHelper.d.ts +12 -0
  146. package/dist/sd-orm-common/src/CaseQueryHelper.js.map +1 -0
  147. package/dist/sd-orm-common/src/CaseQueryHelper.mjs +19 -0
  148. package/dist/sd-orm-common/src/CaseWhenQueryHelper.d.ts +12 -0
  149. package/dist/sd-orm-common/src/CaseWhenQueryHelper.js.map +1 -0
  150. package/dist/sd-orm-common/src/CaseWhenQueryHelper.mjs +20 -0
  151. package/dist/sd-orm-common/src/DbContext.d.ts +81 -0
  152. package/dist/sd-orm-common/src/DbContext.js.map +1 -0
  153. package/dist/sd-orm-common/src/DbContext.mjs +635 -0
  154. package/dist/sd-orm-common/src/IDbConnection.d.ts +15 -0
  155. package/dist/sd-orm-common/src/IDbConnection.js.map +1 -0
  156. package/dist/sd-orm-common/src/IDbConnection.mjs +2 -0
  157. package/dist/sd-orm-common/src/IDbContextExecutor.d.ts +17 -0
  158. package/dist/sd-orm-common/src/IDbContextExecutor.js.map +1 -0
  159. package/dist/sd-orm-common/src/IDbContextExecutor.mjs +2 -0
  160. package/dist/sd-orm-common/src/IDbMigration.d.ts +4 -0
  161. package/dist/sd-orm-common/src/IDbMigration.js.map +1 -0
  162. package/dist/sd-orm-common/src/IDbMigration.mjs +2 -0
  163. package/dist/sd-orm-common/src/QueryBuilder.d.ts +48 -0
  164. package/dist/sd-orm-common/src/QueryBuilder.js.map +1 -0
  165. package/dist/sd-orm-common/src/QueryBuilder.mjs +1022 -0
  166. package/dist/sd-orm-common/src/QueryHelper.d.ts +75 -0
  167. package/dist/sd-orm-common/src/QueryHelper.js.map +1 -0
  168. package/dist/sd-orm-common/src/QueryHelper.mjs +627 -0
  169. package/dist/sd-orm-common/src/QueryUnit.d.ts +10 -0
  170. package/dist/sd-orm-common/src/QueryUnit.js.map +1 -0
  171. package/dist/sd-orm-common/src/QueryUnit.mjs +16 -0
  172. package/dist/sd-orm-common/src/Queryable.d.ts +105 -0
  173. package/dist/sd-orm-common/src/Queryable.js.map +1 -0
  174. package/dist/sd-orm-common/src/Queryable.mjs +1375 -0
  175. package/dist/sd-orm-common/src/SdOrmDataType.d.ts +21 -0
  176. package/dist/sd-orm-common/src/SdOrmDataType.js.map +1 -0
  177. package/dist/sd-orm-common/src/SdOrmDataType.mjs +2 -0
  178. package/dist/sd-orm-common/src/commons.d.ts +400 -0
  179. package/dist/sd-orm-common/src/commons.js.map +1 -0
  180. package/dist/sd-orm-common/src/commons.mjs +8 -0
  181. package/dist/sd-orm-common/src/decorators.d.ts +29 -0
  182. package/dist/sd-orm-common/src/decorators.js.map +1 -0
  183. package/dist/sd-orm-common/src/decorators.mjs +89 -0
  184. package/dist/sd-orm-common/src/index.d.ts +17 -0
  185. package/dist/sd-orm-common/src/index.js.map +1 -0
  186. package/dist/sd-orm-common/src/index.mjs +18 -0
  187. package/dist/sd-orm-common/src/models/SystemMigration.d.ts +3 -0
  188. package/dist/sd-orm-common/src/models/SystemMigration.js.map +1 -0
  189. package/dist/sd-orm-common/src/models/SystemMigration.mjs +13 -0
  190. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.d.ts +14 -0
  191. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.js.map +1 -0
  192. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.mjs +66 -0
  193. package/dist/sd-orm-common/src/utils/SdOrmUtil.d.ts +8 -0
  194. package/dist/sd-orm-common/src/utils/SdOrmUtil.js.map +1 -0
  195. package/dist/sd-orm-common/src/utils/SdOrmUtil.mjs +248 -0
  196. package/dist/sd-orm-node/src/DbConnectionFactory.d.ts +4 -0
  197. package/dist/sd-orm-node/src/DbConnectionFactory.js.map +1 -0
  198. package/dist/sd-orm-node/src/DbConnectionFactory.mjs +17 -0
  199. package/dist/sd-orm-node/src/NodeDbContextExecutor.d.ts +19 -0
  200. package/dist/sd-orm-node/src/NodeDbContextExecutor.js.map +1 -0
  201. package/dist/sd-orm-node/src/NodeDbContextExecutor.mjs +71 -0
  202. package/dist/sd-orm-node/src/SdOrm.d.ts +10 -0
  203. package/dist/sd-orm-node/src/SdOrm.js.map +1 -0
  204. package/dist/sd-orm-node/src/SdOrm.mjs +25 -0
  205. package/dist/sd-orm-node/src/index.d.ts +4 -0
  206. package/dist/sd-orm-node/src/index.js.map +1 -0
  207. package/dist/sd-orm-node/src/index.mjs +5 -0
  208. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.d.ts +25 -0
  209. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.js.map +1 -0
  210. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.mjs +321 -0
  211. package/dist/sd-orm-node-mssql/src/index.d.ts +2 -0
  212. package/dist/sd-orm-node-mssql/src/index.js.map +1 -0
  213. package/dist/sd-orm-node-mssql/src/index.mjs +3 -0
  214. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.d.ts +22 -0
  215. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.js.map +1 -0
  216. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.mjs +200 -0
  217. package/dist/sd-orm-node-mysql/src/index.d.ts +2 -0
  218. package/dist/sd-orm-node-mysql/src/index.js.map +1 -0
  219. package/dist/sd-orm-node-mysql/src/index.mjs +3 -0
  220. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.d.ts +22 -0
  221. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.js.map +1 -0
  222. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.mjs +172 -0
  223. package/dist/sd-orm-node-sqlite/src/index.d.ts +2 -0
  224. package/dist/sd-orm-node-sqlite/src/index.js.map +1 -0
  225. package/dist/sd-orm-node-sqlite/src/index.mjs +3 -0
  226. package/dist/sd-service-common/src/commons-orm.d.ts +4 -0
  227. package/dist/sd-service-common/src/commons-orm.js.map +1 -0
  228. package/dist/sd-service-common/src/commons-orm.mjs +2 -0
  229. package/dist/sd-service-common/src/commons-smtp.d.ts +29 -0
  230. package/dist/sd-service-common/src/commons-smtp.js.map +1 -0
  231. package/dist/sd-service-common/src/commons-smtp.mjs +2 -0
  232. package/dist/sd-service-common/src/commons.d.ts +57 -0
  233. package/dist/sd-service-common/src/commons.js.map +1 -0
  234. package/dist/sd-service-common/src/commons.mjs +3 -0
  235. package/dist/sd-service-common/src/index.d.ts +3 -0
  236. package/dist/sd-service-common/src/index.js.map +1 -0
  237. package/dist/sd-service-common/src/index.mjs +4 -0
  238. package/dist/sd-service-server/src/ApiServiceError.d.ts +12 -0
  239. package/dist/sd-service-server/src/ApiServiceError.js.map +1 -0
  240. package/dist/sd-service-server/src/ApiServiceError.mjs +15 -0
  241. package/dist/sd-service-server/src/SdServiceServer.d.ts +39 -0
  242. package/dist/sd-service-server/src/SdServiceServer.js.map +1 -0
  243. package/dist/sd-service-server/src/SdServiceServer.mjs +513 -0
  244. package/dist/sd-service-server/src/commons.d.ts +23 -0
  245. package/dist/sd-service-server/src/commons.js.map +1 -0
  246. package/dist/sd-service-server/src/commons.mjs +3 -0
  247. package/dist/sd-service-server/src/index.d.ts +8 -0
  248. package/dist/sd-service-server/src/index.js.map +1 -0
  249. package/dist/sd-service-server/src/index.mjs +9 -0
  250. package/dist/sd-service-server/src/services/SdAutoUpdateService.d.ts +4 -0
  251. package/dist/sd-service-server/src/services/SdAutoUpdateService.js.map +1 -0
  252. package/dist/sd-service-server/src/services/SdAutoUpdateService.mjs +20 -0
  253. package/dist/sd-service-server/src/services/SdCryptoService.d.ts +7 -0
  254. package/dist/sd-service-server/src/services/SdCryptoService.js.map +1 -0
  255. package/dist/sd-service-server/src/services/SdCryptoService.mjs +39 -0
  256. package/dist/sd-service-server/src/services/SdOrmService.d.ts +22 -0
  257. package/dist/sd-service-server/src/services/SdOrmService.js.map +1 -0
  258. package/dist/sd-service-server/src/services/SdOrmService.mjs +115 -0
  259. package/dist/sd-service-server/src/services/SdSmtpClientService.d.ts +6 -0
  260. package/dist/sd-service-server/src/services/SdSmtpClientService.js.map +1 -0
  261. package/dist/sd-service-server/src/services/SdSmtpClientService.mjs +44 -0
  262. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.d.ts +4 -0
  263. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.js.map +1 -0
  264. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.mjs +36 -0
  265. package/dist/server-worker.d.ts +1 -0
  266. package/dist/server-worker.js.map +1 -0
  267. package/dist/server-worker.mjs +36 -0
  268. package/package.json +12 -5
  269. package/src/SdLinter.ts +41 -0
  270. package/src/SdTsIncrementalBuilder.ts +75 -0
  271. package/src/build-cluster.ts +69 -18
  272. package/src/builders/SdCliClientBuilder.ts +189 -0
  273. package/src/builders/SdCliJsLibLinter.ts +11 -23
  274. package/src/builders/SdCliServerBuilder.ts +191 -0
  275. package/src/builders/SdCliTsLibBuilder.ts +33 -202
  276. package/src/commons.ts +33 -2
  277. package/src/entry/SdCliLocalUpdate.ts +70 -0
  278. package/src/entry/SdCliProject.ts +133 -17
  279. package/src/sd-cli.ts +20 -0
  280. package/src/server-worker.ts +45 -0
  281. package/tsconfig.json +1 -10
  282. package/dist/build-cluster.js +0 -75
  283. package/dist/builders/SdCliTsLibBuilder.js +0 -205
  284. /package/dist/{commons.js → commons.mjs} +0 -0
  285. /package/dist/utils/{SdCliBuildResultUtil.js → SdCliBuildResultUtil.mjs} +0 -0
  286. /package/dist/utils/{SdCliConfigUtil.js → SdCliConfigUtil.mjs} +0 -0
@@ -24,6 +24,7 @@ export class SdCliProject {
24
24
  logger.debug("빌드 프로세스 이벤트 준비...");
25
25
  const resultCache = new Map();
26
26
  let busyCount = 0;
27
+ const serverInfoMap = new Map();
27
28
  cluster.on("message", (message) => {
28
29
  if (message.type === "change") {
29
30
  if (busyCount === 0) {
@@ -39,9 +40,60 @@ export class SdCliProject {
39
40
  const cacheItem = resultCache.getOrCreate(buildResult.filePath ?? "none", []);
40
41
  cacheItem.push(buildResult);
41
42
  }
42
- setTimeout(() => {
43
+ if (message.req.pkgConf.type === "server") {
44
+ const pkgName = path.basename(message.req.pkgPath);
45
+ const serverInfo = serverInfoMap.getOrCreate(pkgName, {
46
+ hasChanges: false,
47
+ pathProxy: {},
48
+ changeFilePaths: []
49
+ });
50
+ serverInfo.pkgPath = message.req.pkgPath;
51
+ serverInfo.hasChanges = true;
52
+ }
53
+ if (message.req.pkgConf.type === "client" && message.req.pkgConf.server !== undefined) {
54
+ const pkgName = path.basename(message.req.pkgPath);
55
+ const serverInfo = serverInfoMap.getOrCreate(message.req.pkgConf.server, {
56
+ hasChanges: false,
57
+ pathProxy: {},
58
+ changeFilePaths: []
59
+ });
60
+ serverInfo.pathProxy[pkgName] = message.result.port;
61
+ serverInfo.changeFilePaths.push(...message.result.affectedFilePaths);
62
+ }
63
+ setTimeout(async () => {
43
64
  busyCount--;
44
65
  if (busyCount === 0) {
66
+ for (const serverPkgName of serverInfoMap.keys()) {
67
+ const serverInfo = serverInfoMap.get(serverPkgName);
68
+ if (serverInfo.pkgPath !== undefined && serverInfo.hasChanges) {
69
+ logger.debug("서버 재시작...");
70
+ try {
71
+ const restartServerResult = await this._restartServerAsync(serverInfo.pkgPath, serverInfo.worker);
72
+ serverInfo.worker = restartServerResult.worker;
73
+ serverInfo.port = restartServerResult.port;
74
+ serverInfo.hasChanges = false;
75
+ }
76
+ catch (err) {
77
+ logger.error(err);
78
+ }
79
+ }
80
+ if (serverInfo.worker) {
81
+ logger.debug("클라이언트 설정...");
82
+ serverInfo.worker.send({
83
+ type: "setPathProxy",
84
+ pathProxy: serverInfo.pathProxy
85
+ });
86
+ }
87
+ }
88
+ const clientPaths = [];
89
+ for (const serverInfo of serverInfoMap.values()) {
90
+ for (const proxyPath of Object.keys(serverInfo.pathProxy)) {
91
+ clientPaths.push(`http://localhost:${serverInfo.port}/${proxyPath}/`);
92
+ }
93
+ }
94
+ if (clientPaths.length > 0) {
95
+ logger.info("클라이언트 개발 서버 접속 주소\n" + clientPaths.join("\n"));
96
+ }
45
97
  const buildResults = Array.from(resultCache.values()).mapMany();
46
98
  this._logging(buildResults, logger);
47
99
  }
@@ -52,7 +104,7 @@ export class SdCliProject {
52
104
  busyCount++;
53
105
  logger.log("빌드를 시작합니다...");
54
106
  await pkgPaths.parallelAsync(async (pkgPath) => {
55
- await this._runCommandAsync(cluster, "watch", pkgPath);
107
+ await this._runCommandAsync(cluster, "watch", pkgPath, projConf.packages[path.basename(pkgPath)]);
56
108
  });
57
109
  busyCount--;
58
110
  if (busyCount === 0) {
@@ -78,7 +130,7 @@ export class SdCliProject {
78
130
  const cluster = await this._prepareClusterAsync();
79
131
  logger.debug("빌드 프로세스 명령 전달...");
80
132
  const results = (await pkgPaths.parallelAsync(async (pkgPath) => {
81
- return await this._runCommandAsync(cluster, "build", pkgPath);
133
+ return await this._runCommandAsync(cluster, "build", pkgPath, projConf.packages[path.basename(pkgPath)]);
82
134
  })).mapMany();
83
135
  logger.debug("빌드 프로세스 닫기...");
84
136
  this._closeCluster(cluster);
@@ -116,7 +168,7 @@ export class SdCliProject {
116
168
  const cluster = await this._prepareClusterAsync();
117
169
  logger.debug("빌드 프로세스 명령 전달...");
118
170
  const results = (await pkgPaths.parallelAsync(async (pkgPath) => {
119
- return await this._runCommandAsync(cluster, "build", pkgPath);
171
+ return await this._runCommandAsync(cluster, "build", pkgPath, projConf.packages[path.basename(pkgPath)]);
120
172
  })).mapMany();
121
173
  logger.debug("빌드 프로세스 닫기...");
122
174
  this._closeCluster(cluster);
@@ -246,24 +298,56 @@ export class SdCliProject {
246
298
  });
247
299
  });
248
300
  }
249
- static async _runCommandAsync(cluster, cmd, pkgPath) {
250
- await new Promise((resolve) => {
301
+ static async _runCommandAsync(cluster, cmd, pkgPath, pkgConf) {
302
+ return await new Promise((resolve) => {
251
303
  const cb = (message) => {
252
- if (cmd === "watch" && message.type === "ready" && message.cmd === cmd && message.pkgPath === pkgPath) {
304
+ if (cmd === "watch" && message.type === "ready" && message.req.cmd === cmd && message.req.pkgPath === pkgPath) {
253
305
  cluster.off("message", cb);
254
306
  resolve();
255
307
  }
256
- else if (cmd === "build" && message.type === "complete" && message.cmd === cmd && message.pkgPath === pkgPath) {
308
+ else if (cmd === "build" && message.type === "complete" && message.req.cmd === cmd && message.req.pkgPath === pkgPath) {
257
309
  cluster.off("message", cb);
258
- resolve(message.result);
310
+ resolve(message.result?.buildResults);
259
311
  }
260
312
  };
261
313
  cluster.on("message", cb);
262
- cluster.send({ cmd, pkgPath });
314
+ cluster.send({ cmd, pkgPath, pkgConf });
263
315
  });
264
316
  }
265
317
  static _closeCluster(cluster) {
266
318
  cluster.kill("SIGKILL");
267
319
  }
320
+ static async _restartServerAsync(pkgPath, prevServerProcess) {
321
+ const logger = Logger.get(["simplysm", "sd-cli", "SdCliProject", "_restartServerAsync"]);
322
+ if (prevServerProcess) {
323
+ prevServerProcess.kill("SIGKILL");
324
+ }
325
+ return await new Promise(async (resolve, reject) => {
326
+ const worker = cp.fork(fileURLToPath(await import.meta.resolve("../server-worker")), [pkgPath], {
327
+ stdio: ["pipe", "pipe", "pipe", "ipc"],
328
+ env: process.env
329
+ });
330
+ worker.stdout.pipe(process.stdout);
331
+ worker.stderr.pipe(process.stderr);
332
+ worker.on("exit", (code) => {
333
+ if (code != null && code !== 0) {
334
+ const err = new Error(`오류와 함께 닫힘 (${code})`);
335
+ logger.error(err);
336
+ reject(err);
337
+ return;
338
+ }
339
+ });
340
+ worker.on("error", (err) => {
341
+ logger.error(err);
342
+ reject(err);
343
+ });
344
+ worker.on("message", (message) => {
345
+ if ("port" in message) {
346
+ logger.debug("서버가 시작되었습니다.");
347
+ resolve({ worker, port: message.port });
348
+ }
349
+ });
350
+ });
351
+ }
268
352
  }
269
353
  //# sourceMappingURL=SdCliProject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sd-cli.js","sourceRoot":"","sources":["../../../src/sd-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sd-cli.js","sourceRoot":"","sources":["../../../src/sd-cli.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { hideBin } from "yargs/helpers";
3
3
  import { SdCliProject } from "./entry/SdCliProject";
4
4
  import { Logger, LoggerSeverity } from "@simplysm/sd-core-node";
5
5
  import { EventEmitter } from "events";
6
+ import { SdCliLocalUpdate } from "./entry/SdCliLocalUpdate";
7
+ Error.stackTraceLimit = Infinity;
6
8
  EventEmitter.defaultMaxListeners = 0;
7
9
  const argv = (await yargs(hideBin(process.argv))
8
10
  .help("help", "도움말")
@@ -69,6 +71,13 @@ const argv = (await yargs(hideBin(process.argv))
69
71
  array: true,
70
72
  describe: "수행할 패키지 설정"
71
73
  }
74
+ }))
75
+ .command("local-update", "로컬 라이브러리 업데이트를 수행합니다.", (cmd) => cmd.version(false).hide("help").hide("debug")
76
+ .options({
77
+ config: {
78
+ type: "string",
79
+ describe: "simplysm.json 파일 경로"
80
+ }
72
81
  }))
73
82
  .parseAsync());
74
83
  if (Boolean(argv.debug)) {
@@ -112,6 +121,13 @@ else if (argv._[0] === "publish") {
112
121
  pkgNames: argv.packages ?? []
113
122
  });
114
123
  }
124
+ else if (argv._[0] === "local-update") {
125
+ await SdCliLocalUpdate
126
+ .runAsync({
127
+ rootPath: process.cwd(),
128
+ confFileRelPath: argv.config ?? "simplysm.json"
129
+ });
130
+ }
115
131
  else {
116
132
  throw new Error(`명령어가 잘못 되었습니다.\n\t${argv._[0]}\n`);
117
133
  }
@@ -0,0 +1,20 @@
1
+ import { TPropertyDecoratorReturn } from "./decorator-return-types";
2
+ /**
3
+ * 속성에 설정하여, 동일 클래스의 {@link INotifyPropertyChange.onPropertyChange} 호출
4
+ */
5
+ export declare function NotifyPropertyChange(): TPropertyDecoratorReturn<any>;
6
+ /**
7
+ * {@link NotifyPropertyChange}가 설정된 속성이 변경될때, 상속한 클래스의 {@link onPropertyChange} 호출
8
+ */
9
+ export interface INotifyPropertyChange {
10
+ /**
11
+ * {@link NotifyPropertyChange}가 설정된 속성이 변경될때, 상속한 클래스의 {@link onPropertyChange} 호출
12
+ *
13
+ * @template K 속성명 타입
14
+ *
15
+ * @param propertyName 속성명
16
+ * @param oldValue 변경 이전 값
17
+ * @param newValue 변경 이후 값
18
+ */
19
+ onPropertyChange<K extends keyof this>(propertyName: K, oldValue: this[K], newValue: this[K]): void;
20
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotifyPropertyChange.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/decorators/NotifyPropertyChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,2BAA2B,CAAC;QACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACrD,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { PropertyGetSetDecoratorBase } from "./PropertyGetSetDecoratorBase";
2
+ /**
3
+ * 속성에 설정하여, 동일 클래스의 {@link INotifyPropertyChange.onPropertyChange} 호출
4
+ */
5
+ export function NotifyPropertyChange() {
6
+ return PropertyGetSetDecoratorBase({
7
+ afterSet: (target, propertyName, oldValue, newValue) => {
8
+ target.onPropertyChange(propertyName, oldValue, newValue);
9
+ }
10
+ });
11
+ }
12
+ //# sourceMappingURL=NotifyPropertyChange.js.map
@@ -0,0 +1,43 @@
1
+ import { TPropertyDecoratorReturn } from "./decorator-return-types";
2
+ /**
3
+ * 속성의 GET/SET 을 Interupt 하여 사용하는 Decorator를 위한 기본 함수
4
+ *
5
+ * @template O 클래스 타입
6
+ * @template K 클래스내 속성명
7
+ */
8
+ export declare function PropertyGetSetDecoratorBase<O extends object, K extends keyof O>(arg: IPropertyGetSetDecoratorBaseParam<O, K>): TPropertyDecoratorReturn<O, K>;
9
+ /**
10
+ * {@link PropertyGetSetDecoratorBase} 의 Parameter
11
+ *
12
+ * @template O 클래스 타입
13
+ * @template K 클래스내 속성명
14
+ *
15
+ */
16
+ export interface IPropertyGetSetDecoratorBaseParam<O extends object, K extends keyof O> {
17
+ /**
18
+ * 값이 설정 되기 전에 수행할 함수
19
+ *
20
+ * @param target 객체
21
+ * @param propertyName 속성명
22
+ * @param oldValue SET 이전값
23
+ * @param newValue SET 이후값
24
+ */
25
+ beforeSet?: (target: O, propertyName: K, oldValue: O[K], newValue: O[K]) => (O[K] | undefined);
26
+ /**
27
+ * 값이 설정 된 직후, 수행할 함수
28
+ *
29
+ * @param target 객체
30
+ * @param propertyName 속성명
31
+ * @param oldValue SET 이전값
32
+ * @param newValue SET 이후값
33
+ */
34
+ afterSet?: (target: O, propertyName: K, oldValue: O[K], newValue: O[K]) => void;
35
+ /**
36
+ * 누군가 GET 을 시도할때, GET 되기 전, 수행할 함수
37
+ *
38
+ * @param target 객체
39
+ * @param propertyName 속성명
40
+ * @param value GET 처리될 현재 값
41
+ */
42
+ get?: (target: O, propertyName: K, value: O[K]) => void;
43
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyGetSetDecoratorBase.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/decorators/PropertyGetSetDecoratorBase.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAsC,GAA4C;IAC3H,OAAO,UAAU,MAAS,EAAE,YAAe,EAAE,eAAoC;QAC/E,MAAM,cAAc,GAAG,eAAe,IAAI,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAChG,MAAM,UAAU,GAAG,cAAc,EAAE,GAAG,CAAC;QACvC,MAAM,UAAU,GAAG,cAAc,EAAE,GAAG,CAAC;QAEvC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,YAAsB,CAAC,CAAC;QAErF,MAAM,MAAM,GAAG;YACb,MAAM,KAAK,GAAG,UAAU,KAAK,SAAS;gBACpC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,YAAsB,CAAC,CAAC;YAE9D,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE;gBACzB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;aACpC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,UAAmB,KAAW;YAC3C,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS;gBACxC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,YAAsB,CAAC,CAAC;YAE9D,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE;gBAC/B,MAAM,eAAe,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAChF,IAAI,eAAe,KAAK,SAAS,EAAE;oBACjC,SAAS,GAAG,eAAe,CAAC;iBAC7B;aACF;YAED,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;aAClC;iBACI;gBACH,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAsB,CAAC,CAAC;aACzE;YAED,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC9B,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;aACxD;QACH,CAAC,CAAC;QAEF,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE;YAC/B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;gBAC1C,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,MAAM;gBACX,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,54 @@
1
+ const symbol = "sd-type-validate";
2
+ /**
3
+ * 속성의 GET/SET 을 Interupt 하여 사용하는 Decorator를 위한 기본 함수
4
+ *
5
+ * @template O 클래스 타입
6
+ * @template K 클래스내 속성명
7
+ */
8
+ export function PropertyGetSetDecoratorBase(arg) {
9
+ return function (target, propertyName, inputDescriptor) {
10
+ const prevDescriptor = inputDescriptor ?? Object.getOwnPropertyDescriptor(target, propertyName);
11
+ const prevGetter = prevDescriptor?.get;
12
+ const prevSetter = prevDescriptor?.set;
13
+ Reflect.defineMetadata(symbol, target[propertyName], target, propertyName);
14
+ const getter = function () {
15
+ const value = prevGetter !== undefined
16
+ ? prevGetter.bind(this)()
17
+ : Reflect.getMetadata(symbol, this, propertyName);
18
+ if (arg.get !== undefined) {
19
+ arg.get(this, propertyName, value);
20
+ }
21
+ return value;
22
+ };
23
+ const setter = function (value) {
24
+ const prevValue = prevGetter !== undefined
25
+ ? prevGetter.bind(this)()
26
+ : Reflect.getMetadata(symbol, this, propertyName);
27
+ let realValue = value;
28
+ if (arg.beforeSet !== undefined) {
29
+ const beforeSetResult = arg.beforeSet(this, propertyName, prevValue, realValue);
30
+ if (beforeSetResult !== undefined) {
31
+ realValue = beforeSetResult;
32
+ }
33
+ }
34
+ if (prevSetter !== undefined) {
35
+ prevSetter.bind(this)(realValue);
36
+ }
37
+ else {
38
+ Reflect.defineMetadata(symbol, realValue, this, propertyName);
39
+ }
40
+ if (arg.afterSet !== undefined) {
41
+ arg.afterSet(this, propertyName, prevValue, realValue);
42
+ }
43
+ };
44
+ if (delete target[propertyName]) {
45
+ Object.defineProperty(target, propertyName, {
46
+ get: getter,
47
+ set: setter,
48
+ enumerable: true,
49
+ configurable: true
50
+ });
51
+ }
52
+ };
53
+ }
54
+ //# sourceMappingURL=PropertyGetSetDecoratorBase.js.map
@@ -0,0 +1,16 @@
1
+ import { TValidateDef } from "../utils/ObjectUtil";
2
+ import { TPropertyDecoratorReturn } from "./decorator-return-types";
3
+ /**
4
+ * 속성값이 설정될 때, 기대되는 값인지 확인 하는 Decorator
5
+ *
6
+ * @param def Validation 설정
7
+ * @param replacer 체크하기전에 값을 변경하는 함수
8
+ */
9
+ export declare function PropertyValidate(def: TValidateDef<any>, replacer?: TPropertyValidateReplacer): TPropertyDecoratorReturn<any>;
10
+ /**
11
+ * 체크하기전에 값을 변경하는 함수
12
+ *
13
+ * @param value 입력값
14
+ * @returns 출력값
15
+ */
16
+ export type TPropertyValidateReplacer = (value: any) => any;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyValidate.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/decorators/PropertyValidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAG/D;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAsB,EAAE,QAAoC;IAC3F,OAAO,2BAA2B,CAAC;QACjC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;YACxD,MAAM,iBAAiB,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAC1D,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,SAAS,CAAC;oBACjG,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;oBAClC,YAAY;oBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;iBAC5C,CAAC,EAAE,CAAC,CAAC;aACP;YAED,OAAO,iBAAiB,CAAC;QAC3B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { PropertyGetSetDecoratorBase } from "./PropertyGetSetDecoratorBase";
2
+ import { ObjectUtil } from "../utils/ObjectUtil";
3
+ /**
4
+ * 속성값이 설정될 때, 기대되는 값인지 확인 하는 Decorator
5
+ *
6
+ * @param def Validation 설정
7
+ * @param replacer 체크하기전에 값을 변경하는 함수
8
+ */
9
+ export function PropertyValidate(def, replacer) {
10
+ return PropertyGetSetDecoratorBase({
11
+ beforeSet: (target, propertyName, prevValue, nextValue) => {
12
+ const replacedNextValue = replacer !== undefined ? replacer(nextValue) : nextValue;
13
+ const error = ObjectUtil.validate(replacedNextValue, def);
14
+ if (error !== undefined) {
15
+ throw new Error(`${error.message !== undefined ? error.message : "입력값이 잘못되었습니다"}: ${JSON.stringify({
16
+ component: target.constructor.name,
17
+ propertyName,
18
+ value: error.value,
19
+ errorKeys: Object.keys(error.invalidateDef)
20
+ })}`);
21
+ }
22
+ return replacedNextValue;
23
+ }
24
+ });
25
+ }
26
+ //# sourceMappingURL=PropertyValidate.js.map
@@ -0,0 +1,14 @@
1
+ import { Type } from "../types/Type";
2
+ /**
3
+ * 속성용 Decorator 함수의 Return 타입
4
+ *
5
+ * @template T 포함된 클래스 타입
6
+ * @template N 속성명 (string)
7
+ */
8
+ export type TPropertyDecoratorReturn<T, N = string> = (target: T, propertyName: N, inputDescriptor?: PropertyDescriptor) => void;
9
+ /**
10
+ * 클래스용 Decorator 함수의 Return 타입
11
+ *
12
+ * @template T 클래스 타입
13
+ */
14
+ export type TClassDecoratorReturn<T> = (classType: Type<T>) => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorator-return-types.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/decorators/decorator-return-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=decorator-return-types.js.map
@@ -0,0 +1,10 @@
1
+ import { SdError } from "./SdError";
2
+ /**
3
+ * 인수 오류
4
+ */
5
+ export declare class ArgumentError extends SdError {
6
+ /**
7
+ * @param argObj 잘못된 인수/값 들
8
+ */
9
+ constructor(argObj: Record<string, any>);
10
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgumentError.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/errors/ArgumentError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC;;OAEG;IACH,YAAmB,MAA2B;QAC5C,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { SdError } from "./SdError";
2
+ /**
3
+ * 인수 오류
4
+ */
5
+ export class ArgumentError extends SdError {
6
+ /**
7
+ * @param argObj 잘못된 인수/값 들
8
+ */
9
+ constructor(argObj) {
10
+ super("인수가 잘못되었습니다: " + JSON.stringify(argObj));
11
+ }
12
+ }
13
+ //# sourceMappingURL=ArgumentError.js.map
@@ -0,0 +1,10 @@
1
+ import { SdError } from "./SdError";
2
+ /**
3
+ * 절대 진입되지 않을것으로 예상되는 장소에 진입함 오류
4
+ */
5
+ export declare class NeverEntryError extends SdError {
6
+ /**
7
+ * @param message 도움 출력 메시지
8
+ */
9
+ constructor(message?: string);
10
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NeverEntryError.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/errors/NeverEntryError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAC1C;;OAEG;IACH,YAAmB,OAAgB;QACjC,KAAK,CAAC,gCAAgC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { SdError } from "./SdError";
2
+ /**
3
+ * 절대 진입되지 않을것으로 예상되는 장소에 진입함 오류
4
+ */
5
+ export class NeverEntryError extends SdError {
6
+ /**
7
+ * @param message 도움 출력 메시지
8
+ */
9
+ constructor(message) {
10
+ super("절대 진입될 수 없는것으로 판단된 코드에 진입되었습니다" + (message !== undefined ? ": " + message : ""));
11
+ }
12
+ }
13
+ //# sourceMappingURL=NeverEntryError.js.map
@@ -0,0 +1,10 @@
1
+ import { SdError } from "./SdError";
2
+ /**
3
+ * 미구현 오류
4
+ */
5
+ export declare class NotImplementError extends SdError {
6
+ /**
7
+ * @param message 도움 출력 메시지
8
+ */
9
+ constructor(message?: string);
10
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotImplementError.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/errors/NotImplementError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAC5C;;OAEG;IACH,YAAmB,OAAgB;QACjC,KAAK,CAAC,aAAa,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { SdError } from "./SdError";
2
+ /**
3
+ * 미구현 오류
4
+ */
5
+ export class NotImplementError extends SdError {
6
+ /**
7
+ * @param message 도움 출력 메시지
8
+ */
9
+ constructor(message) {
10
+ super("구현되어있지 않습니다" + (message !== undefined ? ": " + message : ""));
11
+ }
12
+ }
13
+ //# sourceMappingURL=NotImplementError.js.map
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 오류의 Tree 구조 구성이 가능한 오류 클래스
3
+ */
4
+ export declare class SdError extends Error {
5
+ /**
6
+ * 내부오류
7
+ */
8
+ innerError?: Error;
9
+ /**
10
+ * @param innerError 내부오류
11
+ * @param message 현재 오류의 메시지
12
+ */
13
+ constructor(innerError?: Error, message?: string);
14
+ /**
15
+ * @param message 현재 오류의 메시지
16
+ */
17
+ constructor(message?: string);
18
+ /**
19
+ * @param innerErrorMessage 내부오류의 메시지
20
+ * @param message 현재 오류의 메시지
21
+ */
22
+ constructor(innerErrorMessage?: string, message?: string);
23
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdError.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/errors/SdError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,KAAK;IAsBhC,YAAmB,IAAqB,EAAE,IAAa;QACrD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACxD,KAAK,CACH,CAAC,IAAI,IAAI,EAAE,CAAC;kBACV,CACA,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE;oBAC9C,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE;wBACxC,CAAC,CAAC,sBAAsB,CAC7B,CACF,CAAC;SACH;aACI;YACH,KAAK,CAAC,IAAI,IAAI,sBAAsB,CAAC,CAAC;SACvC;QAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,WAAW,EAAE;YAClD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;SAC3C;aACI;YACH,IAAI;gBACF,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC/B;YACD,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,KAAK,EAAE;oBACxB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;iBACxB;qBACI;oBACH,MAAM,GAAG,CAAC;iBACX;aACF;SACF;QAED,qCAAqC;QACrC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,KAAK,IAAI,kCAAkC,IAAI,CAAC,KAAK,EAAE,CAAC;SAC9D;IACH,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * 오류의 Tree 구조 구성이 가능한 오류 클래스
3
+ */
4
+ export class SdError extends Error {
5
+ constructor(arg1, arg2) {
6
+ if (typeof arg1 === "object" || typeof arg2 === "string") {
7
+ super((arg2 ?? "")
8
+ + (typeof arg1 === "object" ? ` => ${arg1.message}`
9
+ : typeof arg1 === "string" ? ` => ${arg1}`
10
+ : "처리되지 않은 예외가 발생하였습니다."));
11
+ }
12
+ else {
13
+ super(arg1 ?? "처리되지 않은 예외가 발생하였습니다.");
14
+ }
15
+ Object.setPrototypeOf(this, new.target.prototype);
16
+ this.name = new.target.name;
17
+ if (typeof Error.captureStackTrace !== "undefined") {
18
+ Error.captureStackTrace(this, new.target);
19
+ }
20
+ else {
21
+ try {
22
+ throw new Error(this.message);
23
+ }
24
+ catch (err) {
25
+ if (err instanceof Error) {
26
+ this.stack = err.stack;
27
+ }
28
+ else {
29
+ throw err;
30
+ }
31
+ }
32
+ }
33
+ // noinspection SuspiciousTypeOfGuard
34
+ if (typeof arg1 === "object" && typeof arg1.stack === "string") {
35
+ this.innerError = arg1;
36
+ this.stack += `\n---- inner error stack ----\n${arg1.stack}`;
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=SdError.js.map
@@ -0,0 +1,11 @@
1
+ import { SdError } from "./SdError";
2
+ /**
3
+ * 타임아웃 오류
4
+ */
5
+ export declare class TimeoutError extends SdError {
6
+ /**
7
+ * @param millisecond 얼마를 기다리고 타임아웃 되었는지?
8
+ * @param message 추가 출력 메시지
9
+ */
10
+ constructor(millisecond?: number, message?: string);
11
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeoutError.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/errors/TimeoutError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC;;;OAGG;IACH,YAAmB,WAAoB,EAAE,OAAgB;QACvD,KAAK,CACH,eAAe;cACb,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;cACvD,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { SdError } from "./SdError";
2
+ /**
3
+ * 타임아웃 오류
4
+ */
5
+ export class TimeoutError extends SdError {
6
+ /**
7
+ * @param millisecond 얼마를 기다리고 타임아웃 되었는지?
8
+ * @param message 추가 출력 메시지
9
+ */
10
+ constructor(millisecond, message) {
11
+ super("대기시간이 초과되었습니다"
12
+ + (millisecond !== undefined ? `(${millisecond}ms)` : "")
13
+ + (message !== undefined ? `: ${message}` : ""));
14
+ }
15
+ }
16
+ //# sourceMappingURL=TimeoutError.js.map