index.js
function abstractSynchronousLayout(assign, graph, params) {
  if (!isGraph(graph))
    throw new Error('graphology-layout-forceatlas2: the given graph is not a valid graphology instance.');

  if (typeof params === 'number')
    params = {iterations: params};

  var iterations = params.iterations;

  if (typeof iterations !== 'number')
    throw new Error('graphology-layout-forceatlas2: invalid number of iterations.');

  if (iterations <= 0)
    throw new Error('graphology-layout-forceatlas2: you should provide a positive number of iterations.');

  // Validating settings
  var settings = helpers.assign({}, DEFAULT_SETTINGS, params.settings),
      validationError = helpers.validateSettings(settings);

  if (validationError)
    throw new Error('graphology-layout-forceatlas2: ' + validationError.message);

  // Building matrices
  var matrices = helpers.graphToByteArrays(graph),
      i;

  // Iterating
  for (i = 0; i < iterations; i++)
    iterate(settings, matrices.nodes, matrices.edges);

  // Applying
  if (assign) {
    helpers.applyLayoutChanges(graph, matrices.nodes);
    return;
  }

  return helpers.collectLayoutChanges(graph, matrices.nodes);
}
function abstractSynchronousLayout(assign, graph, params) {
  if (!isGraph(graph))
    throw new Error('graphology-layout-forceatlas2: the given graph is not a valid graphology instance.');

  if (typeof params === 'number')
    params = {iterations: params};

  var iterations = params.iterations;

  if (typeof iterations !== 'number')
    throw new Error('graphology-layout-forceatlas2: invalid number of iterations.');

  if (iterations <= 0)
    throw new Error('graphology-layout-forceatlas2: you should provide a positive number of iterations.');

  // Validating settings
  var settings = helpers.assign({}, DEFAULT_SETTINGS, params.settings),
      validationError = helpers.validateSettings(settings);

  if (validationError)
    throw new Error('graphology-layout-forceatlas2: ' + validationError.message);

  // Building matrices
  var matrices = helpers.graphToByteArrays(graph),
      i;

  // Iterating
  for (i = 0; i < iterations; i++)
    iterate(settings, matrices.nodes, matrices.edges);

  // Applying
  if (assign) {
    helpers.applyLayoutChanges(graph, matrices.nodes);
    return;
  }

  return helpers.collectLayoutChanges(graph, matrices.nodes);
}
function abstractSynchronousLayout ( assign , graph , params ) { if ( ! isGraph ( graph ) ) throw new Error ( 'graphology-layout-forceatlas2: the given graph is not a valid graphology instance.' ) ; if ( typeof params === 'number' ) params = { iterations : params } ; var iterations = params . iterations ; if ( typeof iterations !== 'number' ) throw new Error ( 'graphology-layout-forceatlas2: invalid number of iterations.' ) ; if ( iterations <= 0 ) throw new Error ( 'graphology-layout-forceatlas2: you should provide a positive number of iterations.' ) ; // Validating settings var settings = helpers . assign ( { } , DEFAULT_SETTINGS , params . settings ) , validationError = helpers . validateSettings ( settings ) ; if ( validationError ) throw new Error ( 'graphology-layout-forceatlas2: ' + validationError . message ) ; // Building matrices var matrices = helpers . graphToByteArrays ( graph ) , i ; // Iterating for ( i = 0 ; i < iterations ; i ++ ) iterate ( settings , matrices . nodes , matrices . edges ) ; // Applying if ( assign ) { helpers . applyLayoutChanges ( graph , matrices . nodes ) ; return ; } return helpers . collectLayoutChanges ( graph , matrices . nodes ) ; }
Asbtract function used to run a certain number of iterations.

@param  {boolean}       assign       - Whether to assign positions.
@param  {Graph}         graph        - Target graph.
@param  {object|number} params       - If number, params.iterations, else:
@param  {number}          iterations - Number of iterations.
@param  {object}          [settings] - Settings.
@return {object|undefined}
Asbtract function used to run a certain number of iterations .