@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
@@ -0,0 +1,147 @@
1
+ import { Type } from "../types/Type";
2
+ import { WrappedType } from "../types/WrappedType";
3
+ import { DateOnly } from "../types/DateOnly";
4
+ import { DateTime } from "../types/DateTime";
5
+ import { Time } from "../types/Time";
6
+ declare global {
7
+ interface Array<T> {
8
+ /**
9
+ * 필터에 맞는 하나의 값 찾기 (여러값이 있을 경우 오류 발생)
10
+ * @param predicate 필터
11
+ */
12
+ single(predicate?: (item: T, index: number) => boolean): T | undefined;
13
+ first(predicate?: (item: T, index: number) => boolean): T | undefined;
14
+ filterAsync(predicate: (item: T, index: number) => Promise<boolean>): Promise<T[]>;
15
+ last(predicate?: (item: T, index: number) => boolean): T | undefined;
16
+ filterExists(): NonNullable<T>[];
17
+ ofType<N extends T>(type: Type<WrappedType<N>>): N[];
18
+ mapAsync<R>(selector: (item: T, index: number) => Promise<R>): Promise<R[]>;
19
+ mapMany(): T;
20
+ mapMany<R>(selector: (item: T, index: number) => R[]): R[];
21
+ mapManyAsync<R>(selector: (item: T, index: number) => Promise<R[]>): Promise<R[]>;
22
+ parallelAsync<R>(fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
23
+ groupBy<K>(keySelector: (item: T, index: number) => K): {
24
+ key: K;
25
+ values: T[];
26
+ }[];
27
+ groupBy<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): {
28
+ key: K;
29
+ values: V[];
30
+ }[];
31
+ toMap<K>(keySelector: (item: T, index: number) => K): Map<K, T>;
32
+ toMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V>;
33
+ toMapAsync<K>(keySelector: (item: T, index: number) => Promise<K>): Promise<Map<K, T>>;
34
+ toMapAsync<K, V>(keySelector: (item: T, index: number) => Promise<K> | K, valueSelector: (item: T, index: number) => Promise<V> | V): Promise<Map<K, V>>;
35
+ toArrayMap<K>(keySelector: (item: T, index: number) => K): Map<K, T[]>;
36
+ toArrayMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V[]>;
37
+ toMapValues<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (items: T[]) => V): Map<K, V>;
38
+ toObject(keySelector: (item: T, index: number) => string): Record<string, T>;
39
+ toObject<V>(keySelector: (item: T, index: number) => string, valueSelector: (item: T, index: number) => V): Record<string, V>;
40
+ toTree<K extends keyof T, P extends keyof T>(keyProp: K, parentKey: P): ITreeArray<T>[];
41
+ distinct(matchAddress?: boolean): T[];
42
+ distinctThis(matchAddress?: boolean): T[];
43
+ orderBy(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
44
+ orderByThis(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
45
+ orderByDesc(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
46
+ orderByDescThis(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
47
+ diffs<P>(target: P[], options?: {
48
+ keys?: string[];
49
+ excludes?: string[];
50
+ }): TArrayDiffsResult<T, P>[];
51
+ oneWayDiffs<K extends keyof T>(orgItems: T[] | Map<T[K], T>, key: K, options?: {
52
+ includeSame?: boolean;
53
+ excludes?: string[];
54
+ }): TArrayDiffs2Result<T>[];
55
+ merge<P>(target: P[], options?: {
56
+ keys?: string[];
57
+ excludes?: string[];
58
+ }): (T | P | (T & P))[];
59
+ sum(selector?: (item: T, index: number) => number): number;
60
+ min(): T | undefined;
61
+ min<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
62
+ max(): T | undefined;
63
+ max<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
64
+ shuffle(): T[];
65
+ insert(index: number, ...items: T[]): this;
66
+ remove(item: T): this;
67
+ remove(selector: (item: T, index: number) => boolean): this;
68
+ clear(): this;
69
+ }
70
+ interface ReadonlyArray<T> {
71
+ single(predicate?: (item: T, index: number) => boolean): T | undefined;
72
+ first(predicate?: (item: T, index: number) => boolean): T | undefined;
73
+ filterAsync(predicate: (item: T, index: number) => Promise<boolean>): Promise<T[]>;
74
+ last(predicate?: (item: T, index: number) => boolean): T | undefined;
75
+ filterExists(): NonNullable<T>[];
76
+ ofType<N extends T>(type: Type<WrappedType<N>>): N[];
77
+ mapAsync<R>(selector: (item: T, index: number) => Promise<R>): Promise<R[]>;
78
+ mapMany(): T;
79
+ mapMany<R>(selector: (item: T, index: number) => R[]): R[];
80
+ mapManyAsync<R>(selector: (item: T, index: number) => Promise<R[]>): Promise<R[]>;
81
+ parallelAsync<R>(fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
82
+ groupBy<K>(keySelector: (item: T, index: number) => K): {
83
+ key: K;
84
+ values: T[];
85
+ }[];
86
+ groupBy<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): {
87
+ key: K;
88
+ values: V[];
89
+ }[];
90
+ toMap<K>(keySelector: (item: T, index: number) => K): Map<K, T>;
91
+ toMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V>;
92
+ toMapAsync<K>(keySelector: (item: T, index: number) => Promise<K>): Promise<Map<K, T>>;
93
+ toMapAsync<K, V>(keySelector: (item: T, index: number) => Promise<K> | K, valueSelector: (item: T, index: number) => Promise<V> | V): Promise<Map<K, V>>;
94
+ toArrayMap<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (item: T, index: number) => V): Map<K, V[]>;
95
+ toMapValues<K, V>(keySelector: (item: T, index: number) => K, valueSelector: (items: T[]) => V): Map<K, V>;
96
+ toObject(keySelector: (item: T, index: number) => string): Record<string, T>;
97
+ toObject<V>(keySelector: (item: T, index: number) => string, valueSelector: (item: T, index: number) => V): Record<string, V>;
98
+ toTree<K extends keyof T, P extends keyof T>(keyProp: K, parentKey: P): ITreeArray<T>[];
99
+ distinct(matchAddress?: boolean): T[];
100
+ orderBy(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
101
+ orderByDesc(selector?: (item: T) => string | number | DateOnly | DateTime | Time | undefined): T[];
102
+ diffs<P>(target: P[], options?: {
103
+ keys?: string[];
104
+ excludes?: string[];
105
+ }): TArrayDiffsResult<T, P>[];
106
+ oneWayDiffs<K extends keyof T>(orgItems: T[] | Map<T[K], T>, key: K, options?: {
107
+ includeSame?: boolean;
108
+ excludes?: string[];
109
+ }): TArrayDiffs2Result<T>[];
110
+ merge<P>(target: P[], options?: {
111
+ keys?: string[];
112
+ excludes?: string[];
113
+ }): (T | P | (T & P))[];
114
+ sum(selector?: (item: T, index: number) => number): number;
115
+ min(): T | undefined;
116
+ min<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
117
+ max(): T | undefined;
118
+ max<P extends number | string>(selector?: (item: T, index: number) => P): P | undefined;
119
+ }
120
+ }
121
+ export type TArrayDiffsResult<T, P> = {
122
+ source: undefined;
123
+ target: P;
124
+ } | // INSERT
125
+ {
126
+ source: T;
127
+ target: undefined;
128
+ } | // DELETE
129
+ {
130
+ source: T;
131
+ target: P;
132
+ };
133
+ export type TArrayDiffs2Result<T> = {
134
+ type: "create";
135
+ item: T;
136
+ } | {
137
+ type: "update";
138
+ item: T;
139
+ orgItem: T;
140
+ } | {
141
+ type: "same";
142
+ item: T;
143
+ orgItem: T;
144
+ };
145
+ export type ITreeArray<T> = T & {
146
+ children: ITreeArray<T>[];
147
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayExtension.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/extensions/ArrayExtension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,448 @@
1
+ import { NeverEntryError } from "../errors/NeverEntryError";
2
+ import { ObjectUtil } from "../utils/ObjectUtil";
3
+ import { DateOnly } from "../types/DateOnly";
4
+ import { DateTime } from "../types/DateTime";
5
+ import { Time } from "../types/Time";
6
+ ((prototype) => {
7
+ prototype.single = function (predicate) {
8
+ const arr = predicate !== undefined ? this.filter(predicate) : this;
9
+ if (arr.length > 1) {
10
+ throw new Error(`복수의 결과물이 있습니다. (${arr.length}개)`);
11
+ }
12
+ return arr[0];
13
+ };
14
+ prototype.first = function (predicate) {
15
+ return predicate !== undefined ? this.find(predicate) : this[0];
16
+ };
17
+ prototype.filterAsync = async function (predicate) {
18
+ const arr = [];
19
+ for (let i = 0; i < this.length; i++) {
20
+ if (await predicate(this[i], i)) {
21
+ arr.push(this[i]);
22
+ }
23
+ }
24
+ return arr;
25
+ };
26
+ prototype.last = function (predicate) {
27
+ if (predicate !== undefined) {
28
+ for (let i = this.length - 1; i >= 0; i--) {
29
+ if (predicate(this[i], i)) {
30
+ return this[i];
31
+ }
32
+ }
33
+ return undefined;
34
+ }
35
+ else {
36
+ return this[this.length - 1];
37
+ }
38
+ };
39
+ prototype.filterExists = function () {
40
+ return this.filter((item) => item !== undefined);
41
+ };
42
+ prototype.ofType = function (type) {
43
+ return this.filter((item) => item instanceof type || item?.constructor === type);
44
+ };
45
+ prototype.mapAsync = async function (selector) {
46
+ const result = [];
47
+ for (let i = 0; i < this.length; i++) {
48
+ result.push(await selector(this[i], i));
49
+ }
50
+ return result;
51
+ };
52
+ prototype.mapMany = function (selector) {
53
+ const arr = selector ? this.map(selector) : this;
54
+ return arr.length > 0 ? arr.reduce((p, n) => (p ?? []).concat(n ?? [])) : arr;
55
+ };
56
+ prototype.mapManyAsync = async function (selector) {
57
+ const arr = selector !== undefined ? await this.mapAsync(selector) : this;
58
+ return arr.mapMany();
59
+ };
60
+ prototype.parallelAsync = async function (fn) {
61
+ return await Promise.all(this.map(async (item, index) => await fn(item, index)));
62
+ };
63
+ prototype.groupBy = function (keySelector, valueSelector) {
64
+ const result = [];
65
+ for (let i = 0; i < this.length; i++) {
66
+ const keyObj = keySelector(this[i], i);
67
+ const valueObj = valueSelector !== undefined ? valueSelector(this[i], i) : this[i];
68
+ const existsRecord = result.single((item) => ObjectUtil.equal(item.key, keyObj));
69
+ if (existsRecord !== undefined) {
70
+ existsRecord.values.push(valueObj);
71
+ }
72
+ else {
73
+ result.push({ key: keyObj, values: [valueObj] });
74
+ }
75
+ }
76
+ return result;
77
+ };
78
+ prototype.toMap = function (keySelector, valueSelector) {
79
+ const result = new Map();
80
+ for (let i = 0; i < this.length; i++) {
81
+ const item = this[i];
82
+ const keyObj = keySelector(item, i);
83
+ const valueObj = valueSelector !== undefined ? valueSelector(item, i) : item;
84
+ if (result.has(keyObj)) {
85
+ throw new Error(`키가 중복되었습니다. (중복된키: ${JSON.stringify(keyObj)})`);
86
+ }
87
+ result.set(keyObj, valueObj);
88
+ }
89
+ return result;
90
+ };
91
+ prototype.toMapAsync = async function (keySelector, valueSelector) {
92
+ const result = new Map();
93
+ for (let i = 0; i < this.length; i++) {
94
+ const item = this[i];
95
+ const keyObj = await keySelector(item, i);
96
+ const valueObj = valueSelector !== undefined ? await valueSelector(item, i) : item;
97
+ if (result.has(keyObj)) {
98
+ throw new Error(`키가 중복되었습니다. (중복된키: ${JSON.stringify(keyObj)})`);
99
+ }
100
+ result.set(keyObj, valueObj);
101
+ }
102
+ return result;
103
+ };
104
+ prototype.toArrayMap = function (keySelector, valueSelector) {
105
+ const result = new Map();
106
+ for (let i = 0; i < this.length; i++) {
107
+ const item = this[i];
108
+ const keyObj = keySelector(item, i);
109
+ const valueObj = valueSelector !== undefined ? valueSelector(item, i) : item;
110
+ const arr = result.getOrCreate(keyObj, []);
111
+ arr.push(valueObj);
112
+ }
113
+ return result;
114
+ };
115
+ prototype.toMapValues = function (keySelector, valueSelector) {
116
+ const itemsMap = new Map();
117
+ for (let i = 0; i < this.length; i++) {
118
+ const item = this[i];
119
+ const keyObj = keySelector(item, i);
120
+ const arr = itemsMap.getOrCreate(keyObj, []);
121
+ arr.push(item);
122
+ }
123
+ const result = new Map();
124
+ for (const key of itemsMap.keys()) {
125
+ result.set(key, valueSelector(itemsMap.get(key)));
126
+ }
127
+ return result;
128
+ };
129
+ prototype.toObject = function (keySelector, valueSelector) {
130
+ const result = {};
131
+ for (let i = 0; i < this.length; i++) {
132
+ const item = this[i];
133
+ const key = keySelector(item, i);
134
+ const valueObj = valueSelector !== undefined ? valueSelector(item, i) : item;
135
+ if (result[key] !== undefined) {
136
+ throw new Error(`키가 중복되었습니다. (중복된키: ${key})`);
137
+ }
138
+ result[key] = valueObj;
139
+ }
140
+ return result;
141
+ };
142
+ prototype.toTree = function (key, parentKey) {
143
+ const fn = (items) => {
144
+ return items.map((item) => ({
145
+ ...ObjectUtil.clone(item),
146
+ // @ts-expect-error
147
+ children: fn(this.filter((item1) => item1[parentKey] === item[key]))
148
+ }));
149
+ };
150
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
151
+ const rootItems = this.filter((item1) => item1[parentKey] == null);
152
+ return fn(rootItems);
153
+ };
154
+ prototype.distinct = function (matchAddress) {
155
+ const result = [];
156
+ for (const item of this) {
157
+ if (!result.some((item1) => (matchAddress === true ? item1 === item : ObjectUtil.equal(item1, item)))) {
158
+ result.push(item);
159
+ }
160
+ }
161
+ return result;
162
+ };
163
+ prototype.distinctThis = function (matchAddress) {
164
+ const distinctArray = this.distinct(matchAddress);
165
+ this.clear().push(...distinctArray);
166
+ return this;
167
+ };
168
+ prototype.orderBy = function (selector) {
169
+ return this.concat().sort((p, n) => {
170
+ const pn = selector !== undefined ? selector(n) : n;
171
+ const pp = selector !== undefined ? selector(p) : p;
172
+ const cpn = pn instanceof DateOnly ? pn.tick
173
+ : pn instanceof DateTime ? pn.tick
174
+ : pn instanceof Time ? pn.tick
175
+ : pn;
176
+ const cpp = pp instanceof DateOnly ? pp.tick
177
+ : pp instanceof DateTime ? pp.tick
178
+ : pp instanceof Time ? pp.tick
179
+ : pp;
180
+ if (cpn === cpp) {
181
+ return 0;
182
+ }
183
+ else if (typeof cpn === "string" && typeof cpp === "string") {
184
+ return cpp.localeCompare(cpn);
185
+ }
186
+ else if (typeof cpn === "number" && typeof cpp === "number") {
187
+ return (cpn > cpp ? -1 : cpn < cpp ? 1 : 0);
188
+ }
189
+ else if (typeof cpn === "boolean" && typeof cpp === "boolean") {
190
+ return cpn === cpp ? 0 : cpn ? -1 : 1;
191
+ }
192
+ else if (typeof cpp === "undefined") {
193
+ return -1;
194
+ }
195
+ else if (typeof cpn === "undefined") {
196
+ return 1;
197
+ }
198
+ else {
199
+ throw new Error("orderBy를 사용할 수 없는 타입입니다.");
200
+ }
201
+ });
202
+ };
203
+ prototype.orderByThis = function (selector) {
204
+ return this.sort((p, n) => {
205
+ const pn = selector !== undefined ? selector(n) : n;
206
+ const pp = selector !== undefined ? selector(p) : p;
207
+ const cpn = pn instanceof DateOnly ? pn.tick
208
+ : pn instanceof DateTime ? pn.tick
209
+ : pn instanceof Time ? pn.tick
210
+ : pn;
211
+ const cpp = pp instanceof DateOnly ? pp.tick
212
+ : pp instanceof DateTime ? pp.tick
213
+ : pp instanceof Time ? pp.tick
214
+ : pp;
215
+ if (cpn === cpp) {
216
+ return 0;
217
+ }
218
+ else if (typeof cpn === "string" && typeof cpp === "string") {
219
+ return cpp.localeCompare(cpn);
220
+ }
221
+ else if (typeof cpn === "number" && typeof cpp === "number") {
222
+ return (cpn > cpp ? -1 : cpn < cpp ? 1 : 0);
223
+ }
224
+ else if (typeof cpn === "boolean" && typeof cpp === "boolean") {
225
+ return cpn === cpp ? 0 : cpn ? -1 : 1;
226
+ }
227
+ else if (typeof cpp === "undefined") {
228
+ return -1;
229
+ }
230
+ else if (typeof cpn === "undefined") {
231
+ return 1;
232
+ }
233
+ else {
234
+ throw new Error("orderBy를 사용할 수 없는 타입입니다.");
235
+ }
236
+ });
237
+ };
238
+ prototype.orderByDesc = function (selector) {
239
+ return this.concat().sort((p, n) => {
240
+ const pn = selector !== undefined ? selector(n) : n;
241
+ const pp = selector !== undefined ? selector(p) : p;
242
+ const cpn = pn instanceof DateOnly ? pn.tick
243
+ : pn instanceof DateTime ? pn.tick
244
+ : pn instanceof Time ? pn.tick
245
+ : pn;
246
+ const cpp = pp instanceof DateOnly ? pp.tick
247
+ : pp instanceof DateTime ? pp.tick
248
+ : pp instanceof Time ? pp.tick
249
+ : pp;
250
+ if (cpn === cpp) {
251
+ return 0;
252
+ }
253
+ else if (typeof cpn === "string" && typeof cpp === "string") {
254
+ return cpn.localeCompare(cpp);
255
+ }
256
+ else if (typeof cpn === "number" && typeof cpp === "number") {
257
+ return (cpn < cpp ? -1 : cpn > cpp ? 1 : 0);
258
+ }
259
+ else if (typeof cpn === "boolean" && typeof cpp === "boolean") {
260
+ return cpn === cpp ? 0 : cpn ? 1 : -1;
261
+ }
262
+ else if (typeof cpp === "undefined") {
263
+ return 1;
264
+ }
265
+ else if (typeof cpn === "undefined") {
266
+ return -1;
267
+ }
268
+ else {
269
+ throw new Error("orderBy를 사용할 수 없는 타입입니다.");
270
+ }
271
+ });
272
+ };
273
+ prototype.orderByDescThis = function (selector) {
274
+ return this.sort((p, n) => {
275
+ const pn = selector !== undefined ? selector(n) : n;
276
+ const pp = selector !== undefined ? selector(p) : p;
277
+ const cpn = pn instanceof DateOnly ? pn.tick
278
+ : pn instanceof DateTime ? pn.tick
279
+ : pn instanceof Time ? pn.tick
280
+ : pn;
281
+ const cpp = pp instanceof DateOnly ? pp.tick
282
+ : pp instanceof DateTime ? pp.tick
283
+ : pp instanceof Time ? pp.tick
284
+ : pp;
285
+ if (cpn === cpp) {
286
+ return 0;
287
+ }
288
+ else if (typeof cpn === "string" && typeof cpp === "string") {
289
+ return cpn.localeCompare(cpp);
290
+ }
291
+ else if (typeof cpn === "number" && typeof cpp === "number") {
292
+ return (cpn < cpp ? -1 : cpn > cpp ? 1 : 0);
293
+ }
294
+ else if (typeof cpn === "boolean" && typeof cpp === "boolean") {
295
+ return cpn === cpp ? 0 : cpn ? 1 : -1;
296
+ }
297
+ else if (typeof cpp === "undefined") {
298
+ return 1;
299
+ }
300
+ else if (typeof cpn === "undefined") {
301
+ return -1;
302
+ }
303
+ else {
304
+ throw new Error("orderBy를 사용할 수 없는 타입입니다.");
305
+ }
306
+ });
307
+ };
308
+ prototype.diffs = function (target, options) {
309
+ const result = [];
310
+ const uncheckedTarget = [].concat(target); // source 비교시, 수정으로 판단되거나 변경사항이 없는것으로 판단된 target 은 제외시킴
311
+ for (const sourceItem of this) {
312
+ //target 에 동일한 항목이 없을 때
313
+ const sameTarget = uncheckedTarget.single((targetItem) => (ObjectUtil.equal(targetItem, sourceItem, options?.excludes !== undefined ? { excludes: options.excludes } : undefined)));
314
+ if (sameTarget === undefined) {
315
+ //키 설정시
316
+ if (options?.keys !== undefined) {
317
+ //target 에 동일한 항목은 아니지만, key 가 같은게 있는 경우: source => target 수정된 항목
318
+ const sameKeyTargetItem = uncheckedTarget.single((targetItem) => ObjectUtil.equal(targetItem, sourceItem, { includes: options.keys }));
319
+ if (sameKeyTargetItem !== undefined) {
320
+ result.push({ source: sourceItem, target: sameKeyTargetItem });
321
+ uncheckedTarget.remove(sameKeyTargetItem);
322
+ continue;
323
+ }
324
+ }
325
+ //기타: source 에서 삭제된 항목
326
+ result.push({ source: sourceItem, target: undefined });
327
+ }
328
+ else {
329
+ uncheckedTarget.remove(sameTarget);
330
+ }
331
+ }
332
+ for (const uncheckedTargetItem of uncheckedTarget) {
333
+ //target 에 추가된 항목
334
+ result.push({ source: undefined, target: uncheckedTargetItem });
335
+ }
336
+ return result;
337
+ };
338
+ prototype.oneWayDiffs = function (orgItems, key, options) {
339
+ const orgItemMap = orgItems instanceof Map ? orgItems : orgItems.toMap((orgItem) => orgItem[key]);
340
+ const includeSame = options?.includeSame ?? false;
341
+ const diffs = [];
342
+ for (const item of this) {
343
+ if (item[key] === undefined) {
344
+ diffs.push({ type: "create", item });
345
+ continue;
346
+ }
347
+ const orgItem = orgItemMap.get(item[key]);
348
+ if (!orgItem) {
349
+ diffs.push({ type: "create", item });
350
+ continue;
351
+ }
352
+ if (ObjectUtil.equal(orgItem, item, { excludes: options?.excludes })) {
353
+ if (includeSame) {
354
+ diffs.push({ type: "same", item, orgItem });
355
+ }
356
+ continue;
357
+ }
358
+ diffs.push({ type: "update", item, orgItem });
359
+ }
360
+ return diffs;
361
+ };
362
+ prototype.merge = function (target, options) {
363
+ const diffs = this.diffs(target, options);
364
+ const result = ObjectUtil.clone(this);
365
+ for (const diff of diffs) {
366
+ // 변경시
367
+ if (diff.source !== undefined && diff.target !== undefined) {
368
+ const resultSourceItem = result.single((item) => ObjectUtil.equal(item, diff.source));
369
+ if (resultSourceItem === undefined) {
370
+ throw new NeverEntryError();
371
+ }
372
+ result[result.indexOf(resultSourceItem)] = ObjectUtil.merge(diff.source, diff.target);
373
+ }
374
+ // 추가시
375
+ else if (diff.target !== undefined) {
376
+ result.push(diff.target);
377
+ }
378
+ }
379
+ return result;
380
+ };
381
+ prototype.sum = function (selector) {
382
+ let result = 0;
383
+ for (let i = 0; i < this.length; i++) {
384
+ const item = selector !== undefined ? selector(this[i], i) : this[i];
385
+ if (typeof item !== "number") {
386
+ throw new Error("sum 은 number 에 대해서만 사용할 수 있습니다.");
387
+ }
388
+ result += item;
389
+ }
390
+ return result;
391
+ };
392
+ prototype.min = function (selector) {
393
+ let result;
394
+ for (let i = 0; i < this.length; i++) {
395
+ const item = selector !== undefined ? selector(this[i], i) : this[i];
396
+ if (typeof item !== "number" && typeof item !== "string") {
397
+ throw new Error("min 은 number/string 에 대해서만 사용할 수 있습니다.");
398
+ }
399
+ if (result === undefined || result > item) {
400
+ result = item;
401
+ }
402
+ }
403
+ return result;
404
+ };
405
+ prototype.max = function (selector) {
406
+ let result;
407
+ for (let i = 0; i < this.length; i++) {
408
+ const item = selector !== undefined ? selector(this[i], i) : this[i];
409
+ if (typeof item !== "number" && typeof item !== "string") {
410
+ throw new Error("max 은 number/string 에 대해서만 사용할 수 있습니다.");
411
+ }
412
+ if (result === undefined || result < item) {
413
+ result = item;
414
+ }
415
+ }
416
+ return result;
417
+ };
418
+ prototype.shuffle = function () {
419
+ if (this.length <= 1) {
420
+ return ObjectUtil.clone(this);
421
+ }
422
+ let result = this;
423
+ while (true) {
424
+ result = result.orderBy(() => Math.random());
425
+ if (!ObjectUtil.equal(result, this)) {
426
+ break;
427
+ }
428
+ }
429
+ return result;
430
+ };
431
+ prototype.insert = function (index, ...items) {
432
+ this.splice(index, 0, ...items);
433
+ return this;
434
+ };
435
+ prototype.remove = function (itemOrSelector) {
436
+ const removeItems = typeof itemOrSelector === "function" ? this.filter(itemOrSelector.bind(this)) : [itemOrSelector];
437
+ for (const removeItem of removeItems) {
438
+ while (this.includes(removeItem)) {
439
+ this.splice(this.indexOf(removeItem), 1);
440
+ }
441
+ }
442
+ return this;
443
+ };
444
+ prototype.clear = function () {
445
+ return this.remove(() => true);
446
+ };
447
+ })(Array.prototype);
448
+ //# sourceMappingURL=ArrayExtension.js.map
@@ -0,0 +1,4 @@
1
+ interface Map<K, V> {
2
+ getOrCreate(key: K, newValue: V): V;
3
+ getOrCreate(key: K, newValueFn: () => V): V;
4
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapExtension.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/extensions/MapExtension.ts"],"names":[],"mappings":";AAMA,CAAC,CAAC,SAAS,EAAE,EAAE;IACb,SAAS,CAAC,WAAW,GAAG,UAAiC,GAAM,EAAE,QAAuB;QACtF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,IAAI,QAAQ,YAAY,QAAQ,EAAE;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC3B;iBACI;gBACH,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;aACzB;SACF;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ ((prototype) => {
3
+ prototype.getOrCreate = function (key, newValue) {
4
+ if (!this.has(key)) {
5
+ if (newValue instanceof Function) {
6
+ this.set(key, newValue());
7
+ }
8
+ else {
9
+ this.set(key, newValue);
10
+ }
11
+ }
12
+ return this.get(key);
13
+ };
14
+ })(Map.prototype);
15
+ //# sourceMappingURL=MapExtension.js.map
@@ -0,0 +1,3 @@
1
+ declare interface Set<T> {
2
+ adds(...values: T[]): this;
3
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetExtension.js","sourceRoot":"","sources":["../../../../../sd-core-common/src/extensions/SetExtension.ts"],"names":[],"mappings":";AAIA,CAAC,CAAC,SAAS,EAAE,EAAE;IACb,SAAS,CAAC,IAAI,GAAG,UAA2B,GAAG,MAAW;QACxD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACf;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC"}