Skip to content

Commit

Permalink
hide ADAPTERS map from implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
yungcheng committed Feb 20, 2018
1 parent 89973d6 commit 381db1c
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 3 deletions.
7 changes: 7 additions & 0 deletions packages/lwc-wire-service/src/__tests__/main.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,12 @@ describe("main.js", () => {
const wireService = registerWireService(register, mockAdapters);
expect(wireService.unregister).toBeDefined();
});
it("runtime wire adapter registration management", () => {
const register = jest.fn();
const wireService = registerWireService(register, mockAdapters);
const foo = () => {};
wireService.register(foo);
expect(wireService.unregister(foo.name)).toBe(true);
});
});
});
11 changes: 8 additions & 3 deletions packages/lwc-wire-service/src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,12 @@
* This service is Salesforce-agnostic. The wire adapters must be provided to this module.
*/

import { setWireAdapters, installWiring } from './wire-service';
import {
setWireAdapters,
installWiring,
registerWireAdapter,
unregisterWireAdapter
} from './wire-service';

/**
* The wire service.
Expand Down Expand Up @@ -46,10 +51,10 @@ export default function registerWireService(register, ...adapterGenerators) {

return {
register: (adapter) => {
ADAPTERS.set(adapter.name, adapter);
registerWireAdapter(adapter);
},
unregister: (adapterName) => {
ADAPTERS.delete(adapterName);
return unregisterWireAdapter(adapterName);
}
};
}
16 changes: 16 additions & 0 deletions packages/lwc-wire-service/src/wire-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -241,3 +241,19 @@ export function installWiring(cmp, def) {
export function setWireAdapters(adapterGenerators) {
ADAPTERS = buildWireAdapterMap(adapterGenerators);
}

/**
* Sets the wire adapter.
* @param {Function} adapter Wire adapter function.
*/
export function registerWireAdapter(adapter) {
ADAPTERS.set(adapter.name, adapter);
}

/**
* Removes the wire adapter.
* @param {String} adapterName Wire adapter function name.
*/
export function unregisterWireAdapter(adapterName) {
return ADAPTERS.delete(adapterName);
}

0 comments on commit 381db1c

Please sign in to comment.