@kaspernj/api-maker 1.0.2011 → 1.0.2013
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{.eslintrc.cjs → .eslintrc.js} +10 -1
- package/README.md +35 -0
- package/android/build.gradle +43 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/expo/modules/api_maker/ApiMakerModule.kt +50 -0
- package/android/src/main/java/expo/modules/api_maker/ApiMakerView.kt +30 -0
- package/build/api.js +120 -0
- package/build/attribute-not-loaded-error.js +2 -0
- package/build/base-component.js +5 -0
- package/build/base-error.js +33 -0
- package/build/base-model/attribute.js +25 -0
- package/build/base-model/column.js +11 -0
- package/build/base-model/reflection.js +14 -0
- package/build/base-model/scope.js +11 -0
- package/build/base-model.js +828 -0
- package/build/bootstrap/attribute-row.js +135 -0
- package/build/bootstrap/attribute-rows.js +31 -0
- package/build/bootstrap/card.js +138 -0
- package/build/bootstrap/checkbox.js +97 -0
- package/build/bootstrap/checkboxes.js +183 -0
- package/build/bootstrap/index.js +2 -0
- package/build/bootstrap/input.js +129 -0
- package/build/bootstrap/invalid-feedback.js +27 -0
- package/build/bootstrap/paginate.js +150 -0
- package/build/bootstrap/radio-buttons.js +72 -0
- package/build/bootstrap/select.js +88 -0
- package/build/bootstrap/sort-link.js +131 -0
- package/build/cable-connection-pool.js +128 -0
- package/build/cable-subscription-pool.js +207 -0
- package/build/cable-subscription.js +21 -0
- package/build/cache-key-generator.js +81 -0
- package/build/can-can.js +134 -0
- package/build/channels-consumer.js +9 -0
- package/build/collection-loader.js +48 -0
- package/build/collection.js +280 -0
- package/build/command-submit-data.js +81 -0
- package/build/commands-pool.js +195 -0
- package/build/compose.js +9 -0
- package/build/config.js +62 -0
- package/build/custom-error.js +5 -0
- package/build/data-set-to-attributes.js +10 -0
- package/build/deserializer.js +56 -0
- package/build/destroy-error.js +5 -0
- package/build/devise.js +112 -0
- package/build/draggable-sort/controller.js +136 -0
- package/build/draggable-sort/index.js +114 -0
- package/build/draggable-sort/item.js +188 -0
- package/build/error-logger.js +101 -0
- package/build/error-messages.js +13 -0
- package/build/event-connection.js +32 -0
- package/build/event-emitter-listener.js +15 -0
- package/build/event-model-class.js +24 -0
- package/build/events.js +5 -0
- package/build/flash-message.js +79 -0
- package/build/form.js +83 -0
- package/build/history-expo.js +20 -0
- package/build/history-react-native.js +20 -0
- package/build/history.js +3 -0
- package/build/index.js +3 -0
- package/build/inputs/attachment.js +133 -0
- package/build/inputs/auto-submit.js +36 -0
- package/build/inputs/checkbox.js +138 -0
- package/build/inputs/checkboxes.js +112 -0
- package/build/inputs/id-for-component.js +15 -0
- package/build/inputs/input-wrapper.js +19 -0
- package/build/inputs/input.js +243 -0
- package/build/inputs/money.js +179 -0
- package/build/inputs/name-for-component.js +13 -0
- package/build/inputs/select.js +93 -0
- package/build/instance-of-class-name.js +23 -0
- package/build/is-expo.js +22 -0
- package/build/key-value-store.js +53 -0
- package/build/link.js +73 -0
- package/build/logger.js +30 -0
- package/build/modal.js +38 -0
- package/build/model-class-require.js +13 -0
- package/build/model-events.js +30 -0
- package/build/model-name.js +28 -0
- package/build/model-prop-type.js +101 -0
- package/build/model-recipes-loader.js +32 -0
- package/build/model-recipes-model-loader.js +357 -0
- package/build/models-response-reader.js +40 -0
- package/build/models.js +8 -0
- package/build/money-formatter.js +78 -0
- package/build/not-loaded-error.js +2 -0
- package/build/params.js +61 -0
- package/build/preloaded.js +38 -0
- package/build/resize-observer.js +11 -0
- package/build/result.js +13 -0
- package/build/router/route.js +270 -0
- package/build/router/switch.js +72 -0
- package/build/router.js +59 -0
- package/build/routes-native.js +202 -0
- package/build/routes.js +50 -0
- package/build/run-last.js +35 -0
- package/build/serializer.js +63 -0
- package/build/services.js +20 -0
- package/build/session-status-updater.js +134 -0
- package/build/source-maps-loader.js +184 -0
- package/build/super-admin/config-reader.js +85 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
- package/build/super-admin/edit-page/edit-attribute-content.js +55 -0
- package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
- package/build/super-admin/edit-page/edit-attribute.js +77 -0
- package/build/super-admin/edit-page.js +123 -0
- package/build/super-admin/has-edit-config.js +12 -0
- package/build/super-admin/index-page.js +25 -0
- package/build/super-admin/index.js +181 -0
- package/build/super-admin/layout/header/index.js +161 -0
- package/build/super-admin/layout/index.js +164 -0
- package/build/super-admin/layout/menu/index.js +206 -0
- package/build/super-admin/layout/menu/menu-content.js +46 -0
- package/build/super-admin/layout/menu/menu-item.js +84 -0
- package/build/super-admin/layout/no-access.js +27 -0
- package/build/super-admin/model-class-table.js +61 -0
- package/build/super-admin/models.js +8 -0
- package/build/super-admin/show-nav.js +51 -0
- package/build/super-admin/show-page/belongs-to-attribute-row.js +29 -0
- package/build/super-admin/show-page/index.js +141 -0
- package/build/super-admin/show-reflection-actions.js +47 -0
- package/build/super-admin/show-reflection-link.js +48 -0
- package/build/super-admin/show-reflection-page.js +48 -0
- package/build/table/column-content.js +117 -0
- package/build/table/column-identifier.js +18 -0
- package/build/table/column-visible.js +7 -0
- package/build/table/components/column.js +21 -0
- package/build/table/components/flat-list.js +21 -0
- package/build/table/components/header.js +26 -0
- package/build/table/components/row.js +26 -0
- package/build/table/filters/attribute-element.js +44 -0
- package/build/table/filters/filter-form.js +402 -0
- package/build/table/filters/filter.js +90 -0
- package/build/table/filters/index.js +184 -0
- package/build/table/filters/load-search-modal.js +175 -0
- package/build/table/filters/reflection-element.js +37 -0
- package/build/table/filters/save-search-modal.js +88 -0
- package/build/table/filters/scope-element.js +42 -0
- package/build/table/header-column-content.js +68 -0
- package/build/table/header-column.js +144 -0
- package/build/table/header-select.js +105 -0
- package/build/table/model-callback-args.js +10 -0
- package/build/table/model-column.js +97 -0
- package/build/table/model-row.js +193 -0
- package/build/table/select-calculator.js +63 -0
- package/build/table/settings/column-row.js +97 -0
- package/build/table/settings/download-action.js +79 -0
- package/build/table/settings/index.js +92 -0
- package/build/table/table-settings.js +219 -0
- package/build/table/table.js +972 -0
- package/build/table/use-sorting.js +34 -0
- package/build/table/widths.js +75 -0
- package/build/table/worker-plugins-check-all-checkbox.js +125 -0
- package/build/table/worker-plugins-checkbox.js +115 -0
- package/build/translated-attributes.js +10 -0
- package/build/translated-collections.js +12 -0
- package/build/updated-attribute.js +76 -0
- package/build/url-encode.js +15 -0
- package/build/use-breakpoint.js +71 -0
- package/build/use-can-can.js +55 -0
- package/build/use-collection.js +225 -0
- package/build/use-created-event.js +52 -0
- package/build/use-current-user.js +76 -0
- package/build/use-destroyed-event.js +60 -0
- package/build/use-event-emitter.js +13 -0
- package/build/use-event-listener.js +16 -0
- package/build/use-input.js +137 -0
- package/build/use-model-event.js +60 -0
- package/build/use-model.js +169 -0
- package/build/use-resize-observer.js +23 -0
- package/build/use-router.js +104 -0
- package/build/use-screen-layout.js +39 -0
- package/build/use-styles.js +41 -0
- package/build/use-updated-event.js +60 -0
- package/build/use-validation-errors.js +30 -0
- package/build/utils/card.js +51 -0
- package/build/utils/checkbox.js +78 -0
- package/build/utils/checkboxes.js +163 -0
- package/build/utils/default-style.js +18 -0
- package/build/utils/icon.js +23 -0
- package/build/utils/invalid-feedback.js +19 -0
- package/build/utils/modal.js +62 -0
- package/build/utils/text.js +44 -0
- package/build/validation-error.js +28 -0
- package/build/validation-errors.js +98 -0
- package/build/with-api-maker.js +29 -0
- package/build/with-collection.js +14 -0
- package/build/with-current-user.js +10 -0
- package/build/with-model.js +15 -0
- package/build/with-router.js +22 -0
- package/expo-module.config.json +17 -0
- package/ios/ApiMaker.podspec +29 -0
- package/ios/ApiMakerModule.swift +48 -0
- package/ios/ApiMakerView.swift +38 -0
- package/package.json +49 -46
- package/src/{api.mjs → api.js} +38 -37
- package/src/base-component.jsx +5 -0
- package/src/{base-error.mjs → base-error.js} +4 -6
- package/src/base-model/attribute.js +33 -0
- package/src/base-model/column.js +13 -0
- package/src/base-model/reflection.js +15 -0
- package/src/base-model/scope.js +12 -0
- package/src/{base-model.mjs → base-model.js} +302 -144
- package/src/bootstrap/attribute-row.jsx +135 -0
- package/src/bootstrap/attribute-rows.jsx +27 -0
- package/src/bootstrap/card.jsx +149 -0
- package/src/bootstrap/checkbox.jsx +86 -0
- package/src/bootstrap/checkboxes.jsx +185 -0
- package/src/bootstrap/index.js +0 -0
- package/src/bootstrap/input.jsx +173 -0
- package/src/bootstrap/invalid-feedback.jsx +31 -0
- package/src/bootstrap/paginate.jsx +187 -0
- package/src/bootstrap/radio-buttons.jsx +87 -0
- package/src/bootstrap/select.jsx +110 -0
- package/src/bootstrap/sort-link.jsx +106 -0
- package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +16 -36
- package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +26 -21
- package/src/{cable-subscription.mjs → cable-subscription.js} +6 -4
- package/src/cache-key-generator.js +100 -0
- package/src/{can-can.mjs → can-can.js} +13 -12
- package/src/channels-consumer.js +10 -0
- package/src/collection-loader.jsx +58 -224
- package/src/{collection.mjs → collection.js} +98 -44
- package/src/{command-submit-data.mjs → command-submit-data.js} +2 -7
- package/src/{commands-pool.mjs → commands-pool.js} +57 -41
- package/src/compose.js +11 -0
- package/src/{config.mjs → config.js} +6 -2
- package/src/{custom-error.mjs → custom-error.js} +1 -1
- package/src/data-set-to-attributes.js +13 -0
- package/src/{deserializer.mjs → deserializer.js} +3 -3
- package/src/destroy-error.js +7 -0
- package/src/devise.js +129 -0
- package/src/draggable-sort/controller.js +137 -0
- package/src/draggable-sort/index.jsx +108 -0
- package/src/draggable-sort/item.jsx +174 -0
- package/src/{error-logger.mjs → error-logger.js} +12 -7
- package/src/{error-messages.mjs → error-messages.js} +1 -0
- package/src/event-connection.jsx +1 -1
- package/src/event-emitter-listener.jsx +8 -27
- package/src/event-model-class.jsx +2 -4
- package/src/events.js +7 -0
- package/src/flash-message.js +70 -0
- package/src/form.jsx +91 -0
- package/src/history-expo.js +23 -0
- package/src/history-react-native.js +25 -0
- package/src/history.js +3 -0
- package/src/index.js +3 -0
- package/src/inputs/attachment.jsx +108 -0
- package/src/inputs/auto-submit.js +37 -0
- package/src/inputs/checkbox.jsx +125 -0
- package/src/inputs/checkboxes.jsx +116 -0
- package/src/inputs/id-for-component.js +15 -0
- package/src/inputs/input-wrapper.jsx +16 -0
- package/src/inputs/input.jsx +260 -0
- package/src/inputs/money.jsx +187 -0
- package/src/inputs/name-for-component.js +15 -0
- package/src/inputs/select.jsx +104 -0
- package/src/is-expo.js +18 -0
- package/src/{key-value-store.mjs → key-value-store.js} +1 -1
- package/src/link.jsx +54 -9
- package/src/logger.js +38 -0
- package/src/modal.jsx +37 -0
- package/src/model-class-require.js +17 -0
- package/src/{model-events.mjs → model-events.js} +1 -1
- package/src/{model-name.mjs → model-name.js} +8 -8
- package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
- package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +5 -5
- package/src/{models-response-reader.mjs → models-response-reader.js} +3 -4
- package/src/models.js +7 -0
- package/src/{models.mjs.erb → models.js.erb} +6 -3
- package/src/{money-formatter.mjs → money-formatter.js} +5 -4
- package/src/{params.mjs → params.js} +17 -7
- package/src/{preloaded.mjs → preloaded.js} +2 -2
- package/src/resize-observer.jsx +10 -0
- package/src/result.js +13 -0
- package/src/router/route.jsx +246 -0
- package/src/router/switch.jsx +76 -0
- package/src/router.jsx +23 -21
- package/src/{routes-native.mjs → routes-native.js} +12 -6
- package/src/{routes.mjs → routes.js} +1 -1
- package/src/run-last.js +39 -0
- package/src/{serializer.mjs → serializer.js} +2 -2
- package/src/{services.mjs → services.js} +1 -1
- package/src/session-status-updater.js +172 -0
- package/src/{source-maps-loader.mjs → source-maps-loader.js} +54 -28
- package/src/super-admin/config-reader.jsx +93 -0
- package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +81 -0
- package/src/super-admin/edit-page/edit-attribute-content.jsx +57 -0
- package/src/super-admin/edit-page/edit-attribute-input.jsx +71 -0
- package/src/super-admin/edit-page/edit-attribute.jsx +81 -0
- package/src/super-admin/edit-page.jsx +117 -0
- package/src/super-admin/has-edit-config.js +15 -0
- package/src/super-admin/index-page.jsx +23 -0
- package/src/super-admin/index.jsx +197 -0
- package/src/super-admin/layout/header/index.jsx +144 -0
- package/src/super-admin/layout/header/style.scss +45 -0
- package/src/super-admin/layout/index.jsx +154 -0
- package/src/super-admin/layout/menu/index.jsx +171 -0
- package/src/super-admin/layout/menu/menu-content.jsx +43 -0
- package/src/super-admin/layout/menu/menu-item.jsx +70 -0
- package/src/super-admin/layout/menu/style.scss +11 -0
- package/src/super-admin/layout/no-access.jsx +26 -0
- package/src/super-admin/model-class-table.jsx +66 -0
- package/src/super-admin/models.js +11 -0
- package/src/super-admin/show-nav.jsx +44 -0
- package/src/super-admin/show-page/belongs-to-attribute-row.jsx +30 -0
- package/src/super-admin/show-page/index.jsx +141 -0
- package/src/super-admin/show-reflection-actions.jsx +49 -0
- package/src/super-admin/show-reflection-link.jsx +40 -0
- package/src/super-admin/show-reflection-page.jsx +47 -0
- package/src/super-admin/stylesheets/variables.scss +11 -0
- package/src/table/column-content.jsx +122 -0
- package/src/table/column-identifier.js +23 -0
- package/src/table/column-visible.js +7 -0
- package/src/table/components/column.jsx +19 -0
- package/src/table/components/flat-list.jsx +19 -0
- package/src/table/components/header.jsx +21 -0
- package/src/table/components/row.jsx +23 -0
- package/src/table/filters/attribute-element.jsx +47 -0
- package/src/table/filters/filter-form.jsx +407 -0
- package/src/table/filters/filter.jsx +70 -0
- package/src/table/filters/index.jsx +170 -0
- package/src/table/filters/load-search-modal.jsx +146 -0
- package/src/table/filters/reflection-element.jsx +38 -0
- package/src/table/filters/save-search-modal.jsx +74 -0
- package/src/table/filters/scope-element.jsx +44 -0
- package/src/table/header-column-content.jsx +55 -0
- package/src/table/header-column.jsx +129 -0
- package/src/table/header-select.jsx +73 -0
- package/src/table/model-callback-args.js +10 -0
- package/src/table/model-column.jsx +82 -0
- package/src/table/model-row.jsx +136 -0
- package/src/table/select-calculator.js +65 -0
- package/src/table/settings/column-row.jsx +93 -0
- package/src/table/settings/download-action.jsx +68 -0
- package/src/table/settings/index.jsx +65 -0
- package/src/table/table-settings.js +263 -0
- package/src/table/table.jsx +950 -0
- package/src/table/use-sorting.js +35 -0
- package/src/table/variables.scss +11 -0
- package/src/table/widths.jsx +87 -0
- package/src/table/worker-plugins-check-all-checkbox.jsx +112 -0
- package/src/table/worker-plugins-checkbox.jsx +104 -0
- package/src/translated-attributes.js +11 -0
- package/src/{translated-collections.mjs → translated-collections.js} +3 -2
- package/src/updated-attribute.jsx +1 -1
- package/src/url-encode.js +18 -0
- package/src/use-breakpoint.js +87 -0
- package/src/use-can-can.js +55 -0
- package/src/use-collection.js +280 -0
- package/src/use-created-event.js +55 -0
- package/src/use-current-user.js +88 -0
- package/src/use-destroyed-event.js +60 -0
- package/src/use-event-emitter.js +15 -0
- package/src/use-event-listener.js +19 -0
- package/src/use-input.js +157 -0
- package/src/use-model-event.js +60 -0
- package/src/use-model.js +189 -0
- package/src/use-resize-observer.js +24 -0
- package/src/use-router.jsx +128 -0
- package/src/use-screen-layout.js +49 -0
- package/src/use-styles.js +50 -0
- package/src/use-updated-event.js +60 -0
- package/src/use-validation-errors.js +33 -0
- package/src/utils/card.jsx +49 -0
- package/src/utils/checkbox.jsx +80 -0
- package/src/utils/checkboxes.jsx +158 -0
- package/src/utils/default-style.jsx +25 -0
- package/src/utils/icon.jsx +21 -0
- package/src/utils/invalid-feedback.jsx +20 -0
- package/src/utils/modal.jsx +60 -0
- package/src/utils/text.jsx +38 -0
- package/src/{validation-error.mjs → validation-error.js} +9 -5
- package/src/{validation-errors.mjs → validation-errors.js} +15 -27
- package/src/with-api-maker.jsx +31 -0
- package/src/with-collection.jsx +17 -0
- package/src/with-current-user.jsx +7 -25
- package/src/with-model.jsx +16 -0
- package/src/with-router.jsx +7 -129
- package/__tests__/base-model.test.js +0 -71
- package/__tests__/cable-connection-pool.test.js +0 -227
- package/__tests__/cable-subscription-pool.test.js +0 -26
- package/__tests__/can-can.test.js +0 -34
- package/__tests__/collection.test.js +0 -51
- package/__tests__/custom-error.test.js +0 -13
- package/__tests__/model-name.test.js +0 -34
- package/__tests__/model-prop-type.test.js +0 -113
- package/__tests__/params.test.js +0 -40
- package/__tests__/routes-native.test.js +0 -103
- package/__tests__/routes.test.js +0 -46
- package/__tests__/serializer.test.js +0 -30
- package/__tests__/support/task.js +0 -27
- package/__tests__/support/user.js +0 -32
- package/index.js +0 -1
- package/jest.config.js +0 -4
- package/src/can-can-loader.jsx +0 -54
- package/src/channels-consumer.mjs +0 -3
- package/src/destroy-error.mjs +0 -7
- package/src/devise.mjs +0 -122
- package/src/event-created.jsx +0 -65
- package/src/event-destroyed.jsx +0 -29
- package/src/event-listener.jsx +0 -38
- package/src/event-updated.jsx +0 -74
- package/src/logger.mjs +0 -25
- package/src/model-class-require.mjs +0 -10
- package/src/model-load-wrapper.jsx +0 -116
- package/src/result.mjs +0 -29
- package/src/session-status-updater.mjs +0 -116
- package/webpack.config.js +0 -15
- /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
- /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
- /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
- /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
- /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
+
root: true,
|
|
3
|
+
ignorePatterns: ['build'],
|
|
2
4
|
env: {
|
|
3
5
|
browser: true,
|
|
4
6
|
commonjs: true,
|
|
5
7
|
es2021: true
|
|
6
8
|
},
|
|
7
9
|
extends: [
|
|
10
|
+
'universe/native',
|
|
11
|
+
'universe/web',
|
|
8
12
|
"eslint:recommended",
|
|
9
13
|
"plugin:react/recommended",
|
|
10
14
|
"plugin:jest/recommended"
|
|
@@ -66,6 +70,7 @@ module.exports = {
|
|
|
66
70
|
"implicit-arrow-linebreak": "error",
|
|
67
71
|
"indent": ["error", 2, {"MemberExpression": "off"}],
|
|
68
72
|
"init-declarations": "off",
|
|
73
|
+
"jest/max-expects": "error",
|
|
69
74
|
"jest/max-nested-describe": "error",
|
|
70
75
|
"jest/no-alias-methods": "error",
|
|
71
76
|
"jest/no-conditional-in-test": "error",
|
|
@@ -74,12 +79,15 @@ module.exports = {
|
|
|
74
79
|
"jest/no-if": "error",
|
|
75
80
|
"jest/no-large-snapshots": "error",
|
|
76
81
|
"jest/no-restricted-matchers": "error",
|
|
82
|
+
"jest/no-restricted-jest-methods": "error",
|
|
77
83
|
"jest/no-test-return-statement": "error",
|
|
78
84
|
"jest/prefer-comparison-matcher": "error",
|
|
85
|
+
"jest/prefer-each": "error",
|
|
79
86
|
"jest/prefer-equality-matcher": "error",
|
|
80
87
|
"jest/prefer-expect-resolves": "off", // Needs configuration and no documentation could be found?
|
|
81
88
|
"jest/prefer-hooks-on-top": "error",
|
|
82
89
|
"jest/prefer-lowercase-title": "off",
|
|
90
|
+
"jest/prefer-mock-promise-shorthand": "error",
|
|
83
91
|
"prefer-object-has-own": "error",
|
|
84
92
|
"jest/prefer-snapshot-hint": "error",
|
|
85
93
|
"jest/prefer-to-be": "off", // Needs configuration and no documentation could be found?
|
|
@@ -97,6 +105,7 @@ module.exports = {
|
|
|
97
105
|
"line-comment-position": "off",
|
|
98
106
|
"lines-around-comment": "error",
|
|
99
107
|
"lines-between-class-members": "off",
|
|
108
|
+
"logical-assignment-operators": "error",
|
|
100
109
|
"max-classes-per-file": "off",
|
|
101
110
|
"max-depth": "error",
|
|
102
111
|
"max-nested-callbacks": "error",
|
|
@@ -249,7 +258,7 @@ module.exports = {
|
|
|
249
258
|
"react/jsx-props-no-multi-spaces": "error",
|
|
250
259
|
"react/jsx-props-no-spreading": "off",
|
|
251
260
|
"react/jsx-sort-default-props": "error",
|
|
252
|
-
"react/jsx-sort-props": "error",
|
|
261
|
+
"react/jsx-sort-props": ["error", {ignoreCase: true}],
|
|
253
262
|
"react/jsx-tag-spacing": "error",
|
|
254
263
|
"react/jsx-wrap-multilines": "error",
|
|
255
264
|
"react/jsx-max-props-per-line": "off",
|
package/README.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# api-maker
|
|
2
|
+
|
|
3
|
+
My new module
|
|
4
|
+
|
|
5
|
+
# API documentation
|
|
6
|
+
|
|
7
|
+
- [Documentation for the latest stable release](https://docs.expo.dev/versions/latest/sdk/api-maker/)
|
|
8
|
+
- [Documentation for the main branch](https://docs.expo.dev/versions/unversioned/sdk/api-maker/)
|
|
9
|
+
|
|
10
|
+
# Installation in managed Expo projects
|
|
11
|
+
|
|
12
|
+
For [managed](https://docs.expo.dev/archive/managed-vs-bare/) Expo projects, please follow the installation instructions in the [API documentation for the latest stable release](#api-documentation). If you follow the link and there is no documentation available then this library is not yet usable within managed projects — it is likely to be included in an upcoming Expo SDK release.
|
|
13
|
+
|
|
14
|
+
# Installation in bare React Native projects
|
|
15
|
+
|
|
16
|
+
For bare React Native projects, you must ensure that you have [installed and configured the `expo` package](https://docs.expo.dev/bare/installing-expo-modules/) before continuing.
|
|
17
|
+
|
|
18
|
+
### Add the package to your npm dependencies
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
npm install api-maker
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Configure for Android
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Configure for iOS
|
|
30
|
+
|
|
31
|
+
Run `npx pod-install` after installing the npm package.
|
|
32
|
+
|
|
33
|
+
# Contributing
|
|
34
|
+
|
|
35
|
+
Contributions are very welcome! Please refer to guidelines described in the [contributing guide]( https://github.com/expo/expo#contributing).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
apply plugin: 'com.android.library'
|
|
2
|
+
|
|
3
|
+
group = 'expo.modules.api_maker'
|
|
4
|
+
version = '0.1.0'
|
|
5
|
+
|
|
6
|
+
def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
|
|
7
|
+
apply from: expoModulesCorePlugin
|
|
8
|
+
applyKotlinExpoModulesCorePlugin()
|
|
9
|
+
useCoreDependencies()
|
|
10
|
+
useExpoPublishing()
|
|
11
|
+
|
|
12
|
+
// If you want to use the managed Android SDK versions from expo-modules-core, set this to true.
|
|
13
|
+
// The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code.
|
|
14
|
+
// Most of the time, you may like to manage the Android SDK versions yourself.
|
|
15
|
+
def useManagedAndroidSdkVersions = false
|
|
16
|
+
if (useManagedAndroidSdkVersions) {
|
|
17
|
+
useDefaultAndroidSdkVersions()
|
|
18
|
+
} else {
|
|
19
|
+
buildscript {
|
|
20
|
+
// Simple helper that allows the root project to override versions declared by this library.
|
|
21
|
+
ext.safeExtGet = { prop, fallback ->
|
|
22
|
+
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
project.android {
|
|
26
|
+
compileSdkVersion safeExtGet("compileSdkVersion", 34)
|
|
27
|
+
defaultConfig {
|
|
28
|
+
minSdkVersion safeExtGet("minSdkVersion", 21)
|
|
29
|
+
targetSdkVersion safeExtGet("targetSdkVersion", 34)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
android {
|
|
35
|
+
namespace "expo.modules.api_maker"
|
|
36
|
+
defaultConfig {
|
|
37
|
+
versionCode 1
|
|
38
|
+
versionName "0.1.0"
|
|
39
|
+
}
|
|
40
|
+
lintOptions {
|
|
41
|
+
abortOnError false
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
package expo.modules.api_maker
|
|
2
|
+
|
|
3
|
+
import expo.modules.kotlin.modules.Module
|
|
4
|
+
import expo.modules.kotlin.modules.ModuleDefinition
|
|
5
|
+
import java.net.URL
|
|
6
|
+
|
|
7
|
+
class ApiMakerModule : Module() {
|
|
8
|
+
// Each module class must implement the definition function. The definition consists of components
|
|
9
|
+
// that describes the module's functionality and behavior.
|
|
10
|
+
// See https://docs.expo.dev/modules/module-api for more details about available components.
|
|
11
|
+
override fun definition() = ModuleDefinition {
|
|
12
|
+
// Sets the name of the module that JavaScript code will use to refer to the module. Takes a string as an argument.
|
|
13
|
+
// Can be inferred from module's class name, but it's recommended to set it explicitly for clarity.
|
|
14
|
+
// The module will be accessible from `requireNativeModule('ApiMaker')` in JavaScript.
|
|
15
|
+
Name("ApiMaker")
|
|
16
|
+
|
|
17
|
+
// Sets constant properties on the module. Can take a dictionary or a closure that returns a dictionary.
|
|
18
|
+
Constants(
|
|
19
|
+
"PI" to Math.PI
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
// Defines event names that the module can send to JavaScript.
|
|
23
|
+
Events("onChange")
|
|
24
|
+
|
|
25
|
+
// Defines a JavaScript synchronous function that runs the native code on the JavaScript thread.
|
|
26
|
+
Function("hello") {
|
|
27
|
+
"Hello world! 👋"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Defines a JavaScript function that always returns a Promise and whose native code
|
|
31
|
+
// is by default dispatched on the different thread than the JavaScript runtime runs on.
|
|
32
|
+
AsyncFunction("setValueAsync") { value: String ->
|
|
33
|
+
// Send an event to JavaScript.
|
|
34
|
+
sendEvent("onChange", mapOf(
|
|
35
|
+
"value" to value
|
|
36
|
+
))
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Enables the module to be used as a native view. Definition components that are accepted as part of
|
|
40
|
+
// the view definition: Prop, Events.
|
|
41
|
+
View(ApiMakerView::class) {
|
|
42
|
+
// Defines a setter for the `url` prop.
|
|
43
|
+
Prop("url") { view: ApiMakerView, url: URL ->
|
|
44
|
+
view.webView.loadUrl(url.toString())
|
|
45
|
+
}
|
|
46
|
+
// Defines an event that the view can send to JavaScript.
|
|
47
|
+
Events("onLoad")
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package expo.modules.api_maker
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.webkit.WebView
|
|
5
|
+
import android.webkit.WebViewClient
|
|
6
|
+
import expo.modules.kotlin.AppContext
|
|
7
|
+
import expo.modules.kotlin.viewevent.EventDispatcher
|
|
8
|
+
import expo.modules.kotlin.views.ExpoView
|
|
9
|
+
|
|
10
|
+
class ApiMakerView(context: Context, appContext: AppContext) : ExpoView(context, appContext) {
|
|
11
|
+
// Creates and initializes an event dispatcher for the `onLoad` event.
|
|
12
|
+
// The name of the event is inferred from the value and needs to match the event name defined in the module.
|
|
13
|
+
private val onLoad by EventDispatcher()
|
|
14
|
+
|
|
15
|
+
// Defines a WebView that will be used as the root subview.
|
|
16
|
+
internal val webView = WebView(context).apply {
|
|
17
|
+
layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
|
|
18
|
+
webViewClient = object : WebViewClient() {
|
|
19
|
+
override fun onPageFinished(view: WebView, url: String) {
|
|
20
|
+
// Sends an event to JavaScript. Triggers a callback defined on the view component in JavaScript.
|
|
21
|
+
onLoad(mapOf("url" to url))
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
init {
|
|
27
|
+
// Adds the WebView to the view hierarchy.
|
|
28
|
+
addView(webView)
|
|
29
|
+
}
|
|
30
|
+
}
|
package/build/api.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import config from "./config";
|
|
2
|
+
import CustomError from "./custom-error";
|
|
3
|
+
import FormDataObjectizer from "form-data-objectizer";
|
|
4
|
+
import Logger from "./logger";
|
|
5
|
+
import qs from "qs";
|
|
6
|
+
import SessionStatusUpdater from "./session-status-updater";
|
|
7
|
+
import urlEncode from "./url-encode";
|
|
8
|
+
const logger = new Logger({
|
|
9
|
+
name: "ApiMaker / Api"
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
// logger.setDebug(true)
|
|
13
|
+
|
|
14
|
+
export default class Api {
|
|
15
|
+
static get = async (path, pathParams = null) => await Api.requestLocal({
|
|
16
|
+
path,
|
|
17
|
+
pathParams,
|
|
18
|
+
method: "GET"
|
|
19
|
+
});
|
|
20
|
+
static delete = async (path, pathParams = null) => await Api.requestLocal({
|
|
21
|
+
path,
|
|
22
|
+
pathParams,
|
|
23
|
+
method: "DELETE"
|
|
24
|
+
});
|
|
25
|
+
static patch = async (path, data = {}) => await Api.requestLocal({
|
|
26
|
+
path,
|
|
27
|
+
data,
|
|
28
|
+
method: "PATCH"
|
|
29
|
+
});
|
|
30
|
+
static post = async (path, data = {}) => await Api.requestLocal({
|
|
31
|
+
path,
|
|
32
|
+
data,
|
|
33
|
+
method: "POST"
|
|
34
|
+
});
|
|
35
|
+
static async request({
|
|
36
|
+
data,
|
|
37
|
+
headers,
|
|
38
|
+
method,
|
|
39
|
+
path,
|
|
40
|
+
pathParams
|
|
41
|
+
}) {
|
|
42
|
+
let requestPath = "";
|
|
43
|
+
if (config.getHost()) requestPath += config.getHost();
|
|
44
|
+
requestPath += path;
|
|
45
|
+
if (pathParams) {
|
|
46
|
+
const pathParamsString = qs.stringify(pathParams, {
|
|
47
|
+
arrayFormat: "brackets",
|
|
48
|
+
encoder: urlEncode
|
|
49
|
+
});
|
|
50
|
+
requestPath += `?${pathParamsString}`;
|
|
51
|
+
}
|
|
52
|
+
const xhr = new XMLHttpRequest();
|
|
53
|
+
xhr.open(method, requestPath, true);
|
|
54
|
+
xhr.withCredentials = true;
|
|
55
|
+
if (headers) {
|
|
56
|
+
for (const headerName in headers) {
|
|
57
|
+
xhr.setRequestHeader(headerName, headers[headerName]);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const response = await Api.executeXhr(xhr, data);
|
|
61
|
+
return response;
|
|
62
|
+
}
|
|
63
|
+
static executeXhr(xhr, data) {
|
|
64
|
+
return new Promise((resolve, reject) => {
|
|
65
|
+
xhr.onload = () => {
|
|
66
|
+
const response = this._parseResponse(xhr);
|
|
67
|
+
if (xhr.status == 200) {
|
|
68
|
+
resolve(response);
|
|
69
|
+
} else {
|
|
70
|
+
const customError = new CustomError(`Request failed with code: ${xhr.status}`, {
|
|
71
|
+
response,
|
|
72
|
+
xhr
|
|
73
|
+
});
|
|
74
|
+
if (data instanceof FormData) {
|
|
75
|
+
customError.peakflowParameters = FormDataObjectizer.toObject(data);
|
|
76
|
+
} else {
|
|
77
|
+
customError.peakflowParameters = data;
|
|
78
|
+
}
|
|
79
|
+
reject(customError);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
xhr.send(data);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
static async requestLocal(args) {
|
|
86
|
+
if (!args.headers) {
|
|
87
|
+
args.headers = {};
|
|
88
|
+
}
|
|
89
|
+
const token = await this._token();
|
|
90
|
+
logger.debug(() => `Got token: ${token}`);
|
|
91
|
+
if (token) {
|
|
92
|
+
args.headers["X-CSRF-Token"] = token;
|
|
93
|
+
}
|
|
94
|
+
if (args.data) {
|
|
95
|
+
args.headers["Content-Type"] = "application/json";
|
|
96
|
+
args.data = JSON.stringify(args.data);
|
|
97
|
+
}
|
|
98
|
+
if (args.rawData) {
|
|
99
|
+
args.data = args.rawData;
|
|
100
|
+
}
|
|
101
|
+
return await this.request(args);
|
|
102
|
+
}
|
|
103
|
+
static async put(path, data = {}) {
|
|
104
|
+
return await this.requestLocal({
|
|
105
|
+
path,
|
|
106
|
+
data,
|
|
107
|
+
method: "PUT"
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
static _token = async () => await SessionStatusUpdater.current().getCsrfToken();
|
|
111
|
+
static _parseResponse(xhr) {
|
|
112
|
+
const responseType = xhr.getResponseHeader("content-type");
|
|
113
|
+
if (responseType && responseType.startsWith("application/json")) {
|
|
114
|
+
return JSON.parse(xhr.responseText);
|
|
115
|
+
} else {
|
|
116
|
+
return xhr.responseText;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJDdXN0b21FcnJvciIsIkZvcm1EYXRhT2JqZWN0aXplciIsIkxvZ2dlciIsInFzIiwiU2Vzc2lvblN0YXR1c1VwZGF0ZXIiLCJ1cmxFbmNvZGUiLCJsb2dnZXIiLCJuYW1lIiwiQXBpIiwiZ2V0IiwicGF0aCIsInBhdGhQYXJhbXMiLCJyZXF1ZXN0TG9jYWwiLCJtZXRob2QiLCJkZWxldGUiLCJwYXRjaCIsImRhdGEiLCJwb3N0IiwicmVxdWVzdCIsImhlYWRlcnMiLCJyZXF1ZXN0UGF0aCIsImdldEhvc3QiLCJwYXRoUGFyYW1zU3RyaW5nIiwic3RyaW5naWZ5IiwiYXJyYXlGb3JtYXQiLCJlbmNvZGVyIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJvcGVuIiwid2l0aENyZWRlbnRpYWxzIiwiaGVhZGVyTmFtZSIsInNldFJlcXVlc3RIZWFkZXIiLCJyZXNwb25zZSIsImV4ZWN1dGVYaHIiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIm9ubG9hZCIsIl9wYXJzZVJlc3BvbnNlIiwic3RhdHVzIiwiY3VzdG9tRXJyb3IiLCJGb3JtRGF0YSIsInBlYWtmbG93UGFyYW1ldGVycyIsInRvT2JqZWN0Iiwic2VuZCIsImFyZ3MiLCJ0b2tlbiIsIl90b2tlbiIsImRlYnVnIiwiSlNPTiIsInJhd0RhdGEiLCJwdXQiLCJjdXJyZW50IiwiZ2V0Q3NyZlRva2VuIiwicmVzcG9uc2VUeXBlIiwiZ2V0UmVzcG9uc2VIZWFkZXIiLCJzdGFydHNXaXRoIiwicGFyc2UiLCJyZXNwb25zZVRleHQiXSwic291cmNlcyI6WyIuLi9zcmMvYXBpLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25maWcgZnJvbSBcIi4vY29uZmlnXCJcbmltcG9ydCBDdXN0b21FcnJvciBmcm9tIFwiLi9jdXN0b20tZXJyb3JcIlxuaW1wb3J0IEZvcm1EYXRhT2JqZWN0aXplciBmcm9tIFwiZm9ybS1kYXRhLW9iamVjdGl6ZXJcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXJcIlxuaW1wb3J0IHFzIGZyb20gXCJxc1wiXG5pbXBvcnQgU2Vzc2lvblN0YXR1c1VwZGF0ZXIgZnJvbSBcIi4vc2Vzc2lvbi1zdGF0dXMtdXBkYXRlclwiXG5pbXBvcnQgdXJsRW5jb2RlIGZyb20gXCIuL3VybC1lbmNvZGVcIlxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gQXBpXCJ9KVxuXG4vLyBsb2dnZXIuc2V0RGVidWcodHJ1ZSlcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpIHtcbiAgc3RhdGljIGdldCA9IGFzeW5jIChwYXRoLCBwYXRoUGFyYW1zID0gbnVsbCkgPT4gIGF3YWl0IEFwaS5yZXF1ZXN0TG9jYWwoe3BhdGgsIHBhdGhQYXJhbXMsIG1ldGhvZDogXCJHRVRcIn0pXG4gIHN0YXRpYyBkZWxldGUgPSBhc3luYyAocGF0aCwgcGF0aFBhcmFtcyA9IG51bGwpID0+IGF3YWl0IEFwaS5yZXF1ZXN0TG9jYWwoe3BhdGgsIHBhdGhQYXJhbXMsIG1ldGhvZDogXCJERUxFVEVcIn0pXG4gIHN0YXRpYyBwYXRjaCA9IGFzeW5jIChwYXRoLCBkYXRhID0ge30pID0+IGF3YWl0IEFwaS5yZXF1ZXN0TG9jYWwoe3BhdGgsIGRhdGEsIG1ldGhvZDogXCJQQVRDSFwifSlcbiAgc3RhdGljIHBvc3QgPSBhc3luYyAocGF0aCwgZGF0YSA9IHt9KSA9PiBhd2FpdCBBcGkucmVxdWVzdExvY2FsKHtwYXRoLCBkYXRhLCBtZXRob2Q6IFwiUE9TVFwifSlcblxuICBzdGF0aWMgYXN5bmMgcmVxdWVzdCh7ZGF0YSwgaGVhZGVycywgbWV0aG9kLCBwYXRoLCBwYXRoUGFyYW1zfSkge1xuICAgIGxldCByZXF1ZXN0UGF0aCA9IFwiXCJcbiAgICBpZiAoY29uZmlnLmdldEhvc3QoKSkgcmVxdWVzdFBhdGggKz0gY29uZmlnLmdldEhvc3QoKVxuICAgIHJlcXVlc3RQYXRoICs9IHBhdGhcblxuICAgIGlmIChwYXRoUGFyYW1zKSB7XG4gICAgICBjb25zdCBwYXRoUGFyYW1zU3RyaW5nID0gcXMuc3RyaW5naWZ5KHBhdGhQYXJhbXMsIHthcnJheUZvcm1hdDogXCJicmFja2V0c1wiLCBlbmNvZGVyOiB1cmxFbmNvZGV9KVxuICAgICAgcmVxdWVzdFBhdGggKz0gYD8ke3BhdGhQYXJhbXNTdHJpbmd9YFxuICAgIH1cblxuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpXG5cbiAgICB4aHIub3BlbihtZXRob2QsIHJlcXVlc3RQYXRoLCB0cnVlKVxuICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB0cnVlXG5cbiAgICBpZiAoaGVhZGVycykge1xuICAgICAgZm9yIChjb25zdCBoZWFkZXJOYW1lIGluIGhlYWRlcnMpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyTmFtZSwgaGVhZGVyc1toZWFkZXJOYW1lXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IEFwaS5leGVjdXRlWGhyKHhociwgZGF0YSlcblxuICAgIHJldHVybiByZXNwb25zZVxuICB9XG5cbiAgc3RhdGljIGV4ZWN1dGVYaHIoeGhyLCBkYXRhKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5fcGFyc2VSZXNwb25zZSh4aHIpXG5cbiAgICAgICAgaWYgKHhoci5zdGF0dXMgPT0gMjAwKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjdXN0b21FcnJvciA9IG5ldyBDdXN0b21FcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBjb2RlOiAke3hoci5zdGF0dXN9YCwge3Jlc3BvbnNlLCB4aHJ9KVxuXG4gICAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgICAgICAgY3VzdG9tRXJyb3IucGVha2Zsb3dQYXJhbWV0ZXJzID0gRm9ybURhdGFPYmplY3RpemVyLnRvT2JqZWN0KGRhdGEpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1c3RvbUVycm9yLnBlYWtmbG93UGFyYW1ldGVycyA9IGRhdGFcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZWplY3QoY3VzdG9tRXJyb3IpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgeGhyLnNlbmQoZGF0YSlcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIHJlcXVlc3RMb2NhbChhcmdzKSB7XG4gICAgaWYgKCFhcmdzLmhlYWRlcnMpIHtcbiAgICAgIGFyZ3MuaGVhZGVycyA9IHt9XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCB0aGlzLl90b2tlbigpXG5cbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gYEdvdCB0b2tlbjogJHt0b2tlbn1gKVxuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICBhcmdzLmhlYWRlcnNbXCJYLUNTUkYtVG9rZW5cIl0gPSB0b2tlblxuICAgIH1cblxuICAgIGlmIChhcmdzLmRhdGEpIHtcbiAgICAgIGFyZ3MuaGVhZGVyc1tcIkNvbnRlbnQtVHlwZVwiXSA9IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICBhcmdzLmRhdGEgPSBKU09OLnN0cmluZ2lmeShhcmdzLmRhdGEpXG4gICAgfVxuXG4gICAgaWYgKGFyZ3MucmF3RGF0YSkge1xuICAgICAgYXJncy5kYXRhID0gYXJncy5yYXdEYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmVxdWVzdChhcmdzKVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIHB1dChwYXRoLCBkYXRhID0ge30pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXF1ZXN0TG9jYWwoe3BhdGgsIGRhdGEsIG1ldGhvZDogXCJQVVRcIn0pXG4gIH1cblxuICBzdGF0aWMgX3Rva2VuID0gYXN5bmMgKCkgPT4gYXdhaXQgU2Vzc2lvblN0YXR1c1VwZGF0ZXIuY3VycmVudCgpLmdldENzcmZUb2tlbigpXG5cbiAgc3RhdGljIF9wYXJzZVJlc3BvbnNlKHhocikge1xuICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IHhoci5nZXRSZXNwb25zZUhlYWRlcihcImNvbnRlbnQtdHlwZVwiKVxuXG4gICAgaWYgKHJlc3BvbnNlVHlwZSAmJiByZXNwb25zZVR5cGUuc3RhcnRzV2l0aChcImFwcGxpY2F0aW9uL2pzb25cIikpIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHhoci5yZXNwb25zZVRleHQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB4aHIucmVzcG9uc2VUZXh0XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxVQUFVO0FBQzdCLE9BQU9DLFdBQVcsTUFBTSxnQkFBZ0I7QUFDeEMsT0FBT0Msa0JBQWtCLE1BQU0sc0JBQXNCO0FBQ3JELE9BQU9DLE1BQU0sTUFBTSxVQUFVO0FBQzdCLE9BQU9DLEVBQUUsTUFBTSxJQUFJO0FBQ25CLE9BQU9DLG9CQUFvQixNQUFNLDBCQUEwQjtBQUMzRCxPQUFPQyxTQUFTLE1BQU0sY0FBYztBQUVwQyxNQUFNQyxNQUFNLEdBQUcsSUFBSUosTUFBTSxDQUFDO0VBQUNLLElBQUksRUFBRTtBQUFnQixDQUFDLENBQUM7O0FBRW5EOztBQUVBLGVBQWUsTUFBTUMsR0FBRyxDQUFDO0VBQ3ZCLE9BQU9DLEdBQUcsR0FBRyxNQUFBQSxDQUFPQyxJQUFJLEVBQUVDLFVBQVUsR0FBRyxJQUFJLEtBQU0sTUFBTUgsR0FBRyxDQUFDSSxZQUFZLENBQUM7SUFBQ0YsSUFBSTtJQUFFQyxVQUFVO0lBQUVFLE1BQU0sRUFBRTtFQUFLLENBQUMsQ0FBQztFQUMxRyxPQUFPQyxNQUFNLEdBQUcsTUFBQUEsQ0FBT0osSUFBSSxFQUFFQyxVQUFVLEdBQUcsSUFBSSxLQUFLLE1BQU1ILEdBQUcsQ0FBQ0ksWUFBWSxDQUFDO0lBQUNGLElBQUk7SUFBRUMsVUFBVTtJQUFFRSxNQUFNLEVBQUU7RUFBUSxDQUFDLENBQUM7RUFDL0csT0FBT0UsS0FBSyxHQUFHLE1BQUFBLENBQU9MLElBQUksRUFBRU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLE1BQU1SLEdBQUcsQ0FBQ0ksWUFBWSxDQUFDO0lBQUNGLElBQUk7SUFBRU0sSUFBSTtJQUFFSCxNQUFNLEVBQUU7RUFBTyxDQUFDLENBQUM7RUFDL0YsT0FBT0ksSUFBSSxHQUFHLE1BQUFBLENBQU9QLElBQUksRUFBRU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLE1BQU1SLEdBQUcsQ0FBQ0ksWUFBWSxDQUFDO0lBQUNGLElBQUk7SUFBRU0sSUFBSTtJQUFFSCxNQUFNLEVBQUU7RUFBTSxDQUFDLENBQUM7RUFFN0YsYUFBYUssT0FBT0EsQ0FBQztJQUFDRixJQUFJO0lBQUVHLE9BQU87SUFBRU4sTUFBTTtJQUFFSCxJQUFJO0lBQUVDO0VBQVUsQ0FBQyxFQUFFO0lBQzlELElBQUlTLFdBQVcsR0FBRyxFQUFFO0lBQ3BCLElBQUlyQixNQUFNLENBQUNzQixPQUFPLENBQUMsQ0FBQyxFQUFFRCxXQUFXLElBQUlyQixNQUFNLENBQUNzQixPQUFPLENBQUMsQ0FBQztJQUNyREQsV0FBVyxJQUFJVixJQUFJO0lBRW5CLElBQUlDLFVBQVUsRUFBRTtNQUNkLE1BQU1XLGdCQUFnQixHQUFHbkIsRUFBRSxDQUFDb0IsU0FBUyxDQUFDWixVQUFVLEVBQUU7UUFBQ2EsV0FBVyxFQUFFLFVBQVU7UUFBRUMsT0FBTyxFQUFFcEI7TUFBUyxDQUFDLENBQUM7TUFDaEdlLFdBQVcsSUFBSSxJQUFJRSxnQkFBZ0IsRUFBRTtJQUN2QztJQUVBLE1BQU1JLEdBQUcsR0FBRyxJQUFJQyxjQUFjLENBQUMsQ0FBQztJQUVoQ0QsR0FBRyxDQUFDRSxJQUFJLENBQUNmLE1BQU0sRUFBRU8sV0FBVyxFQUFFLElBQUksQ0FBQztJQUNuQ00sR0FBRyxDQUFDRyxlQUFlLEdBQUcsSUFBSTtJQUUxQixJQUFJVixPQUFPLEVBQUU7TUFDWCxLQUFLLE1BQU1XLFVBQVUsSUFBSVgsT0FBTyxFQUFFO1FBQ2hDTyxHQUFHLENBQUNLLGdCQUFnQixDQUFDRCxVQUFVLEVBQUVYLE9BQU8sQ0FBQ1csVUFBVSxDQUFDLENBQUM7TUFDdkQ7SUFDRjtJQUVBLE1BQU1FLFFBQVEsR0FBRyxNQUFNeEIsR0FBRyxDQUFDeUIsVUFBVSxDQUFDUCxHQUFHLEVBQUVWLElBQUksQ0FBQztJQUVoRCxPQUFPZ0IsUUFBUTtFQUNqQjtFQUVBLE9BQU9DLFVBQVVBLENBQUNQLEdBQUcsRUFBRVYsSUFBSSxFQUFFO0lBQzNCLE9BQU8sSUFBSWtCLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztNQUN0Q1YsR0FBRyxDQUFDVyxNQUFNLEdBQUcsTUFBTTtRQUNqQixNQUFNTCxRQUFRLEdBQUcsSUFBSSxDQUFDTSxjQUFjLENBQUNaLEdBQUcsQ0FBQztRQUV6QyxJQUFJQSxHQUFHLENBQUNhLE1BQU0sSUFBSSxHQUFHLEVBQUU7VUFDckJKLE9BQU8sQ0FBQ0gsUUFBUSxDQUFDO1FBQ25CLENBQUMsTUFBTTtVQUNMLE1BQU1RLFdBQVcsR0FBRyxJQUFJeEMsV0FBVyxDQUFDLDZCQUE2QjBCLEdBQUcsQ0FBQ2EsTUFBTSxFQUFFLEVBQUU7WUFBQ1AsUUFBUTtZQUFFTjtVQUFHLENBQUMsQ0FBQztVQUUvRixJQUFJVixJQUFJLFlBQVl5QixRQUFRLEVBQUU7WUFDNUJELFdBQVcsQ0FBQ0Usa0JBQWtCLEdBQUd6QyxrQkFBa0IsQ0FBQzBDLFFBQVEsQ0FBQzNCLElBQUksQ0FBQztVQUNwRSxDQUFDLE1BQU07WUFDTHdCLFdBQVcsQ0FBQ0Usa0JBQWtCLEdBQUcxQixJQUFJO1VBQ3ZDO1VBRUFvQixNQUFNLENBQUNJLFdBQVcsQ0FBQztRQUNyQjtNQUNGLENBQUM7TUFFRGQsR0FBRyxDQUFDa0IsSUFBSSxDQUFDNUIsSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztFQUNKO0VBRUEsYUFBYUosWUFBWUEsQ0FBQ2lDLElBQUksRUFBRTtJQUM5QixJQUFJLENBQUNBLElBQUksQ0FBQzFCLE9BQU8sRUFBRTtNQUNqQjBCLElBQUksQ0FBQzFCLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDbkI7SUFFQSxNQUFNMkIsS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FBQztJQUVqQ3pDLE1BQU0sQ0FBQzBDLEtBQUssQ0FBQyxNQUFNLGNBQWNGLEtBQUssRUFBRSxDQUFDO0lBRXpDLElBQUlBLEtBQUssRUFBRTtNQUNURCxJQUFJLENBQUMxQixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcyQixLQUFLO0lBQ3RDO0lBRUEsSUFBSUQsSUFBSSxDQUFDN0IsSUFBSSxFQUFFO01BQ2I2QixJQUFJLENBQUMxQixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsa0JBQWtCO01BQ2pEMEIsSUFBSSxDQUFDN0IsSUFBSSxHQUFHaUMsSUFBSSxDQUFDMUIsU0FBUyxDQUFDc0IsSUFBSSxDQUFDN0IsSUFBSSxDQUFDO0lBQ3ZDO0lBRUEsSUFBSTZCLElBQUksQ0FBQ0ssT0FBTyxFQUFFO01BQ2hCTCxJQUFJLENBQUM3QixJQUFJLEdBQUc2QixJQUFJLENBQUNLLE9BQU87SUFDMUI7SUFFQSxPQUFPLE1BQU0sSUFBSSxDQUFDaEMsT0FBTyxDQUFDMkIsSUFBSSxDQUFDO0VBQ2pDO0VBRUEsYUFBYU0sR0FBR0EsQ0FBQ3pDLElBQUksRUFBRU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQ2hDLE9BQU8sTUFBTSxJQUFJLENBQUNKLFlBQVksQ0FBQztNQUFDRixJQUFJO01BQUVNLElBQUk7TUFBRUgsTUFBTSxFQUFFO0lBQUssQ0FBQyxDQUFDO0VBQzdEO0VBRUEsT0FBT2tDLE1BQU0sR0FBRyxNQUFBQSxDQUFBLEtBQVksTUFBTTNDLG9CQUFvQixDQUFDZ0QsT0FBTyxDQUFDLENBQUMsQ0FBQ0MsWUFBWSxDQUFDLENBQUM7RUFFL0UsT0FBT2YsY0FBY0EsQ0FBQ1osR0FBRyxFQUFFO0lBQ3pCLE1BQU00QixZQUFZLEdBQUc1QixHQUFHLENBQUM2QixpQkFBaUIsQ0FBQyxjQUFjLENBQUM7SUFFMUQsSUFBSUQsWUFBWSxJQUFJQSxZQUFZLENBQUNFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO01BQy9ELE9BQU9QLElBQUksQ0FBQ1EsS0FBSyxDQUFDL0IsR0FBRyxDQUFDZ0MsWUFBWSxDQUFDO0lBQ3JDLENBQUMsTUFBTTtNQUNMLE9BQU9oQyxHQUFHLENBQUNnQyxZQUFZO0lBQ3pCO0VBQ0Y7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export default class AttributeNotLoadedError extends Error {}
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBdHRyaWJ1dGVOb3RMb2FkZWRFcnJvciIsIkVycm9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2F0dHJpYnV0ZS1ub3QtbG9hZGVkLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIEF0dHJpYnV0ZU5vdExvYWRlZEVycm9yIGV4dGVuZHMgRXJyb3Ige31cbiJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxNQUFNQSx1QkFBdUIsU0FBU0MsS0FBSyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ShapeComponent } from "set-state-compare/src/shape-component";
|
|
2
|
+
export default class BaseComponent extends ShapeComponent {
|
|
3
|
+
// Nothing yet.
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaGFwZUNvbXBvbmVudCIsIkJhc2VDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvYmFzZS1jb21wb25lbnQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZUNvbXBvbmVudCBleHRlbmRzIFNoYXBlQ29tcG9uZW50IHtcbiAgLy8gTm90aGluZyB5ZXQuXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLGNBQWMsUUFBTyx1Q0FBdUM7QUFFcEUsZUFBZSxNQUFNQyxhQUFhLFNBQVNELGNBQWMsQ0FBQztFQUN4RDtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { dig, digg } from "diggerize";
|
|
2
|
+
import errorMessages from "./error-messages";
|
|
3
|
+
export default class BaseError extends Error {
|
|
4
|
+
static apiMakerType = "BaseError";
|
|
5
|
+
constructor(message, args = {}) {
|
|
6
|
+
let messageToUse = message;
|
|
7
|
+
if ("addResponseErrorsToErrorMessage" in args && !args.addResponseErrorsToErrorMessage) {
|
|
8
|
+
messageToUse = message;
|
|
9
|
+
} else {
|
|
10
|
+
if (typeof args.response == "object" && dig(args, "response", "errors")) {
|
|
11
|
+
if (message) {
|
|
12
|
+
messageToUse = `${messageToUse}: ${errorMessages(args).join(". ")}`;
|
|
13
|
+
} else {
|
|
14
|
+
messageToUse = errorMessages(args).join(". ");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
super(messageToUse);
|
|
19
|
+
this.args = args;
|
|
20
|
+
|
|
21
|
+
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
22
|
+
if (Error.captureStackTrace) Error.captureStackTrace(this, BaseError);
|
|
23
|
+
}
|
|
24
|
+
errorMessages() {
|
|
25
|
+
return errorMessages(this.args);
|
|
26
|
+
}
|
|
27
|
+
errorTypes() {
|
|
28
|
+
if (typeof this.args.response == "object") {
|
|
29
|
+
return digg(this, "args", "response", "errors").map(error => digg(error, "type"));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWciLCJkaWdnIiwiZXJyb3JNZXNzYWdlcyIsIkJhc2VFcnJvciIsIkVycm9yIiwiYXBpTWFrZXJUeXBlIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwiYXJncyIsIm1lc3NhZ2VUb1VzZSIsImFkZFJlc3BvbnNlRXJyb3JzVG9FcnJvck1lc3NhZ2UiLCJyZXNwb25zZSIsImpvaW4iLCJjYXB0dXJlU3RhY2tUcmFjZSIsImVycm9yVHlwZXMiLCJtYXAiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnLCBkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBlcnJvck1lc3NhZ2VzIGZyb20gXCIuL2Vycm9yLW1lc3NhZ2VzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBzdGF0aWMgYXBpTWFrZXJUeXBlID0gXCJCYXNlRXJyb3JcIlxuXG4gIGNvbnN0cnVjdG9yIChtZXNzYWdlLCBhcmdzID0ge30pIHtcbiAgICBsZXQgbWVzc2FnZVRvVXNlID0gbWVzc2FnZVxuXG4gICAgaWYgKFwiYWRkUmVzcG9uc2VFcnJvcnNUb0Vycm9yTWVzc2FnZVwiIGluIGFyZ3MgJiYgIWFyZ3MuYWRkUmVzcG9uc2VFcnJvcnNUb0Vycm9yTWVzc2FnZSkge1xuICAgICAgbWVzc2FnZVRvVXNlID0gbWVzc2FnZVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3MucmVzcG9uc2UgPT0gXCJvYmplY3RcIiAmJiBkaWcoYXJncywgXCJyZXNwb25zZVwiLCBcImVycm9yc1wiKSkge1xuICAgICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICAgIG1lc3NhZ2VUb1VzZSA9IGAke21lc3NhZ2VUb1VzZX06ICR7ZXJyb3JNZXNzYWdlcyhhcmdzKS5qb2luKFwiLiBcIil9YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1lc3NhZ2VUb1VzZSA9IGVycm9yTWVzc2FnZXMoYXJncykuam9pbihcIi4gXCIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdXBlcihtZXNzYWdlVG9Vc2UpXG4gICAgdGhpcy5hcmdzID0gYXJnc1xuXG4gICAgLy8gTWFpbnRhaW5zIHByb3BlciBzdGFjayB0cmFjZSBmb3Igd2hlcmUgb3VyIGVycm9yIHdhcyB0aHJvd24gKG9ubHkgYXZhaWxhYmxlIG9uIFY4KVxuICAgIGlmIChFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSkgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgQmFzZUVycm9yKVxuICB9XG5cbiAgZXJyb3JNZXNzYWdlcyAoKSB7XG4gICAgcmV0dXJuIGVycm9yTWVzc2FnZXModGhpcy5hcmdzKVxuICB9XG5cbiAgZXJyb3JUeXBlcyAoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmFyZ3MucmVzcG9uc2UgPT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIGRpZ2codGhpcywgXCJhcmdzXCIsIFwicmVzcG9uc2VcIiwgXCJlcnJvcnNcIikubWFwKChlcnJvcikgPT4gZGlnZyhlcnJvciwgXCJ0eXBlXCIpKVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxHQUFHLEVBQUVDLElBQUksUUFBTyxXQUFXO0FBQ25DLE9BQU9DLGFBQWEsTUFBTSxrQkFBa0I7QUFFNUMsZUFBZSxNQUFNQyxTQUFTLFNBQVNDLEtBQUssQ0FBQztFQUMzQyxPQUFPQyxZQUFZLEdBQUcsV0FBVztFQUVqQ0MsV0FBV0EsQ0FBRUMsT0FBTyxFQUFFQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFDL0IsSUFBSUMsWUFBWSxHQUFHRixPQUFPO0lBRTFCLElBQUksaUNBQWlDLElBQUlDLElBQUksSUFBSSxDQUFDQSxJQUFJLENBQUNFLCtCQUErQixFQUFFO01BQ3RGRCxZQUFZLEdBQUdGLE9BQU87SUFDeEIsQ0FBQyxNQUFNO01BQ0wsSUFBSSxPQUFPQyxJQUFJLENBQUNHLFFBQVEsSUFBSSxRQUFRLElBQUlYLEdBQUcsQ0FBQ1EsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTtRQUN2RSxJQUFJRCxPQUFPLEVBQUU7VUFDWEUsWUFBWSxHQUFHLEdBQUdBLFlBQVksS0FBS1AsYUFBYSxDQUFDTSxJQUFJLENBQUMsQ0FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3JFLENBQUMsTUFBTTtVQUNMSCxZQUFZLEdBQUdQLGFBQWEsQ0FBQ00sSUFBSSxDQUFDLENBQUNJLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0M7TUFDRjtJQUNGO0lBRUEsS0FBSyxDQUFDSCxZQUFZLENBQUM7SUFDbkIsSUFBSSxDQUFDRCxJQUFJLEdBQUdBLElBQUk7O0lBRWhCO0lBQ0EsSUFBSUosS0FBSyxDQUFDUyxpQkFBaUIsRUFBRVQsS0FBSyxDQUFDUyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUVWLFNBQVMsQ0FBQztFQUN2RTtFQUVBRCxhQUFhQSxDQUFBLEVBQUk7SUFDZixPQUFPQSxhQUFhLENBQUMsSUFBSSxDQUFDTSxJQUFJLENBQUM7RUFDakM7RUFFQU0sVUFBVUEsQ0FBQSxFQUFJO0lBQ1osSUFBSSxPQUFPLElBQUksQ0FBQ04sSUFBSSxDQUFDRyxRQUFRLElBQUksUUFBUSxFQUFFO01BQ3pDLE9BQU9WLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQ2MsR0FBRyxDQUFFQyxLQUFLLElBQUtmLElBQUksQ0FBQ2UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JGO0VBQ0Y7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import Column from "./column";
|
|
2
|
+
import { digg } from "diggerize";
|
|
3
|
+
export default class ApiMakerBaseModelAttribute {
|
|
4
|
+
constructor(attributeData) {
|
|
5
|
+
this.attributeData = attributeData;
|
|
6
|
+
}
|
|
7
|
+
getColumn() {
|
|
8
|
+
if (!this.column) {
|
|
9
|
+
const columnData = digg(this, "attributeData", "column");
|
|
10
|
+
if (columnData) {
|
|
11
|
+
this.column = new Column(columnData);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return this.column;
|
|
15
|
+
}
|
|
16
|
+
isColumn = () => Boolean(digg(this, "attributeData", "column"));
|
|
17
|
+
isSelectedByDefault() {
|
|
18
|
+
const isSelectedByDefault = digg(this, "attributeData", "selected_by_default");
|
|
19
|
+
if (isSelectedByDefault || isSelectedByDefault === null) return true;
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
isTranslated = () => digg(this, "attributeData", "translated");
|
|
23
|
+
name = () => digg(this, "attributeData", "name");
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2x1bW4iLCJkaWdnIiwiQXBpTWFrZXJCYXNlTW9kZWxBdHRyaWJ1dGUiLCJjb25zdHJ1Y3RvciIsImF0dHJpYnV0ZURhdGEiLCJnZXRDb2x1bW4iLCJjb2x1bW4iLCJjb2x1bW5EYXRhIiwiaXNDb2x1bW4iLCJCb29sZWFuIiwiaXNTZWxlY3RlZEJ5RGVmYXVsdCIsImlzVHJhbnNsYXRlZCIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzZS1tb2RlbC9hdHRyaWJ1dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbHVtbiBmcm9tIFwiLi9jb2x1bW5cIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJCYXNlTW9kZWxBdHRyaWJ1dGUge1xuICBjb25zdHJ1Y3RvcihhdHRyaWJ1dGVEYXRhKSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVEYXRhID0gYXR0cmlidXRlRGF0YVxuICB9XG5cbiAgZ2V0Q29sdW1uKCkge1xuICAgIGlmICghdGhpcy5jb2x1bW4pIHtcbiAgICAgIGNvbnN0IGNvbHVtbkRhdGEgPSBkaWdnKHRoaXMsIFwiYXR0cmlidXRlRGF0YVwiLCBcImNvbHVtblwiKVxuXG4gICAgICBpZiAoY29sdW1uRGF0YSkge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IG5ldyBDb2x1bW4oY29sdW1uRGF0YSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb2x1bW5cbiAgfVxuXG4gIGlzQ29sdW1uID0gKCkgPT4gQm9vbGVhbihkaWdnKHRoaXMsIFwiYXR0cmlidXRlRGF0YVwiLCBcImNvbHVtblwiKSlcblxuICBpc1NlbGVjdGVkQnlEZWZhdWx0KCkge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWRCeURlZmF1bHQgPSBkaWdnKHRoaXMsIFwiYXR0cmlidXRlRGF0YVwiLCBcInNlbGVjdGVkX2J5X2RlZmF1bHRcIilcblxuICAgIGlmIChpc1NlbGVjdGVkQnlEZWZhdWx0IHx8IGlzU2VsZWN0ZWRCeURlZmF1bHQgPT09IG51bGwpIHJldHVybiB0cnVlXG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlzVHJhbnNsYXRlZCA9ICgpID0+IGRpZ2codGhpcywgXCJhdHRyaWJ1dGVEYXRhXCIsIFwidHJhbnNsYXRlZFwiKVxuICBuYW1lID0gKCkgPT4gZGlnZyh0aGlzLCBcImF0dHJpYnV0ZURhdGFcIiwgXCJuYW1lXCIpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxVQUFVO0FBQzdCLFNBQVFDLElBQUksUUFBTyxXQUFXO0FBRTlCLGVBQWUsTUFBTUMsMEJBQTBCLENBQUM7RUFDOUNDLFdBQVdBLENBQUNDLGFBQWEsRUFBRTtJQUN6QixJQUFJLENBQUNBLGFBQWEsR0FBR0EsYUFBYTtFQUNwQztFQUVBQyxTQUFTQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUMsSUFBSSxDQUFDQyxNQUFNLEVBQUU7TUFDaEIsTUFBTUMsVUFBVSxHQUFHTixJQUFJLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUM7TUFFeEQsSUFBSU0sVUFBVSxFQUFFO1FBQ2QsSUFBSSxDQUFDRCxNQUFNLEdBQUcsSUFBSU4sTUFBTSxDQUFDTyxVQUFVLENBQUM7TUFDdEM7SUFDRjtJQUVBLE9BQU8sSUFBSSxDQUFDRCxNQUFNO0VBQ3BCO0VBRUFFLFFBQVEsR0FBR0EsQ0FBQSxLQUFNQyxPQUFPLENBQUNSLElBQUksQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0VBRS9EUyxtQkFBbUJBLENBQUEsRUFBRztJQUNwQixNQUFNQSxtQkFBbUIsR0FBR1QsSUFBSSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUscUJBQXFCLENBQUM7SUFFOUUsSUFBSVMsbUJBQW1CLElBQUlBLG1CQUFtQixLQUFLLElBQUksRUFBRSxPQUFPLElBQUk7SUFFcEUsT0FBTyxLQUFLO0VBQ2Q7RUFFQUMsWUFBWSxHQUFHQSxDQUFBLEtBQU1WLElBQUksQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQztFQUM5RFcsSUFBSSxHQUFHQSxDQUFBLEtBQU1YLElBQUksQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQztBQUNsRCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { digg } from "diggerize";
|
|
2
|
+
export default class ApiMakerBaseModelColumn {
|
|
3
|
+
constructor(columnData) {
|
|
4
|
+
if (!columnData) {
|
|
5
|
+
throw new Error("No column data was given");
|
|
6
|
+
}
|
|
7
|
+
this.columnData = columnData;
|
|
8
|
+
}
|
|
9
|
+
getType = () => digg(this, "columnData", "type");
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiQXBpTWFrZXJCYXNlTW9kZWxDb2x1bW4iLCJjb25zdHJ1Y3RvciIsImNvbHVtbkRhdGEiLCJFcnJvciIsImdldFR5cGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzZS1tb2RlbC9jb2x1bW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJCYXNlTW9kZWxDb2x1bW4ge1xuICBjb25zdHJ1Y3Rvcihjb2x1bW5EYXRhKSB7XG4gICAgaWYgKCFjb2x1bW5EYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBjb2x1bW4gZGF0YSB3YXMgZ2l2ZW5cIilcbiAgICB9XG5cbiAgICB0aGlzLmNvbHVtbkRhdGEgPSBjb2x1bW5EYXRhXG4gIH1cblxuICBnZXRUeXBlID0gKCkgPT4gZGlnZyh0aGlzLCBcImNvbHVtbkRhdGFcIiwgXCJ0eXBlXCIpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLElBQUksUUFBTyxXQUFXO0FBRTlCLGVBQWUsTUFBTUMsdUJBQXVCLENBQUM7RUFDM0NDLFdBQVdBLENBQUNDLFVBQVUsRUFBRTtJQUN0QixJQUFJLENBQUNBLFVBQVUsRUFBRTtNQUNmLE1BQU0sSUFBSUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDO0lBQzdDO0lBRUEsSUFBSSxDQUFDRCxVQUFVLEdBQUdBLFVBQVU7RUFDOUI7RUFFQUUsT0FBTyxHQUFHQSxDQUFBLEtBQU1MLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQztBQUNsRCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { digg } from "diggerize";
|
|
2
|
+
import * as inflection from "inflection";
|
|
3
|
+
import modelClassRequire from "../model-class-require";
|
|
4
|
+
export default class ApiMakerBaseModelReflection {
|
|
5
|
+
constructor(reflectionData) {
|
|
6
|
+
this.reflectionData = reflectionData;
|
|
7
|
+
}
|
|
8
|
+
foreignKey = () => digg(this, "reflectionData", "foreignKey");
|
|
9
|
+
macro = () => digg(this, "reflectionData", "macro");
|
|
10
|
+
modelClass = () => modelClassRequire(inflection.singularize(inflection.camelize(digg(this, "reflectionData", "resource_name"))));
|
|
11
|
+
name = () => inflection.camelize(digg(this, "reflectionData", "name"), true);
|
|
12
|
+
through = () => digg(this, "reflectionData", "through");
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiaW5mbGVjdGlvbiIsIm1vZGVsQ2xhc3NSZXF1aXJlIiwiQXBpTWFrZXJCYXNlTW9kZWxSZWZsZWN0aW9uIiwiY29uc3RydWN0b3IiLCJyZWZsZWN0aW9uRGF0YSIsImZvcmVpZ25LZXkiLCJtYWNybyIsIm1vZGVsQ2xhc3MiLCJzaW5ndWxhcml6ZSIsImNhbWVsaXplIiwibmFtZSIsInRocm91Z2giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzZS1tb2RlbC9yZWZsZWN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi4vbW9kZWwtY2xhc3MtcmVxdWlyZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyQmFzZU1vZGVsUmVmbGVjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHJlZmxlY3Rpb25EYXRhKSB7XG4gICAgdGhpcy5yZWZsZWN0aW9uRGF0YSA9IHJlZmxlY3Rpb25EYXRhXG4gIH1cblxuICBmb3JlaWduS2V5ID0gKCkgPT4gZGlnZyh0aGlzLCBcInJlZmxlY3Rpb25EYXRhXCIsIFwiZm9yZWlnbktleVwiKVxuICBtYWNybyA9ICgpID0+IGRpZ2codGhpcywgXCJyZWZsZWN0aW9uRGF0YVwiLCBcIm1hY3JvXCIpXG4gIG1vZGVsQ2xhc3MgPSAoKSA9PiBtb2RlbENsYXNzUmVxdWlyZShpbmZsZWN0aW9uLnNpbmd1bGFyaXplKGluZmxlY3Rpb24uY2FtZWxpemUoZGlnZyh0aGlzLCBcInJlZmxlY3Rpb25EYXRhXCIsIFwicmVzb3VyY2VfbmFtZVwiKSkpKVxuICBuYW1lID0gKCkgPT4gaW5mbGVjdGlvbi5jYW1lbGl6ZShkaWdnKHRoaXMsIFwicmVmbGVjdGlvbkRhdGFcIiwgXCJuYW1lXCIpLCB0cnVlKVxuICB0aHJvdWdoID0gKCkgPT4gZGlnZyh0aGlzLCBcInJlZmxlY3Rpb25EYXRhXCIsIFwidGhyb3VnaFwiKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxJQUFJLFFBQU8sV0FBVztBQUM5QixPQUFPLEtBQUtDLFVBQVUsTUFBTSxZQUFZO0FBQ3hDLE9BQU9DLGlCQUFpQixNQUFNLHdCQUF3QjtBQUV0RCxlQUFlLE1BQU1DLDJCQUEyQixDQUFDO0VBQy9DQyxXQUFXQSxDQUFDQyxjQUFjLEVBQUU7SUFDMUIsSUFBSSxDQUFDQSxjQUFjLEdBQUdBLGNBQWM7RUFDdEM7RUFFQUMsVUFBVSxHQUFHQSxDQUFBLEtBQU1OLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0VBQzdETyxLQUFLLEdBQUdBLENBQUEsS0FBTVAsSUFBSSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7RUFDbkRRLFVBQVUsR0FBR0EsQ0FBQSxLQUFNTixpQkFBaUIsQ0FBQ0QsVUFBVSxDQUFDUSxXQUFXLENBQUNSLFVBQVUsQ0FBQ1MsUUFBUSxDQUFDVixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNoSVcsSUFBSSxHQUFHQSxDQUFBLEtBQU1WLFVBQVUsQ0FBQ1MsUUFBUSxDQUFDVixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQztFQUM1RVksT0FBTyxHQUFHQSxDQUFBLEtBQU1aLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDO0FBQ3pEIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { digg } from "diggerize";
|
|
2
|
+
import * as inflection from "inflection";
|
|
3
|
+
export default class ApiMakerBaseModelScope {
|
|
4
|
+
constructor(scopeData) {
|
|
5
|
+
this.scopeData = scopeData;
|
|
6
|
+
}
|
|
7
|
+
name() {
|
|
8
|
+
return inflection.camelize(digg(this, "scopeData", "name"), true);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiaW5mbGVjdGlvbiIsIkFwaU1ha2VyQmFzZU1vZGVsU2NvcGUiLCJjb25zdHJ1Y3RvciIsInNjb3BlRGF0YSIsIm5hbWUiLCJjYW1lbGl6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLW1vZGVsL3Njb3BlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJCYXNlTW9kZWxTY29wZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlRGF0YSkge1xuICAgIHRoaXMuc2NvcGVEYXRhID0gc2NvcGVEYXRhXG4gIH1cblxuICBuYW1lKCkge1xuICAgIHJldHVybiBpbmZsZWN0aW9uLmNhbWVsaXplKGRpZ2codGhpcywgXCJzY29wZURhdGFcIiwgXCJuYW1lXCIpLCB0cnVlKVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFFeEMsZUFBZSxNQUFNQyxzQkFBc0IsQ0FBQztFQUMxQ0MsV0FBV0EsQ0FBQ0MsU0FBUyxFQUFFO0lBQ3JCLElBQUksQ0FBQ0EsU0FBUyxHQUFHQSxTQUFTO0VBQzVCO0VBRUFDLElBQUlBLENBQUEsRUFBRztJQUNMLE9BQU9KLFVBQVUsQ0FBQ0ssUUFBUSxDQUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUM7RUFDbkU7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|