Skip to content

Latest commit

 

History

History
36 lines (24 loc) · 734 Bytes

File metadata and controls

36 lines (24 loc) · 734 Bytes

Assert/Invariant

Implementation

const isProduction = process.env.NODE_ENV === 'production';

export default function invariant(
  condition: unknown,
  message = 'Invariant failed',
  skipInProduction = false,
): asserts condition {
  if (condition) return;

  if (skipInProduction && isProduction) return;

  throw new Error(message);
}

Example

const id = 1;

invariant(typeof id === 'string', 'Expected a string', true);

// Uncaught Error: Expected a string

Resources