aquameta-datum
Version:
Service layer for the Aquameta database API
31 lines (30 loc) • 4.09 kB
JavaScript
const defaultConfig = {
url: 'api',
version: 'v1',
sessionCookie: 'SESSION_ID',
cacheRequestMilliseconds: 5000,
sockets: false,
rawResponse: false
};
const ENDPOINT = Symbol.for('endpoint');
const CONNECTION = Symbol.for('connection');
export const isEndpointClient = client => {
return client.type === ENDPOINT;
};
export const isConnectionClient = true ? client => {
return client.type === CONNECTION;
} : null;
export const isInvalidClient = client => !(isEndpointClient(client) || isConnectionClient(client));
export function endpoint(config) {
return createClient(ENDPOINT, config);
}
export const connection = true ? function connection(config) {
return createClient(CONNECTION, config);
} : null;
function createClient(type, config) {
return { ...defaultConfig,
...config,
type
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNsaWVudC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0Q29uZmlnIiwidXJsIiwidmVyc2lvbiIsInNlc3Npb25Db29raWUiLCJjYWNoZVJlcXVlc3RNaWxsaXNlY29uZHMiLCJzb2NrZXRzIiwicmF3UmVzcG9uc2UiLCJFTkRQT0lOVCIsIlN5bWJvbCIsImZvciIsIkNPTk5FQ1RJT04iLCJpc0VuZHBvaW50Q2xpZW50IiwiY2xpZW50IiwidHlwZSIsImlzQ29ubmVjdGlvbkNsaWVudCIsImlzSW52YWxpZENsaWVudCIsImVuZHBvaW50IiwiY29uZmlnIiwiY3JlYXRlQ2xpZW50IiwiY29ubmVjdGlvbiJdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTUEsYUFBNEIsR0FBRztBQUNuQ0MsRUFBQUEsR0FBRyxFQUFFLEtBRDhCO0FBRW5DQyxFQUFBQSxPQUFPLEVBQUUsSUFGMEI7QUFHbkNDLEVBQUFBLGFBQWEsRUFBRSxZQUhvQjtBQUluQ0MsRUFBQUEsd0JBQXdCLEVBQUUsSUFKUztBQUtuQ0MsRUFBQUEsT0FBTyxFQUFFLEtBTDBCO0FBTW5DQyxFQUFBQSxXQUFXLEVBQUU7QUFOc0IsQ0FBckM7QUFTQSxNQUFNQyxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsR0FBUCxDQUFXLFVBQVgsQ0FBakI7QUFDQSxNQUFNQyxVQUFVLEdBQUdGLE1BQU0sQ0FBQ0MsR0FBUCxDQUFXLFlBQVgsQ0FBbkI7QUFFQSxPQUFPLE1BQU1FLGdCQUFnQixHQUFJQyxNQUFELElBQTZCO0FBQzNELFNBQU9BLE1BQU0sQ0FBQ0MsSUFBUCxLQUFnQk4sUUFBdkI7QUFDRCxDQUZNO0FBSVAsT0FBTyxNQUFNTyxrQkFBa0IsR0FBRyxPQUFZRixNQUFELElBQTZCO0FBQ3hFLFNBQU9BLE1BQU0sQ0FBQ0MsSUFBUCxLQUFnQkgsVUFBdkI7QUFDRCxDQUZpQyxHQUU5QixJQUZHO0FBSVAsT0FBTyxNQUFNSyxlQUFlLEdBQUlILE1BQUQsSUFDN0IsRUFBRUQsZ0JBQWdCLENBQUNDLE1BQUQsQ0FBaEIsSUFBNEJFLGtCQUFrQixDQUFDRixNQUFELENBQWhELENBREs7QUFHUCxPQUFPLFNBQVNJLFFBQVQsQ0FBa0JDLE1BQWxCLEVBQWtEO0FBQ3ZELFNBQU9DLFlBQVksQ0FBQ1gsUUFBRCxFQUFXVSxNQUFYLENBQW5CO0FBQ0Q7QUFFRCxPQUFPLE1BQU1FLFVBQVUsR0FBRyxPQUFXLFNBQVNBLFVBQVQsQ0FBb0JGLE1BQXBCLEVBQW9EO0FBQ3ZGLFNBQU9DLFlBQVksQ0FBQ1IsVUFBRCxFQUFhTyxNQUFiLENBQW5CO0FBQ0QsQ0FGeUIsR0FFdEIsSUFGRzs7QUFJUCxTQUFTQyxZQUFULENBQXNCTCxJQUF0QixFQUFvQ0ksTUFBcEMsRUFBb0U7QUFDbEUsU0FBTyxFQUNMLEdBQUdqQixhQURFO0FBRUwsT0FBR2lCLE1BRkU7QUFHTEosSUFBQUE7QUFISyxHQUFQO0FBS0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuXG5pbXBvcnQgdHlwZSB7Q2xpZW50LCBDbGllbnRPcHRpb25zfSBmcm9tICcuL3R5cGVzLmpzJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogQ2xpZW50T3B0aW9ucyA9IHtcbiAgdXJsOiAnYXBpJyxcbiAgdmVyc2lvbjogJ3YxJyxcbiAgc2Vzc2lvbkNvb2tpZTogJ1NFU1NJT05fSUQnLFxuICBjYWNoZVJlcXVlc3RNaWxsaXNlY29uZHM6IDUwMDAsXG4gIHNvY2tldHM6IGZhbHNlLFxuICByYXdSZXNwb25zZTogZmFsc2UsXG59O1xuXG5jb25zdCBFTkRQT0lOVCA9IFN5bWJvbC5mb3IoJ2VuZHBvaW50Jyk7XG5jb25zdCBDT05ORUNUSU9OID0gU3ltYm9sLmZvcignY29ubmVjdGlvbicpO1xuXG5leHBvcnQgY29uc3QgaXNFbmRwb2ludENsaWVudCA9IChjbGllbnQ6IENsaWVudCk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gY2xpZW50LnR5cGUgPT09IEVORFBPSU5UO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ29ubmVjdGlvbkNsaWVudCA9IF9fTk9ERV9fID8gKGNsaWVudDogQ2xpZW50KTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBjbGllbnQudHlwZSA9PT0gQ09OTkVDVElPTjtcbn0gOiBudWxsO1xuXG5leHBvcnQgY29uc3QgaXNJbnZhbGlkQ2xpZW50ID0gKGNsaWVudDogQ2xpZW50KTogYm9vbGVhbiA9PlxuICAhKGlzRW5kcG9pbnRDbGllbnQoY2xpZW50KSB8fCBpc0Nvbm5lY3Rpb25DbGllbnQoY2xpZW50KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmRwb2ludChjb25maWc/OiBDbGllbnRPcHRpb25zKTogQ2xpZW50IHtcbiAgcmV0dXJuIGNyZWF0ZUNsaWVudChFTkRQT0lOVCwgY29uZmlnKTtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbm5lY3Rpb24gPSBfX05PREVfXyA/IGZ1bmN0aW9uIGNvbm5lY3Rpb24oY29uZmlnPzogQ2xpZW50T3B0aW9ucyk6IENsaWVudCB7XG4gIHJldHVybiBjcmVhdGVDbGllbnQoQ09OTkVDVElPTiwgY29uZmlnKTtcbn0gOiBudWxsO1xuXG5mdW5jdGlvbiBjcmVhdGVDbGllbnQodHlwZTogT2JqZWN0LCBjb25maWc6ID9DbGllbnRPcHRpb25zKTogQ2xpZW50IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5kZWZhdWx0Q29uZmlnLFxuICAgIC4uLmNvbmZpZyxcbiAgICB0eXBlLFxuICB9O1xufVxuIl19