@kaspernj/api-maker 1.0.166 → 1.0.169
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/package.json +1 -1
- package/src/collection.cjs +2 -1
- package/src/deserializer.cjs +3 -2
- package/src/{devise.cjs → devise.mjs} +20 -19
- package/src/model-class-require.cjs +9 -0
- package/src/{model-recipes-loader.cjs → model-recipes-loader.mjs} +3 -3
- package/src/{model-recipes-model-loader.cjs → model-recipes-model-loader.mjs} +5 -5
- package/src/model-recipes.mjs.erb +3 -0
- package/src/models-response-reader.cjs +2 -1
- package/src/models.cjs +2 -2
- package/src/preloaded.cjs +2 -2
- package/src/router.jsx +1 -1
- package/src/{session-status-updater.cjs → session-status-updater.mjs} +8 -8
- package/src/{translated-collections-data.js.erb → translated-collections-data.mjs.erb} +0 -0
- package/src/{translated-collections.cjs → translated-collections.mjs} +2 -2
- package/src/validation-errors.cjs +2 -1
- package/src/with-router.jsx +2 -1
- package/src/model-recipes.cjs.erb +0 -3
package/package.json
CHANGED
package/src/collection.cjs
CHANGED
|
@@ -3,6 +3,7 @@ const CommandsPool = require("./commands-pool.cjs")
|
|
|
3
3
|
const {digg} = require("diggerize")
|
|
4
4
|
const inflection = require("inflection")
|
|
5
5
|
const {merge} = require("./merge.cjs")
|
|
6
|
+
const modelClassRequire = require("./model-class-require.cjs")
|
|
6
7
|
const Result = require("./result.cjs")
|
|
7
8
|
|
|
8
9
|
class ApiMakerCollection {
|
|
@@ -212,7 +213,7 @@ class ApiMakerCollection {
|
|
|
212
213
|
modelClass () {
|
|
213
214
|
const modelName = digg(this.args.modelClass.modelClassData(), "name")
|
|
214
215
|
|
|
215
|
-
return
|
|
216
|
+
return modelClassRequire(modelName)
|
|
216
217
|
}
|
|
217
218
|
|
|
218
219
|
clone () {
|
package/src/deserializer.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const {digg} = require("diggerize")
|
|
2
2
|
const inflection = require("inflection")
|
|
3
|
+
const modelClassRequire = require("./model-class-require.cjs")
|
|
3
4
|
const ModelsResponseReader = require("./models-response-reader.cjs")
|
|
4
5
|
const Money = require("js-money")
|
|
5
6
|
|
|
@@ -32,14 +33,14 @@ module.exports = class ApiMakerDeserializer {
|
|
|
32
33
|
return Money.fromInteger(cents, currency)
|
|
33
34
|
} else if (object.api_maker_type == "model") {
|
|
34
35
|
const modelClassName = inflection.classify(digg(object, "model_name"))
|
|
35
|
-
const ModelClass =
|
|
36
|
+
const ModelClass = modelClassRequire(modelClassName)
|
|
36
37
|
const data = ApiMakerDeserializer.parse(digg(object, "serialized"))
|
|
37
38
|
const model = new ModelClass({data, isNewRecord: false})
|
|
38
39
|
|
|
39
40
|
return model
|
|
40
41
|
} else if (object.api_maker_type == "resource") {
|
|
41
42
|
const modelClassName = inflection.classify(digg(object, "name"))
|
|
42
|
-
const ModelClass =
|
|
43
|
+
const ModelClass = modelClassRequire(modelClassName)
|
|
43
44
|
|
|
44
45
|
return ModelClass
|
|
45
46
|
} else {
|
|
@@ -1,29 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import CanCan from "./can-can.cjs"
|
|
2
|
+
import Deserializer from "./deserializer.cjs"
|
|
3
|
+
import {digg} from "diggerize"
|
|
4
|
+
import EventEmitter from "events"
|
|
5
|
+
import inflection from "inflection"
|
|
6
|
+
import modelClassRequire from "./model-class-require.cjs"
|
|
7
|
+
import Services from "./services.cjs"
|
|
8
|
+
|
|
9
|
+
export default class ApiMakerDevise {
|
|
9
10
|
static callSignOutEvent (args) {
|
|
10
11
|
ApiMakerDevise.events().emit("onDeviseSignOut", {args})
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
static current () {
|
|
14
|
-
if (!
|
|
15
|
-
|
|
15
|
+
if (!globalThis.currentApiMakerDevise)
|
|
16
|
+
globalThis.currentApiMakerDevise = new ApiMakerDevise()
|
|
16
17
|
|
|
17
|
-
return
|
|
18
|
+
return globalThis.currentApiMakerDevise
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
static events () {
|
|
21
|
-
if (!
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
if (!globalThis.apiMakerDeviseEvents) {
|
|
23
|
+
globalThis.apiMakerDeviseEvents = new EventEmitter()
|
|
24
|
+
globalThis.apiMakerDeviseEvents.setMaxListeners(1000)
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
return
|
|
27
|
+
return globalThis.apiMakerDeviseEvents
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
static addUserScope (scope) {
|
|
@@ -82,8 +83,8 @@ module.exports = class ApiMakerDevise {
|
|
|
82
83
|
await CanCan.current().resetAbilities()
|
|
83
84
|
|
|
84
85
|
// Cannot use the class because they would both import each other
|
|
85
|
-
if (
|
|
86
|
-
|
|
86
|
+
if (globalThis.apiMakerSessionStatusUpdater) {
|
|
87
|
+
globalThis.apiMakerSessionStatusUpdater.updateSessionStatus()
|
|
87
88
|
}
|
|
88
89
|
|
|
89
90
|
ApiMakerDevise.setSignedOut(args)
|
|
@@ -104,7 +105,7 @@ module.exports = class ApiMakerDevise {
|
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
loadCurrentScope (scope) {
|
|
107
|
-
const scopeData =
|
|
108
|
+
const scopeData = globalThis.apiMakerDeviseCurrent[scope]
|
|
108
109
|
|
|
109
110
|
if (!scopeData) return null
|
|
110
111
|
|
|
@@ -113,7 +114,7 @@ module.exports = class ApiMakerDevise {
|
|
|
113
114
|
// Might be a collection with preloaded relationships
|
|
114
115
|
if (Array.isArray(parsedScopeData)) return parsedScopeData[0]
|
|
115
116
|
|
|
116
|
-
const ModelClass =
|
|
117
|
+
const ModelClass = modelClassRequire(scope)
|
|
117
118
|
const modelInstance = new ModelClass({data: parsedScopeData})
|
|
118
119
|
|
|
119
120
|
return modelInstance
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const {digg} = require("diggerize")
|
|
2
|
+
const inflection = require("inflection")
|
|
3
|
+
|
|
4
|
+
module.exports = (modelName) => {
|
|
5
|
+
const requireName = inflection.camelize(modelName)
|
|
6
|
+
const ModelClass = digg(require("@kaspernj/api-maker/src/models.cjs"), requireName)
|
|
7
|
+
|
|
8
|
+
return ModelClass
|
|
9
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import {digg, digs} from "diggerize"
|
|
2
|
+
import ModelRecipesModelLoader from "./model-recipes-model-loader.mjs"
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
export default class ModelRecipesLoader {
|
|
5
5
|
constructor ({recipes}) {
|
|
6
6
|
this.modelClasses = {}
|
|
7
7
|
this.recipes = recipes
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import BaseModel from "./base-model.cjs"
|
|
2
|
+
import Collection from "./collection.cjs"
|
|
3
|
+
import {digg, digs} from "diggerize"
|
|
4
|
+
import inflection from "inflection"
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
export default class ApiMakerModelRecipesModelLoader {
|
|
7
7
|
constructor ({modelRecipe, modelRecipesLoader}) {
|
|
8
8
|
if (!modelRecipe) throw new Error("No 'modelRecipe' was given")
|
|
9
9
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const {digg} = require("diggerize")
|
|
2
2
|
const inflection = require("inflection")
|
|
3
|
+
const modelClassRequire = require("./model-class-require.cjs")
|
|
3
4
|
const Preloaded = require("./preloaded.cjs")
|
|
4
5
|
|
|
5
6
|
module.exports = class ModelsResponseReader {
|
|
@@ -23,7 +24,7 @@ module.exports = class ModelsResponseReader {
|
|
|
23
24
|
|
|
24
25
|
for (const modelType in this.response.data) {
|
|
25
26
|
const modelClassName = inflection.classify(modelType)
|
|
26
|
-
const ModelClass =
|
|
27
|
+
const ModelClass = modelClassRequire(modelClassName)
|
|
27
28
|
const collectionName = ModelClass.modelClassData().collectionName
|
|
28
29
|
|
|
29
30
|
for (const modelId of this.response.data[modelType]) {
|
package/src/models.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const modelRecipes = require("./model-recipes.
|
|
2
|
-
const ModelRecipesLoader = require("./model-recipes-loader.
|
|
1
|
+
const modelRecipes = require("./model-recipes.mjs.erb").default
|
|
2
|
+
const ModelRecipesLoader = require("./model-recipes-loader.mjs").default
|
|
3
3
|
|
|
4
4
|
const loader = new ModelRecipesLoader({recipes: modelRecipes})
|
|
5
5
|
const result = loader.load()
|
package/src/preloaded.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const {digg} = require("diggerize")
|
|
2
1
|
const inflection = require("inflection")
|
|
2
|
+
const modelClassRequire = require("./model-class-require.cjs")
|
|
3
3
|
|
|
4
4
|
module.exports = class ApiMakerPreloaded {
|
|
5
5
|
constructor (response) {
|
|
@@ -12,7 +12,7 @@ module.exports = class ApiMakerPreloaded {
|
|
|
12
12
|
|
|
13
13
|
for (const preloadedType in this.response.preloaded) {
|
|
14
14
|
const modelClassName = inflection.classify(preloadedType)
|
|
15
|
-
const ModelClass =
|
|
15
|
+
const ModelClass = modelClassRequire(modelClassName)
|
|
16
16
|
|
|
17
17
|
for (const preloadedId in this.response.preloaded[preloadedType]) {
|
|
18
18
|
const preloadedData = this.response.preloaded[preloadedType][preloadedId]
|
package/src/router.jsx
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import Devise from "./devise.mjs"
|
|
2
|
+
import inflection from "inflection"
|
|
3
|
+
import wakeEvent from "wake-event"
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
export default class ApiMakerSessionStatusUpdater {
|
|
6
6
|
static current () {
|
|
7
|
-
if (!
|
|
8
|
-
|
|
7
|
+
if (!globalThis.apiMakerSessionStatusUpdater)
|
|
8
|
+
globalThis.apiMakerSessionStatusUpdater = new ApiMakerSessionStatusUpdater()
|
|
9
9
|
|
|
10
|
-
return
|
|
10
|
+
return globalThis.apiMakerSessionStatusUpdater
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
constructor (args = {}) {
|
|
@@ -20,7 +20,7 @@ module.exports = class ApiMakerSessionStatusUpdater {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
connectOnlineEvent () {
|
|
23
|
-
|
|
23
|
+
window.addEventListener("online", () => this.updateSessionStatus(), false)
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
connectWakeEvent () {
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import {digg} from "diggerize"
|
|
2
|
+
import translatedCollectionsData from "./translated-collections-data.mjs.erb"
|
|
3
3
|
|
|
4
4
|
export default class ApiMakerTranslatedCollections {
|
|
5
5
|
static get (modelClass, collectionName) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const {digg, digs} = require("diggerize")
|
|
2
2
|
const inflection = require("inflection")
|
|
3
|
+
const modelClassRequire = require("./model-class-require.cjs")
|
|
3
4
|
|
|
4
5
|
class ValidationError {
|
|
5
6
|
constructor (args) {
|
|
@@ -65,7 +66,7 @@ class ValidationError {
|
|
|
65
66
|
getModelClass () {
|
|
66
67
|
const modelName = inflection.classify(digg(this, "modelName"))
|
|
67
68
|
|
|
68
|
-
return
|
|
69
|
+
return modelClassRequire(modelName)
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
setHandled () {
|
package/src/with-router.jsx
CHANGED
|
@@ -116,9 +116,10 @@ export default (WrapperComponent) => class WithRouter extends React.Component {
|
|
|
116
116
|
render() {
|
|
117
117
|
const {path, routes, routeDefinitions, ...restProps} = this.props
|
|
118
118
|
const matchingRoute = this.findMatchingRoute()
|
|
119
|
+
const params = matchingRoute?.params || {}
|
|
119
120
|
const match = {
|
|
120
121
|
matchingRoute,
|
|
121
|
-
params
|
|
122
|
+
params
|
|
122
123
|
}
|
|
123
124
|
|
|
124
125
|
return (
|