Skip to content

Commit 9b5ce59

Browse files
authored
Merge pull request #13 from simon360/feat/rename-for-consistency
Rename main exports for consistency
2 parents eb4a903 + 0b87e1e commit 9b5ce59

File tree

7 files changed

+53
-48
lines changed

7 files changed

+53
-48
lines changed

packages/class-references/README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,30 +23,30 @@ yarn add class-references
2323
Any time you want to add a class (eg. `MyClassName`) to an element (eg. `document.body`), use:
2424

2525
```js
26-
import { claimForClass } from "class-references";
26+
import { requestTokenForClass } from "class-references";
2727

28-
const token = claimForClass(document.body, "MyClassName");
28+
const token = requestTokenForClass(document.body, "MyClassName");
2929
```
3030

3131
When you're ready to remove the class, make sure you can recall the token, and use:
3232

3333
```js
34-
import { release } from "class-references";
34+
import { releaseToken } from "class-references";
3535

36-
release(document.body, token);
36+
releaseToken(document.body, token);
3737
```
3838

3939
### Advanced examples
4040

4141
```js
42-
import { claimForClass, release } from "class-references";
42+
import { releaseToken, requestTokenForClass } from "class-references";
4343

4444
const className = "u-preventScroll";
4545
const element = document.body;
4646

47-
const token1 = claimForClass(element, className); // Class is added
48-
const token2 = claimForClass(element, className); // Class was already added, but another token reserves it.
47+
const token1 = requestTokenForClass(element, className); // Class is added
48+
const token2 = requestTokenForClass(element, className); // Class was already added, but another token reserves it.
4949

50-
release(element, token1); // token1 is released; token2 not released, class remains
51-
release(element, token2); // both tokens are released, class removed
50+
releaseToken(element, token1); // token1 is released; token2 not released, class remains
51+
releaseToken(element, token2); // both tokens are released, class removed
5252
```

packages/class-references/__tests__/tests-index.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { getClassReferences } from "../src/element";
2-
import { claimForClass, release } from "../src/index";
2+
import { releaseToken, requestTokenForClass } from "../src/index";
33
import {
4-
newObjectWithoutReferenceToId,
4+
newObjectWithoutReferenceToToken,
55
newObjectWithReferenceToClass
66
} from "../src/referenceObject";
77

@@ -20,14 +20,14 @@ describe("index", () => {
2020
beforeEach(() => {
2121
(getClassReferences as any).mockReturnValue(fakeReferences);
2222
(newObjectWithReferenceToClass as any).mockReturnValue(fakeReferences);
23-
(newObjectWithoutReferenceToId as any).mockReturnValue(fakeReferences);
23+
(newObjectWithoutReferenceToToken as any).mockReturnValue(fakeReferences);
2424

2525
element = document.createElement("div");
2626
});
2727

2828
describe("claimForClass()", () => {
2929
it("should add the class to the element's class list", () => {
30-
claimForClass(element, testClassName);
30+
requestTokenForClass(element, testClassName);
3131

3232
expect(element.classList.contains(testClassName)).toBe(true);
3333
});
@@ -39,13 +39,13 @@ describe("index", () => {
3939
lastToken: token
4040
});
4141

42-
expect(claimForClass(element, testClassName)).toBe(token);
42+
expect(requestTokenForClass(element, testClassName)).toBe(token);
4343
});
4444
});
4545

4646
describe("release()", () => {
4747
it("should remove classes when all tokens are released", () => {
48-
(newObjectWithoutReferenceToId as any).mockReturnValue({
48+
(newObjectWithoutReferenceToToken as any).mockReturnValue({
4949
classes: {
5050
[testClassName]: []
5151
},
@@ -54,13 +54,13 @@ describe("index", () => {
5454

5555
element.classList.add(testClassName);
5656

57-
release(element, 142); // actual token is irrelevant; mock takes care of it
57+
releaseToken(element, 142); // actual token is irrelevant; mock takes care of it
5858

5959
expect(element.classList.contains(testClassName)).toBe(false);
6060
});
6161

6262
it("should not remove classes where tokens remain", () => {
63-
(newObjectWithoutReferenceToId as any).mockReturnValue({
63+
(newObjectWithoutReferenceToToken as any).mockReturnValue({
6464
classes: {
6565
[testClassName]: [3, 8]
6666
},
@@ -69,7 +69,7 @@ describe("index", () => {
6969

7070
element.classList.add(testClassName);
7171

72-
release(element, 142); // actual token is irrelevant; mock takes care of it
72+
releaseToken(element, 142); // actual token is irrelevant; mock takes care of it
7373

7474
expect(element.classList.contains(testClassName)).toBe(true);
7575
});

packages/class-references/__tests__/tests-referenceObject.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {
22
newObject,
3-
newObjectWithoutReferenceToId,
3+
newObjectWithoutReferenceToToken,
44
newObjectWithReferenceToClass
55
} from "../src/referenceObject";
66

@@ -46,7 +46,7 @@ describe("referenceObject", () => {
4646
describe("newObjectWithoutReferenceToId()", () => {
4747
it("should not change an empty object", () => {
4848
const obj = newObject();
49-
const objRemoved = newObjectWithoutReferenceToId(obj, 0);
49+
const objRemoved = newObjectWithoutReferenceToToken(obj, 0);
5050

5151
expect(objRemoved).toEqual(obj);
5252
});
@@ -56,7 +56,7 @@ describe("referenceObject", () => {
5656

5757
obj = newObjectWithReferenceToClass(obj, testClassName);
5858

59-
const objRemoved = newObjectWithoutReferenceToId(obj, 14);
59+
const objRemoved = newObjectWithoutReferenceToToken(obj, 14);
6060

6161
expect(objRemoved).toEqual(obj);
6262
});
@@ -65,7 +65,7 @@ describe("referenceObject", () => {
6565
let obj = newObject();
6666

6767
obj = newObjectWithReferenceToClass(obj, testClassName);
68-
obj = newObjectWithoutReferenceToId(obj, obj.lastToken);
68+
obj = newObjectWithoutReferenceToToken(obj, obj.lastToken);
6969

7070
expect(obj).toMatchSnapshot();
7171
});
@@ -74,8 +74,8 @@ describe("referenceObject", () => {
7474
let obj = newObject();
7575

7676
obj = newObjectWithReferenceToClass(obj, testClassName);
77-
obj = newObjectWithoutReferenceToId(obj, obj.lastToken);
78-
obj = newObjectWithoutReferenceToId(obj, obj.lastToken); // Call again to prune empties
77+
obj = newObjectWithoutReferenceToToken(obj, obj.lastToken);
78+
obj = newObjectWithoutReferenceToToken(obj, obj.lastToken); // Call again to prune empties
7979

8080
expect(obj).toMatchSnapshot();
8181
});
@@ -96,7 +96,7 @@ describe("referenceObject", () => {
9696
let objRemoved = { ...obj };
9797

9898
for (const token of removableTokens) {
99-
objRemoved = newObjectWithoutReferenceToId(objRemoved, token);
99+
objRemoved = newObjectWithoutReferenceToToken(objRemoved, token);
100100
}
101101

102102
expect(obj.classes[extraTestClassName]).toEqual(

packages/class-references/src/index.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { getClassReferences, setClassReferences } from "./element";
22
import {
3-
newObjectWithoutReferenceToId,
3+
newObjectWithoutReferenceToToken,
44
newObjectWithReferenceToClass
55
} from "./referenceObject";
66

@@ -11,7 +11,7 @@ import {
1111
* @param el the element to add a class to
1212
* @param className the class to add
1313
*/
14-
export const claimForClass = (el: HTMLElement, className: string) => {
14+
export const requestTokenForClass = (el: HTMLElement, className: string) => {
1515
const newReferences = newObjectWithReferenceToClass(
1616
getClassReferences(el),
1717
className
@@ -24,12 +24,14 @@ export const claimForClass = (el: HTMLElement, className: string) => {
2424
};
2525

2626
/**
27+
* Release a previously claimed token. Removes the associated class name if all
28+
* the tokens have been released.
2729
*
2830
* @param el the element to release a reference on
2931
* @param token the token to release
3032
*/
31-
export const release = (el: HTMLElement, token: number) => {
32-
const newReferences = newObjectWithoutReferenceToId(
33+
export const releaseToken = (el: HTMLElement, token: number) => {
34+
const newReferences = newObjectWithoutReferenceToToken(
3335
getClassReferences(el),
3436
token
3537
);

packages/class-references/src/referenceObject.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ export const newObject = (): IReferenceObject => ({
2121
});
2222

2323
/**
24-
* Create a new reference object by removing the id from the provided reference
25-
* object.
24+
* Create a new reference object by removing the token from the provided
25+
* reference object.
2626
*
2727
* @param obj a previous reference object
28-
* @param id the reference id that needs removing
28+
* @param token the reference id that needs removing
2929
*/
30-
export const newObjectWithoutReferenceToId = (
30+
export const newObjectWithoutReferenceToToken = (
3131
obj: IReferenceObject,
32-
id: number
32+
token: number
3333
): IReferenceObject => ({
3434
classes: {
3535
...(Object.entries(obj.classes) as ClassTokenListEntry[])
@@ -39,7 +39,7 @@ export const newObjectWithoutReferenceToId = (
3939
.map(
4040
([key, values]): ClassTokenListEntry => [
4141
key,
42-
values.filter(v => v !== id)
42+
values.filter(v => v !== token)
4343
]
4444
)
4545
// Convert back to object from entries

packages/react-class-references/__tests__/tests-ClassReference.tsx

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { claimForClass, release } from "class-references";
1+
import { releaseToken, requestTokenForClass } from "class-references";
22
import * as React from "react";
33
import * as TestRenderer from "react-test-renderer";
44
import ClassReference from "../src/ClassReference";
@@ -14,7 +14,7 @@ describe("<ClassReference />", () => {
1414
element = document.createElement("div");
1515
jest.resetAllMocks();
1616

17-
(claimForClass as any).mockReturnValue(fakeToken);
17+
(requestTokenForClass as any).mockReturnValue(fakeToken);
1818
});
1919

2020
it("should match default snapshot", () => {
@@ -34,7 +34,7 @@ describe("<ClassReference />", () => {
3434
</ClassReference>
3535
);
3636

37-
expect(claimForClass).toHaveBeenCalledWith(element, testClassName);
37+
expect(requestTokenForClass).toHaveBeenCalledWith(element, testClassName);
3838
});
3939

4040
it("should release on unmount", () => {
@@ -46,7 +46,7 @@ describe("<ClassReference />", () => {
4646

4747
renderer.unmount();
4848

49-
expect(release).toHaveBeenCalledWith(element, fakeToken);
49+
expect(releaseToken).toHaveBeenCalledWith(element, fakeToken);
5050
});
5151

5252
it("should release and claim on element swap", () => {
@@ -62,8 +62,11 @@ describe("<ClassReference />", () => {
6262

6363
renderer.update(<Test testElement={extraElement} />);
6464

65-
expect(release).toHaveBeenCalledWith(element, fakeToken);
66-
expect(claimForClass).toHaveBeenCalledWith(extraElement, testClassName);
65+
expect(releaseToken).toHaveBeenCalledWith(element, fakeToken);
66+
expect(requestTokenForClass).toHaveBeenCalledWith(
67+
extraElement,
68+
testClassName
69+
);
6770
});
6871

6972
it("should release and claim on class swap", () => {
@@ -81,7 +84,7 @@ describe("<ClassReference />", () => {
8184

8285
renderer.update(<Test classNameToAdd={extraClassName} />);
8386

84-
expect(release).toHaveBeenCalledWith(element, fakeToken);
85-
expect(claimForClass).toHaveBeenCalledWith(element, extraClassName);
87+
expect(releaseToken).toHaveBeenCalledWith(element, fakeToken);
88+
expect(requestTokenForClass).toHaveBeenCalledWith(element, extraClassName);
8689
});
8790
});

packages/react-class-references/src/ClassReference.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { claimForClass, release } from "class-references";
1+
import { releaseToken, requestTokenForClass } from "class-references";
22
import * as React from "react";
33

44
interface IProps {
@@ -14,7 +14,7 @@ interface IState {
1414
export default class ClassReference extends React.Component<IProps, IState> {
1515
public componentDidMount() {
1616
this.setState({
17-
token: claimForClass(this.props.element, this.props.classNameToAdd)
17+
token: requestTokenForClass(this.props.element, this.props.classNameToAdd)
1818
});
1919
}
2020

@@ -26,16 +26,16 @@ export default class ClassReference extends React.Component<IProps, IState> {
2626
prevProps.element !== element ||
2727
prevProps.classNameToAdd !== classNameToAdd
2828
) {
29-
release(prevProps.element, token);
29+
releaseToken(prevProps.element, token);
3030

3131
this.setState({
32-
token: claimForClass(element, classNameToAdd)
32+
token: requestTokenForClass(element, classNameToAdd)
3333
});
3434
}
3535
}
3636

3737
public componentWillUnmount() {
38-
release(this.props.element, this.state.token);
38+
releaseToken(this.props.element, this.state.token);
3939
}
4040

4141
public render() {

0 commit comments

Comments
 (0)