Prefix private functions with underscore
This commit is contained in:
parent
fa209fb98f
commit
8dfaa5619f
2 changed files with 30 additions and 29 deletions
|
@ -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
|
||||||
|
|
|
@ -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',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue