Skip to content

Commit 22bee89

Browse files
committed
use underscore to convert to and from camelcase
1 parent da765ec commit 22bee89

File tree

5 files changed

+11
-7
lines changed

5 files changed

+11
-7
lines changed

src/model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
IncludeScope
2424
} from "./scope"
2525
import { JsonapiTypeRegistry } from "./jsonapi-type-registry"
26-
import { camelize } from "inflected"
26+
import { camelize, underscore } from "inflected"
2727
import { ILogger, logger as defaultLogger } from "./logger"
2828
import { MiddlewareStack, BeforeFilter, AfterFilter } from "./middleware-stack"
2929

@@ -468,7 +468,7 @@ export class JSORMBase {
468468
let attributeName = key
469469

470470
if (this.klass.camelizeKeys) {
471-
attributeName = camelize(key, false)
471+
attributeName = camelize(underscore(key), false)
472472
}
473473

474474
if (key === "id" || this.klass.attributeList[attributeName]) {

src/util/deserialize.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { JsonapiTypeRegistry } from "../jsonapi-type-registry"
22
import { JSORMBase } from "../model"
3-
import { camelize } from "inflected"
3+
import { camelize, underscore } from "inflected"
44
import {
55
IncludeDirective,
66
IncludeScopeHash,
@@ -241,7 +241,11 @@ class Deserializer {
241241
let relationName = key
242242

243243
if (instance.klass.camelizeKeys) {
244-
relationName = camelize(key, false)
244+
if (instance.klass.letterCase === "dasherized") {
245+
relationName = camelize(underscore(key), false)
246+
} else {
247+
relationName = camelize(key, false)
248+
}
245249
}
246250

247251
if (instance.klass.attributeList[relationName]) {

src/util/write-payload.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ export class WritePayload<T extends JSORMBase> {
257257

258258
private _letterCaseKey(key): string {
259259
if (this.model.klass.letterCase == "dasherized") {
260-
return dasherize(key)
260+
return dasherize(underscore(key))
261261
}
262262
return underscore(key)
263263
}

test/unit/model-attributes.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe("Model attributes", () => {
2020
expect(person.firstName).to.eq("Joe")
2121
})
2222

23-
xit("camelizes dasherized strings", function() {
23+
it("camelizes dasherized strings", function() {
2424
const person = new Person({ "first-name": "Joe" })
2525
expect(person.firstName).to.eq("Joe")
2626
})

test/unit/write-payload.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ describe("WritePayload", () => {
1616
})
1717
})
1818

19-
xit("dasherizes attributes", function() {
19+
it("dasherizes attributes", function() {
2020
let person = new PersonWithDasherizedKeys({ first_name: "Joe" })
2121
let payload = new WritePayload(person, true)
2222
expect(payload.asJSON()).to.deep.equal({

0 commit comments

Comments
 (0)