Negotiate Pushing Milestone

    get-intrinsic
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/get-intrinsic package

    1.1.1 • Public • Published

    get-intrinsic Version Badge

    dependency status dev dependency status License Downloads

    npm badge

    Get and robustly cache all JS language-level intrinsics at first require time.

    See the syntax described in the JS spec for reference.

    Example

    var GetIntrinsic = require('get-intrinsic');
    var assert = require('assert');
    
    // static methods
    assert.equal(GetIntrinsic('%Math.pow%'), Math.pow);
    assert.equal(Math.pow(2, 3), 8);
    assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8);
    delete Math.pow;
    assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8);
    
    // instance methods
    var arr = [1];
    assert.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push);
    assert.deepEqual(arr, [1]);
    
    arr.push(2);
    assert.deepEqual(arr, [1, 2]);
    
    GetIntrinsic('%Array.prototype.push%').call(arr, 3);
    assert.deepEqual(arr, [1, 2, 3]);
    
    delete Array.prototype.push;
    GetIntrinsic('%Array.prototype.push%').call(arr, 4);
    assert.deepEqual(arr, [1, 2, 3, 4]);
    
    // missing features
    delete JSON.parse; // to simulate a real intrinsic that is missing in the environment
    assert.throws(() => GetIntrinsic('%JSON.parse%'));
    assert.equal(undefined, GetIntrinsic('%JSON.parse%', true));

    Tests

    Simply clone the repo, npm install, and run npm test

    Security

    Please email @ljharb or see https://tidelift.com/security if you have a potential security vulnerability to report.

    Install

    npm i get-intrinsic

    DownloadsWeekly Downloads

    17,763,049

    Version

    1.1.1

    License

    MIT

    Unpacked Size

    32.5 kB

    Total Files

    10

    Last publish

    Collaborators

    • avatar