Prefix private functions with underscore

This commit is contained in:
Daniel Gasienica 2018-03-14 11:45:35 -04:00
parent fa209fb98f
commit 8dfaa5619f
2 changed files with 30 additions and 29 deletions

View file

@ -32,8 +32,7 @@ exports.isValid = () =>
true; true;
// Schema // Schema
// Inherits existing schema from attachments: exports.initializeSchemaVersion = (message) => {
exports.inheritSchemaVersion = (message) => {
const isInitialized = SchemaVersion.isValid(message.schemaVersion) && const isInitialized = SchemaVersion.isValid(message.schemaVersion) &&
message.schemaVersion >= 1; message.schemaVersion >= 1;
if (isInitialized) { if (isInitialized) {
@ -72,7 +71,7 @@ exports.inheritSchemaVersion = (message) => {
// type UpgradeStep = Message -> Promise Message // type UpgradeStep = Message -> Promise Message
// SchemaVersion -> UpgradeStep -> UpgradeStep // SchemaVersion -> UpgradeStep -> UpgradeStep
exports.withSchemaVersion = (schemaVersion, upgrade) => { exports._withSchemaVersion = (schemaVersion, upgrade) => {
if (!SchemaVersion.isValid(schemaVersion)) { if (!SchemaVersion.isValid(schemaVersion)) {
throw new TypeError('`schemaVersion` is invalid'); throw new TypeError('`schemaVersion` is invalid');
} }
@ -82,7 +81,7 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => {
return async (message) => { return async (message) => {
if (!exports.isValid(message)) { if (!exports.isValid(message)) {
console.log('Message.withSchemaVersion: Invalid input message:', message); console.log('Message._withSchemaVersion: Invalid input message:', message);
return message; return message;
} }
@ -95,7 +94,7 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => {
const hasExpectedVersion = message.schemaVersion === expectedVersion; const hasExpectedVersion = message.schemaVersion === expectedVersion;
if (!hasExpectedVersion) { if (!hasExpectedVersion) {
console.log( console.log(
'WARNING: Message.withSchemaVersion: Unexpected version:', 'WARNING: Message._withSchemaVersion: Unexpected version:',
`Expected message to have version ${expectedVersion},`, `Expected message to have version ${expectedVersion},`,
`but got ${message.schemaVersion}.`, `but got ${message.schemaVersion}.`,
message message
@ -108,7 +107,7 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => {
upgradedMessage = await upgrade(message); upgradedMessage = await upgrade(message);
} catch (error) { } catch (error) {
console.log( console.log(
'Message.withSchemaVersion: error:', 'Message._withSchemaVersion: error:',
// TODO: Use `Errors.toLogFormat`: // TODO: Use `Errors.toLogFormat`:
error && error.stack ? error.stack : error error && error.stack ? error.stack : error
); );
@ -117,7 +116,7 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => {
if (!exports.isValid(upgradedMessage)) { if (!exports.isValid(upgradedMessage)) {
console.log( console.log(
'Message.withSchemaVersion: Invalid upgraded message:', 'Message._withSchemaVersion: Invalid upgraded message:',
upgradedMessage upgradedMessage
); );
return message; return message;
@ -133,8 +132,10 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => {
// Public API // Public API
// mapAttachments :: (Attachment -> Promise Attachment) -> Message -> Promise Message // _mapAttachments :: (Attachment -> Promise Attachment) ->
exports.mapAttachments = upgradeAttachment => async message => // Message ->
// Promise Message
exports._mapAttachments = upgradeAttachment => async message =>
Object.assign( Object.assign(
{}, {},
message, message,
@ -143,13 +144,13 @@ exports.mapAttachments = upgradeAttachment => async message =>
} }
); );
const toVersion1 = exports.withSchemaVersion( const toVersion1 = exports._withSchemaVersion(
1, 1,
exports.mapAttachments(Attachment.autoOrientJPEG) exports._mapAttachments(Attachment.autoOrientJPEG)
); );
const toVersion2 = exports.withSchemaVersion( const toVersion2 = exports._withSchemaVersion(
2, 2,
exports.mapAttachments(Attachment.replaceUnicodeOrderOverrides) exports._mapAttachments(Attachment.replaceUnicodeOrderOverrides)
); );
// UpgradeStep // UpgradeStep

View file

@ -4,7 +4,7 @@ const Message = require('../../../js/modules/types/message');
describe('Message', () => { describe('Message', () => {
describe('inheritSchemaVersion', () => { describe('initializeSchemaVersion', () => {
it('should ignore messages with previously inherited schema', () => { it('should ignore messages with previously inherited schema', () => {
const input = { const input = {
body: 'Imagine there is no heaven…', body: 'Imagine there is no heaven…',
@ -15,7 +15,7 @@ describe('Message', () => {
schemaVersion: 2, schemaVersion: 2,
}; };
const actual = Message.inheritSchemaVersion(input); const actual = Message.initializeSchemaVersion(input);
assert.deepEqual(actual, expected); assert.deepEqual(actual, expected);
}); });
@ -31,7 +31,7 @@ describe('Message', () => {
schemaVersion: 0, schemaVersion: 0,
}; };
const actual = Message.inheritSchemaVersion(input); const actual = Message.initializeSchemaVersion(input);
assert.deepEqual(actual, expected); assert.deepEqual(actual, expected);
}); });
}); });
@ -55,7 +55,7 @@ describe('Message', () => {
schemaVersion: 7, schemaVersion: 7,
}; };
const actual = Message.inheritSchemaVersion(input); const actual = Message.initializeSchemaVersion(input);
assert.deepEqual(actual, expected); assert.deepEqual(actual, expected);
}); });
}); });
@ -116,9 +116,9 @@ describe('Message', () => {
const v3 = async message => const v3 = async message =>
Object.assign({}, message, { hasUpgradedToVersion3: true }); Object.assign({}, message, { hasUpgradedToVersion3: true });
const toVersion1 = Message.withSchemaVersion(1, v1); const toVersion1 = Message._withSchemaVersion(1, v1);
const toVersion2 = Message.withSchemaVersion(2, v2); const toVersion2 = Message._withSchemaVersion(2, v2);
const toVersion3 = Message.withSchemaVersion(3, v3); const toVersion3 = Message._withSchemaVersion(3, v3);
const upgradeSchema = async message => const upgradeSchema = async message =>
toVersion3(await toVersion2(await toVersion1(message))); toVersion3(await toVersion2(await toVersion1(message)));
@ -156,9 +156,9 @@ describe('Message', () => {
const v3 = async attachment => const v3 = async attachment =>
Object.assign({}, attachment, { hasUpgradedToVersion3: true }); Object.assign({}, attachment, { hasUpgradedToVersion3: true });
const toVersion1 = Message.withSchemaVersion(1, v1); const toVersion1 = Message._withSchemaVersion(1, v1);
const toVersion2 = Message.withSchemaVersion(2, v2); const toVersion2 = Message._withSchemaVersion(2, v2);
const toVersion3 = Message.withSchemaVersion(3, v3); const toVersion3 = Message._withSchemaVersion(3, v3);
// NOTE: We upgrade to 3 before 2, i.e. the pipeline should abort: // NOTE: We upgrade to 3 before 2, i.e. the pipeline should abort:
const upgradeSchema = async attachment => const upgradeSchema = async attachment =>
@ -170,18 +170,18 @@ describe('Message', () => {
}); });
}); });
describe('withSchemaVersion', () => { describe('_withSchemaVersion', () => {
it('should require a version number', () => { it('should require a version number', () => {
const toVersionX = () => {}; const toVersionX = () => {};
assert.throws( assert.throws(
() => Message.withSchemaVersion(toVersionX, 2), () => Message._withSchemaVersion(toVersionX, 2),
'`schemaVersion` is invalid' '`schemaVersion` is invalid'
); );
}); });
it('should require an upgrade function', () => { it('should require an upgrade function', () => {
assert.throws( assert.throws(
() => Message.withSchemaVersion(2, 3), () => Message._withSchemaVersion(2, 3),
'`upgrade` must be a function' '`upgrade` must be a function'
); );
}); });
@ -189,7 +189,7 @@ describe('Message', () => {
it('should skip upgrading if message has already been upgraded', async () => { it('should skip upgrading if message has already been upgraded', async () => {
const upgrade = async message => const upgrade = async message =>
Object.assign({}, message, { foo: true }); Object.assign({}, message, { foo: true });
const upgradeWithVersion = Message.withSchemaVersion(3, upgrade); const upgradeWithVersion = Message._withSchemaVersion(3, upgrade);
const input = { const input = {
id: 'guid-guid-guid-guid', id: 'guid-guid-guid-guid',
@ -207,7 +207,7 @@ describe('Message', () => {
const upgrade = async () => { const upgrade = async () => {
throw new Error('boom!'); throw new Error('boom!');
}; };
const upgradeWithVersion = Message.withSchemaVersion(3, upgrade); const upgradeWithVersion = Message._withSchemaVersion(3, upgrade);
const input = { const input = {
id: 'guid-guid-guid-guid', id: 'guid-guid-guid-guid',
@ -223,7 +223,7 @@ describe('Message', () => {
it('should return original message if upgrade function returns null', async () => { it('should return original message if upgrade function returns null', async () => {
const upgrade = async () => null; const upgrade = async () => null;
const upgradeWithVersion = Message.withSchemaVersion(3, upgrade); const upgradeWithVersion = Message._withSchemaVersion(3, upgrade);
const input = { const input = {
id: 'guid-guid-guid-guid', id: 'guid-guid-guid-guid',