mirror of https://gitee.com/bigwinds/arangodb
105 lines
3.9 KiB
JavaScript
105 lines
3.9 KiB
JavaScript
'use strict';
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @brief basic initialization
|
|
///
|
|
/// @file
|
|
///
|
|
/// DISCLAIMER
|
|
///
|
|
/// Copyright 2014 ArangoDB GmbH, Cologne, Germany
|
|
/// Copyright 2004-2014 triAGENS GmbH, Cologne, Germany
|
|
///
|
|
/// Licensed under the Apache License, Version 2.0 (the "License");
|
|
/// you may not use this file except in compliance with the License.
|
|
/// You may obtain a copy of the License at
|
|
///
|
|
/// http://www.apache.org/licenses/LICENSE-2.0
|
|
///
|
|
/// Unless required by applicable law or agreed to in writing, software
|
|
/// distributed under the License is distributed on an "AS IS" BASIS,
|
|
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
/// See the License for the specific language governing permissions and
|
|
/// limitations under the License.
|
|
///
|
|
/// Copyright holder is ArangoDB GmbH, Cologne, Germany
|
|
///
|
|
/// @author Dr. Frank Celler
|
|
/// @author Copyright 2014, ArangoDB GmbH, Cologne, Germany
|
|
/// @author Copyright 2014, ArangoDB GmbH, Cologne, Germany
|
|
/// @author Copyright 2011-2013, triAGENS GmbH, Cologne, Germany
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- load files required during startup
|
|
// -----------------------------------------------------------------------------
|
|
|
|
(function () {
|
|
var startupPath = global.STARTUP_PATH;
|
|
var load = global.SYS_LOAD;
|
|
|
|
if (startupPath === '') {
|
|
startupPath = '.';
|
|
}
|
|
|
|
load(`${startupPath}/common/bootstrap/scaffolding.js`);
|
|
load(`${startupPath}/common/bootstrap/modules/internal.js`); // deps: -
|
|
load(`${startupPath}/common/bootstrap/errors.js`); // deps: internal
|
|
load(`${startupPath}/common/bootstrap/modules/console.js`); // deps: internal
|
|
load(`${startupPath}/common/bootstrap/modules/assert.js`); // deps: -
|
|
load(`${startupPath}/common/bootstrap/modules/buffer.js`); // deps: internal
|
|
load(`${startupPath}/common/bootstrap/modules/fs.js`); // deps: internal, buffer (hidden)
|
|
load(`${startupPath}/common/bootstrap/modules/path.js`); // deps: internal, fs
|
|
load(`${startupPath}/server/bootstrap/modules/internal.js`); // deps: internal, fs, console
|
|
load(`${startupPath}/common/bootstrap/modules.js`); // must come last before patches
|
|
load(`${startupPath}/common/bootstrap/monkeypatches.js`);
|
|
}());
|
|
|
|
// common globals
|
|
global.console = require('console');
|
|
global.Buffer = require('buffer').Buffer;
|
|
global.process = require('process');
|
|
global.setInterval = function () {};
|
|
global.clearInterval = function () {};
|
|
global.setTimeout = function () {};
|
|
global.clearTimeout = function () {};
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @brief template string generator for building an AQL query
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
global.aqlQuery = function () {
|
|
let strings = arguments[0];
|
|
const bindVars = {};
|
|
let query = strings[0];
|
|
for (let i = 1; i < arguments.length; i++) {
|
|
let value = arguments[i];
|
|
let name = `value${i - 1}`;
|
|
if (value.constructor && value.constructor.name === 'ArangoCollection') {
|
|
name = `@${name}`;
|
|
value = value.name();
|
|
}
|
|
bindVars[name] = value;
|
|
query += `@${name}${strings[i]}`;
|
|
}
|
|
return {query, bindVars};
|
|
};
|
|
|
|
// extend prototypes for internally defined classes
|
|
require('org/arangodb');
|
|
|
|
// load the actions from the actions directory
|
|
require('org/arangodb/actions').startup();
|
|
|
|
// initialize AQL
|
|
require('org/arangodb/aql');
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- END-OF-FILE
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// Local Variables:
|
|
// mode: outline-minor
|
|
// outline-regexp: "/// @brief\\|/// {@inheritDoc}\\|/// @page\\|// --SECTION--\\|/// @\\}"
|
|
// End:
|