@kaspernj/api-maker 1.0.445 → 1.0.447

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 (361) hide show
  1. package/{.eslintrc.cjs → .eslintrc.js} +4 -0
  2. package/README.md +35 -0
  3. package/android/build.gradle +43 -0
  4. package/android/src/main/AndroidManifest.xml +2 -0
  5. package/android/src/main/java/expo/modules/api_maker/ApiMakerModule.kt +50 -0
  6. package/android/src/main/java/expo/modules/api_maker/ApiMakerView.kt +30 -0
  7. package/build/api.js +120 -0
  8. package/build/attribute-not-loaded-error.js +2 -0
  9. package/build/base-component.js +5 -0
  10. package/build/base-error.js +33 -0
  11. package/build/base-model/attribute.js +25 -0
  12. package/build/base-model/column.js +11 -0
  13. package/build/base-model/reflection.js +14 -0
  14. package/build/base-model/scope.js +11 -0
  15. package/build/base-model.js +828 -0
  16. package/build/bootstrap/attribute-row/index.js +105 -0
  17. package/build/bootstrap/attribute-rows.js +31 -0
  18. package/build/bootstrap/card.js +138 -0
  19. package/build/bootstrap/checkbox.js +97 -0
  20. package/build/bootstrap/checkboxes.js +183 -0
  21. package/build/bootstrap/index.js +2 -0
  22. package/build/bootstrap/input.js +128 -0
  23. package/build/bootstrap/invalid-feedback.js +27 -0
  24. package/build/bootstrap/paginate.js +150 -0
  25. package/build/bootstrap/radio-buttons.js +72 -0
  26. package/build/bootstrap/select.js +88 -0
  27. package/build/bootstrap/sort-link.js +130 -0
  28. package/build/cable-connection-pool.js +128 -0
  29. package/build/cable-subscription-pool.js +207 -0
  30. package/build/cable-subscription.js +21 -0
  31. package/build/cache-key-generator.js +81 -0
  32. package/build/can-can.js +134 -0
  33. package/build/channels-consumer.js +3 -0
  34. package/build/collection-loader.js +48 -0
  35. package/build/collection.js +279 -0
  36. package/build/command-submit-data.js +81 -0
  37. package/build/commands-pool.js +195 -0
  38. package/build/compose.js +9 -0
  39. package/build/config.js +53 -0
  40. package/build/custom-error.js +5 -0
  41. package/build/data-set-to-attributes.js +10 -0
  42. package/build/deserializer.js +56 -0
  43. package/build/destroy-error.js +5 -0
  44. package/build/devise.js +109 -0
  45. package/build/draggable-sort/controller.js +136 -0
  46. package/build/draggable-sort/index.js +114 -0
  47. package/build/draggable-sort/item.js +188 -0
  48. package/build/error-logger.js +101 -0
  49. package/build/error-messages.js +13 -0
  50. package/build/event-connection.js +32 -0
  51. package/build/event-model-class.js +24 -0
  52. package/build/events.js +5 -0
  53. package/build/form.js +83 -0
  54. package/build/index.js +3 -0
  55. package/build/inputs/attachment.js +121 -0
  56. package/build/inputs/auto-submit.js +36 -0
  57. package/build/inputs/checkbox.js +145 -0
  58. package/build/inputs/checkboxes.js +111 -0
  59. package/build/inputs/id-for-component.js +15 -0
  60. package/build/inputs/input-wrapper.js +18 -0
  61. package/build/inputs/input.js +230 -0
  62. package/build/inputs/money.js +179 -0
  63. package/build/inputs/name-for-component.js +13 -0
  64. package/build/inputs/select.js +92 -0
  65. package/build/instance-of-class-name.js +23 -0
  66. package/build/key-value-store.js +53 -0
  67. package/build/link.js +68 -0
  68. package/build/logger.js +30 -0
  69. package/build/modal.js +37 -0
  70. package/build/model-class-require.js +13 -0
  71. package/build/model-events.js +30 -0
  72. package/build/model-name.js +28 -0
  73. package/build/model-prop-type.js +101 -0
  74. package/build/model-recipes-loader.js +32 -0
  75. package/build/model-recipes-model-loader.js +357 -0
  76. package/build/models-response-reader.js +40 -0
  77. package/build/models.js +8 -0
  78. package/build/money-formatter.js +77 -0
  79. package/build/not-loaded-error.js +2 -0
  80. package/build/params.js +60 -0
  81. package/build/preloaded.js +38 -0
  82. package/build/resize-observer.js +11 -0
  83. package/build/result.js +13 -0
  84. package/build/router/route.js +262 -0
  85. package/build/router/switch.js +72 -0
  86. package/build/router.js +57 -0
  87. package/build/routes-native.js +202 -0
  88. package/build/routes.js +50 -0
  89. package/build/run-last.js +35 -0
  90. package/build/serializer.js +63 -0
  91. package/build/services.js +20 -0
  92. package/build/session-status-updater.js +126 -0
  93. package/build/source-maps-loader.js +171 -0
  94. package/build/super-admin/config-reader.js +84 -0
  95. package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
  96. package/build/super-admin/edit-page/edit-attribute-content.js +54 -0
  97. package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
  98. package/build/super-admin/edit-page/edit-attribute.js +76 -0
  99. package/build/super-admin/edit-page.js +120 -0
  100. package/build/super-admin/has-edit-config.js +12 -0
  101. package/build/super-admin/index-page.js +24 -0
  102. package/build/super-admin/index.js +180 -0
  103. package/build/super-admin/layout/header/index.js +151 -0
  104. package/build/super-admin/layout/index.js +109 -0
  105. package/build/super-admin/layout/menu/index.js +93 -0
  106. package/build/super-admin/layout/menu/menu-content.js +40 -0
  107. package/build/super-admin/layout/menu/menu-item.js +83 -0
  108. package/build/super-admin/layout/no-access.js +25 -0
  109. package/build/super-admin/model-class-table.js +61 -0
  110. package/build/super-admin/models.js +8 -0
  111. package/build/super-admin/show-nav.js +49 -0
  112. package/build/super-admin/show-page/belongs-to-attribute-row.js +28 -0
  113. package/build/super-admin/show-page/index.js +141 -0
  114. package/build/super-admin/show-reflection-actions.js +47 -0
  115. package/build/super-admin/show-reflection-link.js +46 -0
  116. package/build/super-admin/show-reflection-page.js +47 -0
  117. package/build/table/column-content.js +112 -0
  118. package/build/table/column-identifier.js +18 -0
  119. package/build/table/column-visible.js +7 -0
  120. package/build/table/components/column.js +20 -0
  121. package/build/table/components/flat-list.js +20 -0
  122. package/build/table/components/header.js +25 -0
  123. package/build/table/components/row.js +25 -0
  124. package/build/table/filters/attribute-element.js +43 -0
  125. package/build/table/filters/filter-form.js +392 -0
  126. package/build/table/filters/filter.js +89 -0
  127. package/build/table/filters/index.js +182 -0
  128. package/build/table/filters/load-search-modal.js +174 -0
  129. package/build/table/filters/reflection-element.js +36 -0
  130. package/build/table/filters/save-search-modal.js +86 -0
  131. package/build/table/filters/scope-element.js +41 -0
  132. package/build/table/header-column-content.js +67 -0
  133. package/build/table/header-column.js +144 -0
  134. package/build/table/header-select.js +104 -0
  135. package/build/table/model-callback-args.js +10 -0
  136. package/build/table/model-column.js +87 -0
  137. package/build/table/model-row.js +179 -0
  138. package/build/table/select-calculator.js +63 -0
  139. package/build/table/settings/column-row.js +97 -0
  140. package/build/table/settings/download-action.js +78 -0
  141. package/build/table/settings/index.js +92 -0
  142. package/build/table/table-settings.js +219 -0
  143. package/build/table/table.js +972 -0
  144. package/build/table/use-sorting.js +34 -0
  145. package/build/table/widths.js +75 -0
  146. package/build/table/worker-plugins-check-all-checkbox.js +125 -0
  147. package/build/table/worker-plugins-checkbox.js +115 -0
  148. package/build/translated-attributes.js +10 -0
  149. package/build/translated-collections.js +11 -0
  150. package/build/updated-attribute.js +76 -0
  151. package/build/url-encode.js +15 -0
  152. package/build/use-breakpoint.js +44 -0
  153. package/build/use-can-can.js +55 -0
  154. package/build/use-collection.js +225 -0
  155. package/build/use-created-event.js +52 -0
  156. package/build/use-current-user.js +73 -0
  157. package/build/use-destroyed-event.js +60 -0
  158. package/build/use-event-emitter.js +13 -0
  159. package/build/use-event-listener.js +16 -0
  160. package/build/use-input.js +140 -0
  161. package/build/use-model-event.js +60 -0
  162. package/build/use-model.js +169 -0
  163. package/build/use-resize-observer.js +23 -0
  164. package/build/use-router.js +102 -0
  165. package/build/use-screen-layout.js +39 -0
  166. package/build/use-updated-event.js +60 -0
  167. package/build/use-validation-errors.js +30 -0
  168. package/build/utils/card.js +51 -0
  169. package/build/utils/checkbox.js +48 -0
  170. package/build/utils/default-style.js +18 -0
  171. package/build/utils/modal.js +61 -0
  172. package/build/utils/text.js +18 -0
  173. package/build/validation-error.js +28 -0
  174. package/build/validation-errors.js +98 -0
  175. package/build/with-collection.js +13 -0
  176. package/build/with-current-user.js +9 -0
  177. package/build/with-model.js +14 -0
  178. package/build/with-router.js +21 -0
  179. package/expo-module.config.json +17 -0
  180. package/ios/ApiMaker.podspec +29 -0
  181. package/ios/ApiMakerModule.swift +48 -0
  182. package/ios/ApiMakerView.swift +38 -0
  183. package/package.json +35 -14
  184. package/src/{api.mjs → api.js} +5 -5
  185. package/src/{base-error.mjs → base-error.js} +1 -1
  186. package/src/base-model/{attribute.mjs → attribute.js} +1 -1
  187. package/src/base-model/{reflection.mjs → reflection.js} +1 -1
  188. package/src/{base-model.mjs → base-model.js} +14 -14
  189. package/src/bootstrap/attribute-row/index.jsx +2 -2
  190. package/src/bootstrap/attribute-rows.jsx +1 -1
  191. package/src/bootstrap/card.jsx +1 -1
  192. package/src/bootstrap/checkbox.jsx +1 -1
  193. package/src/bootstrap/checkboxes.jsx +1 -1
  194. package/src/bootstrap/input.jsx +1 -1
  195. package/src/bootstrap/paginate.jsx +2 -2
  196. package/src/bootstrap/sort-link.jsx +3 -3
  197. package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +3 -3
  198. package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +4 -4
  199. package/src/{cable-subscription.mjs → cable-subscription.js} +1 -1
  200. package/src/{can-can.mjs → can-can.js} +1 -1
  201. package/src/collection-loader.jsx +2 -2
  202. package/src/{collection.mjs → collection.js} +3 -3
  203. package/src/{commands-pool.mjs → commands-pool.js} +11 -11
  204. package/src/{custom-error.mjs → custom-error.js} +1 -1
  205. package/src/{deserializer.mjs → deserializer.js} +2 -2
  206. package/src/{destroy-error.mjs → destroy-error.js} +1 -1
  207. package/src/{devise.mjs → devise.js} +5 -9
  208. package/src/draggable-sort/controller.js +137 -0
  209. package/src/draggable-sort/index.jsx +108 -0
  210. package/src/draggable-sort/item.jsx +174 -0
  211. package/src/{error-logger.mjs → error-logger.js} +1 -1
  212. package/src/event-connection.jsx +1 -1
  213. package/src/event-model-class.jsx +1 -1
  214. package/src/form.jsx +1 -1
  215. package/src/index.js +3 -0
  216. package/src/inputs/attachment.jsx +2 -2
  217. package/src/inputs/checkbox.jsx +7 -6
  218. package/src/inputs/checkboxes.jsx +1 -1
  219. package/src/inputs/input-wrapper.jsx +1 -1
  220. package/src/inputs/input.jsx +8 -7
  221. package/src/inputs/money.jsx +3 -3
  222. package/src/inputs/select.jsx +1 -1
  223. package/src/{key-value-store.mjs → key-value-store.js} +1 -1
  224. package/src/link.jsx +2 -2
  225. package/src/modal.jsx +1 -1
  226. package/src/{model-class-require.mjs → model-class-require.js} +4 -2
  227. package/src/{model-events.mjs → model-events.js} +1 -1
  228. package/src/{model-name.mjs → model-name.js} +1 -1
  229. package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
  230. package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +2 -2
  231. package/src/{models-response-reader.mjs → models-response-reader.js} +2 -2
  232. package/src/models.js +7 -0
  233. package/src/{models.mjs.erb → models.js.erb} +1 -1
  234. package/src/{params.mjs → params.js} +2 -2
  235. package/src/{preloaded.mjs → preloaded.js} +1 -1
  236. package/src/resize-observer.jsx +1 -1
  237. package/src/router/route.jsx +1 -1
  238. package/src/router/switch.jsx +1 -1
  239. package/src/router.jsx +1 -1
  240. package/src/{routes-native.mjs → routes-native.js} +1 -1
  241. package/src/{services.mjs → services.js} +1 -1
  242. package/src/{session-status-updater.mjs → session-status-updater.js} +3 -3
  243. package/src/{source-maps-loader.mjs → source-maps-loader.js} +1 -1
  244. package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +1 -1
  245. package/src/super-admin/edit-page/edit-attribute-content.jsx +1 -1
  246. package/src/super-admin/edit-page/edit-attribute-input.jsx +1 -1
  247. package/src/super-admin/edit-page/edit-attribute.jsx +1 -1
  248. package/src/super-admin/edit-page.jsx +2 -2
  249. package/src/super-admin/has-edit-config.js +1 -1
  250. package/src/super-admin/index-page.jsx +1 -1
  251. package/src/super-admin/index.jsx +7 -7
  252. package/src/super-admin/layout/header/index.jsx +2 -2
  253. package/src/super-admin/layout/index.jsx +3 -3
  254. package/src/super-admin/layout/menu/index.jsx +3 -3
  255. package/src/super-admin/layout/menu/menu-content.jsx +2 -2
  256. package/src/super-admin/layout/menu/{menu-item/index.jsx → menu-item.jsx} +5 -6
  257. package/src/super-admin/layout/no-access.jsx +2 -2
  258. package/src/super-admin/model-class-table.jsx +3 -3
  259. package/src/super-admin/models.js +1 -1
  260. package/src/super-admin/show-nav.jsx +2 -2
  261. package/src/super-admin/show-page/belongs-to-attribute-row.jsx +1 -1
  262. package/src/super-admin/show-page/index.jsx +2 -2
  263. package/src/super-admin/show-reflection-actions.jsx +1 -1
  264. package/src/super-admin/show-reflection-link.jsx +1 -1
  265. package/src/super-admin/show-reflection-page.jsx +1 -1
  266. package/src/table/column-content.jsx +1 -1
  267. package/src/table/components/column.jsx +8 -2
  268. package/src/table/components/header.jsx +2 -2
  269. package/src/table/filters/filter-form.jsx +1 -1
  270. package/src/table/filters/index.jsx +5 -3
  271. package/src/table/filters/load-search-modal.jsx +6 -4
  272. package/src/table/filters/save-search-modal.jsx +4 -4
  273. package/src/table/header-column.jsx +59 -79
  274. package/src/table/header-select.jsx +1 -1
  275. package/src/table/model-column.jsx +12 -6
  276. package/src/table/model-row.jsx +11 -7
  277. package/src/table/{select-calculator.mjs → select-calculator.js} +1 -1
  278. package/src/table/settings/column-row.jsx +4 -3
  279. package/src/table/settings/download-action.jsx +3 -3
  280. package/src/table/settings/index.jsx +3 -3
  281. package/src/table/table-settings.js +5 -4
  282. package/src/table/table.jsx +149 -71
  283. package/src/table/{use-sorting.mjs → use-sorting.js} +1 -1
  284. package/src/table/{widths.mjs → widths.jsx} +11 -2
  285. package/src/table/worker-plugins-check-all-checkbox.jsx +2 -2
  286. package/src/table/worker-plugins-checkbox.jsx +2 -2
  287. package/src/{translated-collections.mjs → translated-collections.js} +1 -1
  288. package/src/updated-attribute.jsx +1 -1
  289. package/src/{use-breakpoint.mjs → use-breakpoint.js} +2 -2
  290. package/src/use-can-can.js +55 -0
  291. package/src/{use-collection.mjs → use-collection.js} +4 -4
  292. package/src/{use-created-event.mjs → use-created-event.js} +2 -2
  293. package/src/{use-current-user.mjs → use-current-user.js} +6 -5
  294. package/src/{use-destroyed-event.mjs → use-destroyed-event.js} +2 -2
  295. package/src/{use-input.mjs → use-input.js} +5 -5
  296. package/src/use-model-event.js +2 -2
  297. package/src/{use-model.mjs → use-model.js} +4 -4
  298. package/src/{use-resize-observer.mjs → use-resize-observer.js} +1 -1
  299. package/src/use-router.jsx +2 -2
  300. package/src/{use-updated-event.mjs → use-updated-event.js} +2 -2
  301. package/src/{use-validation-errors.mjs → use-validation-errors.js} +3 -3
  302. package/src/utils/checkbox.jsx +2 -2
  303. package/src/{validation-error.mjs → validation-error.js} +1 -1
  304. package/src/{validation-errors.mjs → validation-errors.js} +1 -1
  305. package/src/with-current-user.jsx +1 -1
  306. package/src/with-model.jsx +1 -1
  307. package/__tests__/base-model.test.mjs +0 -71
  308. package/__tests__/cable-connection-pool.test.mjs +0 -227
  309. package/__tests__/cable-subscription-pool.test.mjs +0 -27
  310. package/__tests__/can-can.test.mjs +0 -34
  311. package/__tests__/collection.test.mjs +0 -51
  312. package/__tests__/custom-error.test.mjs +0 -13
  313. package/__tests__/model-name.test.mjs +0 -34
  314. package/__tests__/model-prop-type.test.mjs +0 -113
  315. package/__tests__/params.test.mjs +0 -40
  316. package/__tests__/routes-native.test.mjs +0 -104
  317. package/__tests__/routes.test.mjs +0 -47
  318. package/__tests__/serializer.test.mjs +0 -30
  319. package/__tests__/support/task.mjs +0 -27
  320. package/__tests__/support/user.mjs +0 -32
  321. package/index.js +0 -1
  322. package/jest.config.js +0 -9
  323. package/src/event-created.jsx +0 -12
  324. package/src/event-destroyed.jsx +0 -25
  325. package/src/event-emitter-listener.jsx +0 -10
  326. package/src/event-listener.jsx +0 -25
  327. package/src/event-updated.jsx +0 -27
  328. package/src/super-admin/layout/menu/menu-item/style.scss +0 -10
  329. package/src/use-can-can.mjs +0 -48
  330. package/src/with-can-can.jsx +0 -12
  331. package/webpack.config.js +0 -15
  332. /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
  333. /package/src/base-model/{column.mjs → column.js} +0 -0
  334. /package/src/base-model/{scope.mjs → scope.js} +0 -0
  335. /package/src/{cache-key-generator.mjs → cache-key-generator.js} +0 -0
  336. /package/src/{channels-consumer.mjs → channels-consumer.js} +0 -0
  337. /package/src/{command-submit-data.mjs → command-submit-data.js} +0 -0
  338. /package/src/{config.mjs → config.js} +0 -0
  339. /package/src/{data-set-to-attributes.mjs → data-set-to-attributes.js} +0 -0
  340. /package/src/{error-messages.mjs → error-messages.js} +0 -0
  341. /package/src/{events.mjs → events.js} +0 -0
  342. /package/src/inputs/{auto-submit.mjs → auto-submit.js} +0 -0
  343. /package/src/inputs/{id-for-component.mjs → id-for-component.js} +0 -0
  344. /package/src/inputs/{name-for-component.mjs → name-for-component.js} +0 -0
  345. /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
  346. /package/src/{logger.mjs → logger.js} +0 -0
  347. /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
  348. /package/src/{money-formatter.mjs → money-formatter.js} +0 -0
  349. /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
  350. /package/src/{result.mjs → result.js} +0 -0
  351. /package/src/{routes.mjs → routes.js} +0 -0
  352. /package/src/{run-last.mjs → run-last.js} +0 -0
  353. /package/src/{serializer.mjs → serializer.js} +0 -0
  354. /package/src/table/{column-identifier.mjs → column-identifier.js} +0 -0
  355. /package/src/table/{column-visible.mjs → column-visible.js} +0 -0
  356. /package/src/table/{model-callback-args.mjs → model-callback-args.js} +0 -0
  357. /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
  358. /package/src/{url-encode.mjs → url-encode.js} +0 -0
  359. /package/src/{use-event-emitter.mjs → use-event-emitter.js} +0 -0
  360. /package/src/{use-event-listener.mjs → use-event-listener.js} +0 -0
  361. /package/src/{use-screen-layout.mjs → use-screen-layout.js} +0 -0
@@ -1,104 +0,0 @@
1
- import RoutesNative from "../src/routes-native.mjs"
2
-
3
- const testRoutes = () => ({
4
- routes: [
5
- {"name": "blank", "path": "/blank", "component": "blank"},
6
-
7
- {"name": "root", "path": "", "component": "dashboard"},
8
-
9
- {"name": "new_drink", "path": "/drinks/new", "component": "drinks/edit"},
10
- {"name": "edit_drink", "path": "/drinks/:id/edit", "component": "drinks/edit"},
11
- {"name": "drink", "path": "/drinks/:id", "component": "drinks/show"},
12
- {"name": "drinks", "path": "/drinks", "component": "drinks/index"}
13
- ]
14
- })
15
- const testTranslations = () => ({
16
- locales: {
17
- da: {
18
- routes: {
19
- drink: "drink",
20
- edit: "rediger"
21
- }
22
- },
23
- en: {
24
- routes: {
25
- drink: "drink",
26
- edit: "edit"
27
- }
28
- }
29
- }
30
- })
31
-
32
- const routesNative = ({args, currentLocale}) => {
33
- const test = new RoutesNative({
34
- getLocale: () => currentLocale
35
- })
36
-
37
- test.loadRouteTranslations(testTranslations())
38
- test.loadRouteDefinitions(testRoutes(), args)
39
-
40
- return test
41
- }
42
-
43
- describe("RoutesNative", () => {
44
- it("translates routes from the current locale", () => {
45
- const test = routesNative({args: {localized: true}, currentLocale: "da"})
46
- const daRoute = test.editDrinkPath(5)
47
-
48
- expect(daRoute).toEqual("/da/drinks/5/rediger")
49
- })
50
-
51
- it("translates routes from the locale-param", () => {
52
- const test = routesNative({args: {localized: true}, currentLocale: "en"})
53
- const daRoute = test.editDrinkPath(5, {locale: "da"})
54
-
55
- expect(daRoute).toEqual("/da/drinks/5/rediger")
56
- })
57
-
58
- it("defaults to the locale given by the getLocale callback", () => {
59
- const test = routesNative({args: {localized: true}, currentLocale: "en"})
60
- const daRoute = test.editDrinkPath(5)
61
-
62
- expect(daRoute).toEqual("/en/drinks/5/edit")
63
- })
64
-
65
- it("uses the rest of the params as a query string", () => {
66
- const test = routesNative({args: {localized: true}, currentLocale: "en"})
67
- const daRoute = test.editDrinkPath(5, {drink: {name: "Pina Colada"}, locale: "da"})
68
-
69
- expect(daRoute).toEqual("/da/drinks/5/rediger?drink%5Bname%5D=Pina%20Colada")
70
- })
71
-
72
- it("translates a route without localization", () => {
73
- const test = routesNative({currentLocale: "en"})
74
- const daRoute = test.editDrinkPath(5, {drink: {name: "Pina Colada"}})
75
-
76
- expect(daRoute).toEqual("/drinks/5/edit?drink%5Bname%5D=Pina%20Colada")
77
- })
78
-
79
- it("generates urls", () => {
80
- if (!globalThis.location) globalThis.location = {} // eslint-disable-line jest/no-if
81
-
82
- globalThis.location.host = "localhost"
83
- globalThis.location.protocol = "http:"
84
-
85
- const test = routesNative({args: {localized: true}, currentLocale: "en"})
86
- const daRoute = test.editDrinkUrl(5, {drink: {name: "Pina Colada"}, locale: "da"})
87
-
88
- expect(daRoute).toEqual("http://localhost/da/drinks/5/rediger?drink%5Bname%5D=Pina%20Colada")
89
- })
90
-
91
- it("generates urls with custom options", () => {
92
- const test = routesNative({args: {localized: true}, currentLocale: "en"})
93
- const daRoute = test.editDrinkUrl(5, {drink: {name: "Pina Colada"}, locale: "da", host: "google.com", port: 123, protocol: "https"})
94
-
95
- expect(daRoute).toEqual("https://google.com:123/da/drinks/5/rediger?drink%5Bname%5D=Pina%20Colada")
96
- })
97
-
98
- it("generates urls without locales", () => {
99
- const test = routesNative({currentLocale: "en"})
100
- const daRoute = test.editDrinkUrl(5, {drink: {name: "Pina Colada"}, locale: "da", host: "google.com", port: 123, protocol: "https"})
101
-
102
- expect(daRoute).toEqual("https://google.com:123/drinks/5/edit?drink%5Bname%5D=Pina%20Colada")
103
- })
104
- })
@@ -1,47 +0,0 @@
1
- import Routes from "../src/routes.mjs"
2
-
3
- const testRoutes = {
4
- routes: [
5
- {"name": "blank", "path": "/blank", "component": "blank"},
6
-
7
- {"name": "root", "path": "", "component": "dashboard"},
8
-
9
- {"name": "new_drink", "path": "/drinks/new", "component": "drinks/edit"},
10
- {"name": "edit_drink", "path": "/drinks/:id/edit", "component": "drinks/edit"},
11
- {"name": "drink", "path": "/drinks/:id", "component": "drinks/show"},
12
- {"name": "drinks", "path": "/drinks", "component": "drinks/index"}
13
- ]
14
- }
15
- const fakeJsRoutes = {
16
- blankPath: () => "/blank",
17
- blankUrl: () => "https://localhost/blank",
18
- newDrinkPath: () => "/drinks/new",
19
- newDrinkUrl: () => "/drinks/new",
20
- editDrinkPath: (drinkId) => `/drinks/${drinkId}/edit`,
21
- editDrinkUrl: (drinkId) => `https://localhost/drinks/${drinkId}/edit`,
22
- drinkPath: (drinkId) => `/druiks/${drinkId}`,
23
- drinkUrl: (drinkId) => `https://localhost/drinks/${drinkId}`,
24
- drinksPath: () => "/drinks",
25
- drinksUrl: () => "https://localhost/drinks",
26
- rootPath: () => "/root",
27
- rootUrl: () => "https://localhost"
28
- }
29
-
30
- const routes = new Routes({
31
- jsRoutes: fakeJsRoutes,
32
- routeDefinitions: testRoutes
33
- })
34
-
35
- describe("Routes", () => {
36
- it("generates paths", () => {
37
- const daRoute = routes.editDrinkPath(5)
38
-
39
- expect(daRoute).toEqual("/drinks/5/edit")
40
- })
41
-
42
- it("generates urls", () => {
43
- const daRoute = routes.editDrinkUrl(5)
44
-
45
- expect(daRoute).toEqual("https://localhost/drinks/5/edit")
46
- })
47
- })
@@ -1,30 +0,0 @@
1
- import Serializer from "../src/serializer.mjs"
2
- import User from "./support/user.mjs"
3
-
4
- describe("Serializer", () => {
5
- test("it serializes model classes", () => {
6
- const testObject = {
7
- userModel: User
8
- }
9
- const serialized = Serializer.serialize(testObject)
10
-
11
- expect(serialized).toEqual({userModel: {api_maker_type: "resource", name: "User"}})
12
- })
13
-
14
- test("it serializes dates", () => {
15
- // Mock time zone offset
16
- var getTimezoneOffset = Date.prototype.getTimezoneOffset
17
-
18
- Date.prototype.getTimezoneOffset = function () {
19
- return -120
20
- }
21
-
22
- const date = new Date(1985, 5, 17, 10, 30, 5)
23
- const serialized = Serializer.serialize(date)
24
-
25
- // Restore time zone offset
26
- Date.prototype.getTimezoneOffset = getTimezoneOffset
27
-
28
- expect(serialized).toEqual({api_maker_type: "datetime", value: "1985-6-17 10:30:5+0200"})
29
- })
30
- })
@@ -1,27 +0,0 @@
1
- export default class Task {
2
- static modelClassData () {
3
- return {
4
- attributes: [],
5
- name: "Task"
6
- }
7
- }
8
-
9
- static modelName () {
10
- return "Task"
11
- }
12
-
13
- constructor ({a, b, isNewRecord = false, r} = {}) {
14
- this.abilities = b
15
- this._isNewRecord = isNewRecord
16
- this.modelData = a
17
- this.relationshipsCache = r
18
- }
19
-
20
- isNewRecord () {
21
- return this._isNewRecord
22
- }
23
-
24
- isPersisted () {
25
- return !this._isNewRecord
26
- }
27
- }
@@ -1,32 +0,0 @@
1
- import BaseModel from "../../src/base-model.mjs"
2
-
3
- export default class User extends BaseModel {
4
- static modelClassData () {
5
- return {
6
- attributes: [],
7
- name: "User",
8
- primaryKey: "id"
9
- }
10
- }
11
-
12
- static modelName () {
13
- return "User"
14
- }
15
-
16
- constructor ({a, b, isNewRecord = false, r}) {
17
- super({a})
18
-
19
- this.abilities = b
20
- this._isNewRecord = isNewRecord
21
- this.modelData = a
22
- this.relationshipsCache = r
23
- }
24
-
25
- isNewRecord () {
26
- return this._isNewRecord
27
- }
28
-
29
- isPersisted () {
30
- return !this._isNewRecord
31
- }
32
- }
package/index.js DELETED
@@ -1 +0,0 @@
1
- export {}
package/jest.config.js DELETED
@@ -1,9 +0,0 @@
1
- export default {
2
- testRegex: "__tests__/.*\.test\.(m|)js$", // eslint-disable-line no-useless-escape
3
- "transformIgnorePatterns": [
4
- "node_modules/(?!variables/.*)"
5
- ],
6
- "transform": {
7
- "^.+\\.mjs?$": "babel-jest"
8
- }
9
- }
@@ -1,12 +0,0 @@
1
- import memo from "set-state-compare/src/memo"
2
- import useCreatedEvent from "./use-created-event.mjs"
3
-
4
- const ApiMakerEventCreated = memo((props) => {
5
- const {modelClass, onCreated, ...restProps} = props
6
-
7
- useCreatedEvent(modelClass, onCreated, restProps)
8
-
9
- return null
10
- })
11
-
12
- export default ApiMakerEventCreated
@@ -1,25 +0,0 @@
1
- import memo from "set-state-compare/src/memo"
2
- import PropTypes from "prop-types"
3
- import propTypesExact from "prop-types-exact"
4
- import {shapeComponent, ShapeComponent} from "set-state-compare/src/shape-component.js"
5
- import useDestroyedEvent from "./use-destroyed-event.mjs"
6
-
7
- export default memo(shapeComponent(class ApiMakerEventDestroyed extends ShapeComponent {
8
- static propTypes = propTypesExact({
9
- active: PropTypes.bool,
10
- debounce: PropTypes.oneOfType([
11
- PropTypes.bool,
12
- PropTypes.number
13
- ]),
14
- model: PropTypes.object.isRequired,
15
- onConnected: PropTypes.func,
16
- onUpdated: PropTypes.func.isRequired
17
- })
18
-
19
- render() {
20
- const {model, onDestroyed, ...restProps} = this.props
21
- useDestroyedEvent(model, onDestroyed, restProps)
22
-
23
- return null
24
- }
25
- }))
@@ -1,10 +0,0 @@
1
- import memo from "set-state-compare/src/memo"
2
- import useEventEmitter from "./use-event-emitter.mjs"
3
-
4
- const ApiMakerEventEmitterListener = ({events, event, onCalled}) => {
5
- useEventEmitter(events, event, onCalled)
6
-
7
- return null
8
- }
9
-
10
- export default memo(ApiMakerEventEmitterListener)
@@ -1,25 +0,0 @@
1
- import memo from "set-state-compare/src/memo"
2
- import PropTypes from "prop-types"
3
- import propTypesExact from "prop-types-exact"
4
- import useEventListener from "./use-event-listener.mjs"
5
-
6
- const callEvent = (target, eventName, args = []) => {
7
- let event = document.createEvent("Event")
8
- event.initEvent(eventName, false, true)
9
- target.dispatchEvent(event, args)
10
- }
11
-
12
- const ApiMakerEventListener = ({event, onCalled, target}) => {
13
- useEventListener(target, event, onCalled)
14
-
15
- return null
16
- }
17
-
18
- ApiMakerEventListener.propTypes = propTypesExact({
19
- event: PropTypes.string.isRequired,
20
- onCalled: PropTypes.func.isRequired,
21
- target: PropTypes.object.isRequired
22
- })
23
-
24
- export {callEvent}
25
- export default memo(ApiMakerEventListener)
@@ -1,27 +0,0 @@
1
- import BaseComponent from "./base-component"
2
- import memo from "set-state-compare/src/memo"
3
- import PropTypes from "prop-types"
4
- import propTypesExact from "prop-types-exact"
5
- import {shapeComponent} from "set-state-compare/src/shape-component.js"
6
- import useUpdatedEvent from "./use-updated-event.mjs"
7
-
8
- export default memo(shapeComponent(class ApiMakerEventUpdated extends BaseComponent {
9
- static propTypes = propTypesExact({
10
- active: PropTypes.bool,
11
- debounce: PropTypes.oneOfType([
12
- PropTypes.bool,
13
- PropTypes.number
14
- ]),
15
- model: PropTypes.object.isRequired,
16
- onConnected: PropTypes.func,
17
- onUpdated: PropTypes.func.isRequired
18
- })
19
-
20
- render() {
21
- const {model, onUpdated, ...restProps} = this.props
22
-
23
- useUpdatedEvent(model, onUpdated, restProps)
24
-
25
- return null
26
- }
27
- }))
@@ -1,10 +0,0 @@
1
- [data-class="components--admin--layout--menu--menu-item"] {
2
- .menu-item-icon {
3
- margin-right: 4px;
4
- font-size: 12px;
5
- }
6
-
7
- + .components--admin--layout--menu--menu-item {
8
- margin-top: 6px;
9
- }
10
- }
@@ -1,48 +0,0 @@
1
- import CanCan from "./can-can.mjs"
2
- import {useCallback, useLayoutEffect, useMemo, useState} from "react"
3
- import useCurrentUser from "./use-current-user.mjs"
4
- import useShape from "set-state-compare/src/use-shape.js"
5
-
6
- const useCanCan = (abilitiesCallback, dependencies) => {
7
- const currentUser = useCurrentUser()
8
- const s = useShape({abilitiesCallback})
9
-
10
- s.useStates({
11
- canCan: null
12
- })
13
-
14
- if (!dependencies) {
15
- dependencies = [currentUser?.id()]
16
- }
17
-
18
- const loadAbilities = useCallback(async () => {
19
- const canCan = CanCan.current()
20
- const abilities = s.p.abilitiesCallback()
21
-
22
- await canCan.loadAbilities(abilities)
23
-
24
- s.set({canCan})
25
- }, [])
26
-
27
- const onResetAbilities = useCallback(() => {
28
- s.set({canCan: null}, {silent: true})
29
- loadAbilities()
30
- }, [])
31
-
32
- useMemo(() => {
33
- s.set({canCan: null}, {silent: true})
34
- loadAbilities()
35
- }, dependencies)
36
-
37
- useLayoutEffect(() => {
38
- CanCan.current().events.addListener("onResetAbilities", onResetAbilities)
39
-
40
- return () => {
41
- CanCan.current().events.removeListener("onResetAbilities", onResetAbilities)
42
- }
43
- }, [])
44
-
45
- return s.s.canCan
46
- }
47
-
48
- export default useCanCan
@@ -1,12 +0,0 @@
1
- import useCanCan from "./use-can-can.mjs"
2
- import memo from "set-state-compare/src/memo"
3
-
4
- export default (WrappedComponent, abilities) => {
5
- const WithCanCan = (props) => {
6
- const canCan = useCanCan(() => abilities)
7
-
8
- return <WrappedComponent canCan={canCan} {...props} />
9
- }
10
-
11
- return memo(WithCanCan)
12
- }
package/webpack.config.js DELETED
@@ -1,15 +0,0 @@
1
- module.exports = {
2
- mode: "production",
3
- module: {
4
- rules: [
5
- {
6
- exclude: /node_modules/,
7
- test: /\.(js|jsx)$/,
8
- use: "babel-loader"
9
- }
10
- ]
11
- },
12
- resolve: {
13
- extensions: [".js", ".jsx"]
14
- }
15
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes