insomnia/app/models/index.js
2016-11-09 21:56:23 -08:00

54 lines
1.4 KiB
JavaScript

import * as _stats from './stats';
import * as _settings from './settings';
import * as _workspace from './workspace';
import * as _environment from './environment';
import * as _cookieJar from './cookieJar';
import * as _requestGroup from './requestGroup';
import * as _request from './request';
import * as _response from './response';
// Reference to each model
export const stats = _stats;
export const settings = _settings;
export const workspace = _workspace;
export const environment = _environment;
export const cookieJar = _cookieJar;
export const requestGroup = _requestGroup;
export const request = _request;
export const response = _response;
const _models = {
[stats.type]: stats,
[settings.type]: settings,
[workspace.type]: workspace,
[environment.type]: environment,
[cookieJar.type]: cookieJar,
[requestGroup.type]: requestGroup,
[request.type]: request,
[response.type]: response,
};
export function all () {
return Object.keys(_models).map(type => _models[type]);
}
export function types () {
return all().map(model => model.type);
}
export function getModel (type) {
return _models[type] || null;
}
export function initModel (type) {
const baseDefaults = {
modified: Date.now(),
created: Date.now(),
parentId: null
};
const modelDefaults = getModel(type).init();
return Object.assign(baseDefaults, modelDefaults);
}