How to use ob1 - 6 common examples

To help you get started, we’ve selected a few ob1 examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github facebook / metro / packages / metro-source-map / src / Consumer / positionMath.js View on Github external
function shiftPositionByOffset<
  T: {
    +line: ?Number1,
    +column: ?Number0,
    ...
  },
>(pos: T, offset: GeneratedOffset): T {
  return {
    ...pos,
    line: pos.line != null ? add(pos.line, offset.lines) : null,
    column: pos.column != null ? add(pos.column, offset.columns) : null,
  };
}
github facebook / metro / packages / metro-source-map / src / Consumer / positionMath.js View on Github external
function shiftPositionByOffset<
  T: {
    +line: ?Number1,
    +column: ?Number0,
    ...
  },
>(pos: T, offset: GeneratedOffset): T {
  return {
    ...pos,
    line: pos.line != null ? add(pos.line, offset.lines) : null,
    column: pos.column != null ? add(pos.column, offset.columns) : null,
  };
}
github facebook / metro / packages / metro-source-map / src / Consumer / positionMath.js View on Github external
function subtractOffsetFromPosition<
  T: {
    +line: ?Number1,
    +column: ?Number0,
    ...
  },
>(pos: T, offset: GeneratedOffset): T {
  return shiftPositionByOffset(pos, {
    lines: neg(offset.lines),
    columns: neg(offset.columns),
  });
}
github facebook / metro / packages / metro-source-map / src / Consumer / positionMath.js View on Github external
function subtractOffsetFromPosition<
  T: {
    +line: ?Number1,
    +column: ?Number0,
    ...
  },
>(pos: T, offset: GeneratedOffset): T {
  return shiftPositionByOffset(pos, {
    lines: neg(offset.lines),
    columns: neg(offset.columns),
  });
}
github facebook / metro / packages / metro-source-map / src / Consumer / constants.js View on Github external
/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow strict-local
 * @format
 */

'use strict';

const {add0, add1} = require('ob1');

import type {Number0, Number1} from 'ob1';
const FIRST_COLUMN: Number0 = add0(0);
const FIRST_LINE: Number1 = add1(0);

export opaque type IterationOrder = 'GENERATED_ORDER' | 'ORIGINAL_ORDER';
const GENERATED_ORDER: IterationOrder = 'GENERATED_ORDER';
const ORIGINAL_ORDER: IterationOrder = 'ORIGINAL_ORDER';

export opaque type LookupBias = 'GREATEST_LOWER_BOUND' | 'LEAST_UPPER_BOUND';
const GREATEST_LOWER_BOUND: LookupBias = 'GREATEST_LOWER_BOUND';
const LEAST_UPPER_BOUND: LookupBias = 'LEAST_UPPER_BOUND';

const EMPTY_POSITION = Object.freeze({
  source: null,
  name: null,
  line: null,
  column: null,
});
github facebook / metro / packages / metro-source-map / src / Consumer / constants.js View on Github external
* Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow strict-local
 * @format
 */

'use strict';

const {add0, add1} = require('ob1');

import type {Number0, Number1} from 'ob1';
const FIRST_COLUMN: Number0 = add0(0);
const FIRST_LINE: Number1 = add1(0);

export opaque type IterationOrder = 'GENERATED_ORDER' | 'ORIGINAL_ORDER';
const GENERATED_ORDER: IterationOrder = 'GENERATED_ORDER';
const ORIGINAL_ORDER: IterationOrder = 'ORIGINAL_ORDER';

export opaque type LookupBias = 'GREATEST_LOWER_BOUND' | 'LEAST_UPPER_BOUND';
const GREATEST_LOWER_BOUND: LookupBias = 'GREATEST_LOWER_BOUND';
const LEAST_UPPER_BOUND: LookupBias = 'LEAST_UPPER_BOUND';

const EMPTY_POSITION = Object.freeze({
  source: null,
  name: null,
  line: null,
  column: null,
});

ob1

A small library for working with 0- and 1-based offsets in a type-checked way.

MIT
Latest version published 29 days ago

Package Health Score

98 / 100
Full package analysis

Popular ob1 functions