12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- module.exports = require('machine').build({
- friendlyName: 'Validate connection',
- description: 'Check if this looks like a valid MySQL connection instance.',
- sideEffects: 'cacheable',
- sync: true,
- inputs: {
- connection: {
- friendlyName: 'Connection',
- description: 'An active database connection.',
- extendedDescription: 'The provided database connection instance must still be active. Only database connection instances created by the `getConnection()` machine in this driver are supported.',
- example: '===',
- required: true
- }
- },
- exits: {
- success: {
- outputFriendlyName: 'Is probably MySQL connection',
- outputDescription: 'If the provided appears to be a valid MySQL connection instance.',
- outputExample: true
- },
- },
- fn: function validateConnection(inputs, exits) {
- var _ = require('@sailshq/lodash');
- // Validate some basic assertions about the provided connection.
- // (this doesn't guarantee it's still active or anything, but it does let
- // us know that it at least _HAS_ the properly formatted methods and properties
- // necessary for internal use in this Waterline driver)
- return exits.success(
- _.isObject(inputs.connection) &&
- _.isFunction(inputs.connection.query) &&
- _.isFunction(inputs.connection.destroy) &&
- (
- // • If you are pooling: `.release()`
- _.isFunction(inputs.connection.release) ||
- // • AND/OR if you are not pooling: `.end()`
- _.isFunction(inputs.connection.end)
- )
- );
- }
- });
|