update
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"name": "call-bound",
|
||||
"version": "1.0.4",
|
||||
"description": "Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`.",
|
||||
"main": "index.js",
|
||||
"exports": {
|
||||
".": "./index.js",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"scripts": {
|
||||
"prepack": "npmignore --auto --commentLines=auto",
|
||||
"prepublish": "not-in-publish || npm run prepublishOnly",
|
||||
"prepublishOnly": "safe-publish-latest",
|
||||
"prelint": "evalmd README.md",
|
||||
"lint": "eslint --ext=.js,.mjs .",
|
||||
"postlint": "tsc -p . && attw -P",
|
||||
"pretest": "npm run lint",
|
||||
"tests-only": "nyc tape 'test/**/*.js'",
|
||||
"test": "npm run tests-only",
|
||||
"posttest": "npx npm@'>=10.2' audit --production",
|
||||
"version": "auto-changelog && git add CHANGELOG.md",
|
||||
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/ljharb/call-bound.git"
|
||||
},
|
||||
"keywords": [
|
||||
"javascript",
|
||||
"ecmascript",
|
||||
"es",
|
||||
"js",
|
||||
"callbind",
|
||||
"callbound",
|
||||
"call",
|
||||
"bind",
|
||||
"bound",
|
||||
"call-bind",
|
||||
"call-bound",
|
||||
"function",
|
||||
"es-abstract"
|
||||
],
|
||||
"author": "Jordan Harband <ljharb@gmail.com>",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
},
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/ljharb/call-bound/issues"
|
||||
},
|
||||
"homepage": "https://github.com/ljharb/call-bound#readme",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.2",
|
||||
"get-intrinsic": "^1.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/cli": "^0.17.4",
|
||||
"@ljharb/eslint-config": "^21.1.1",
|
||||
"@ljharb/tsconfig": "^0.3.0",
|
||||
"@types/call-bind": "^1.0.5",
|
||||
"@types/get-intrinsic": "^1.2.3",
|
||||
"@types/tape": "^5.8.1",
|
||||
"auto-changelog": "^2.5.0",
|
||||
"encoding": "^0.1.13",
|
||||
"es-value-fixtures": "^1.7.1",
|
||||
"eslint": "=8.8.0",
|
||||
"evalmd": "^0.0.19",
|
||||
"for-each": "^0.3.5",
|
||||
"gopd": "^1.2.0",
|
||||
"has-strict-mode": "^1.1.0",
|
||||
"in-publish": "^2.0.1",
|
||||
"npmignore": "^0.3.1",
|
||||
"nyc": "^10.3.2",
|
||||
"object-inspect": "^1.13.4",
|
||||
"safe-publish-latest": "^2.0.0",
|
||||
"tape": "^5.9.0",
|
||||
"typescript": "next"
|
||||
},
|
||||
"testling": {
|
||||
"files": "test/index.js"
|
||||
},
|
||||
"auto-changelog": {
|
||||
"output": "CHANGELOG.md",
|
||||
"template": "keepachangelog",
|
||||
"unreleased": false,
|
||||
"commitLimit": false,
|
||||
"backfillLimit": false,
|
||||
"hideCredit": true
|
||||
},
|
||||
"publishConfig": {
|
||||
"ignore": [
|
||||
".github/workflows"
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"name": "es-define-property",
|
||||
"version": "1.0.1",
|
||||
"description": "`Object.defineProperty`, but not IE 8's broken one.",
|
||||
"main": "index.js",
|
||||
"types": "./index.d.ts",
|
||||
"exports": {
|
||||
".": "./index.js",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"scripts": {
|
||||
"prepack": "npmignore --auto --commentLines=autogenerated",
|
||||
"prepublish": "not-in-publish || npm run prepublishOnly",
|
||||
"prepublishOnly": "safe-publish-latest",
|
||||
"prelint": "evalmd README.md",
|
||||
"lint": "eslint --ext=js,mjs .",
|
||||
"postlint": "tsc -p .",
|
||||
"pretest": "npm run lint",
|
||||
"tests-only": "nyc tape 'test/**/*.js'",
|
||||
"test": "npm run tests-only",
|
||||
"posttest": "npx npm@'>= 10.2' audit --production",
|
||||
"version": "auto-changelog && git add CHANGELOG.md",
|
||||
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/ljharb/es-define-property.git"
|
||||
},
|
||||
"keywords": [
|
||||
"javascript",
|
||||
"ecmascript",
|
||||
"object",
|
||||
"define",
|
||||
"property",
|
||||
"defineProperty",
|
||||
"Object.defineProperty"
|
||||
],
|
||||
"author": "Jordan Harband <ljharb@gmail.com>",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/ljharb/es-define-property/issues"
|
||||
},
|
||||
"homepage": "https://github.com/ljharb/es-define-property#readme",
|
||||
"devDependencies": {
|
||||
"@ljharb/eslint-config": "^21.1.1",
|
||||
"@ljharb/tsconfig": "^0.2.2",
|
||||
"@types/gopd": "^1.0.3",
|
||||
"@types/tape": "^5.6.5",
|
||||
"auto-changelog": "^2.5.0",
|
||||
"encoding": "^0.1.13",
|
||||
"eslint": "^8.8.0",
|
||||
"evalmd": "^0.0.19",
|
||||
"gopd": "^1.2.0",
|
||||
"in-publish": "^2.0.1",
|
||||
"npmignore": "^0.3.1",
|
||||
"nyc": "^10.3.2",
|
||||
"safe-publish-latest": "^2.0.0",
|
||||
"tape": "^5.9.0",
|
||||
"typescript": "next"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"testling": {
|
||||
"files": "test/index.js"
|
||||
},
|
||||
"auto-changelog": {
|
||||
"output": "CHANGELOG.md",
|
||||
"template": "keepachangelog",
|
||||
"unreleased": false,
|
||||
"commitLimit": false,
|
||||
"backfillLimit": false,
|
||||
"hideCredit": true
|
||||
},
|
||||
"publishConfig": {
|
||||
"ignore": [
|
||||
".github/workflows"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
var test = require('tape');
|
||||
var hasSymbols = require('has-symbols/shams')();
|
||||
var utilInspect = require('../util.inspect');
|
||||
var repeat = require('string.prototype.repeat');
|
||||
|
||||
var inspect = require('..');
|
||||
|
||||
test('inspect', function (t) {
|
||||
t.plan(5);
|
||||
|
||||
var obj = [{ inspect: function xyzInspect() { return '!XYZ¡'; } }, []];
|
||||
var stringResult = '[ !XYZ¡, [] ]';
|
||||
var falseResult = '[ { inspect: [Function: xyzInspect] }, [] ]';
|
||||
|
||||
t.equal(inspect(obj), stringResult);
|
||||
t.equal(inspect(obj, { customInspect: true }), stringResult);
|
||||
t.equal(inspect(obj, { customInspect: 'symbol' }), falseResult);
|
||||
t.equal(inspect(obj, { customInspect: false }), falseResult);
|
||||
t['throws'](
|
||||
function () { inspect(obj, { customInspect: 'not a boolean or "symbol"' }); },
|
||||
TypeError,
|
||||
'`customInspect` must be a boolean or the string "symbol"'
|
||||
);
|
||||
});
|
||||
|
||||
test('inspect custom symbol', { skip: !hasSymbols || !utilInspect || !utilInspect.custom }, function (t) {
|
||||
t.plan(4);
|
||||
|
||||
var obj = { inspect: function stringInspect() { return 'string'; } };
|
||||
obj[utilInspect.custom] = function custom() { return 'symbol'; };
|
||||
|
||||
var symbolResult = '[ symbol, [] ]';
|
||||
var stringResult = '[ string, [] ]';
|
||||
var falseResult = '[ { inspect: [Function: stringInspect]' + (utilInspect.custom ? ', [' + inspect(utilInspect.custom) + ']: [Function: custom]' : '') + ' }, [] ]';
|
||||
|
||||
var symbolStringFallback = utilInspect.custom ? symbolResult : stringResult;
|
||||
var symbolFalseFallback = utilInspect.custom ? symbolResult : falseResult;
|
||||
|
||||
t.equal(inspect([obj, []]), symbolStringFallback);
|
||||
t.equal(inspect([obj, []], { customInspect: true }), symbolStringFallback);
|
||||
t.equal(inspect([obj, []], { customInspect: 'symbol' }), symbolFalseFallback);
|
||||
t.equal(inspect([obj, []], { customInspect: false }), falseResult);
|
||||
});
|
||||
|
||||
test('symbols', { skip: !hasSymbols }, function (t) {
|
||||
t.plan(2);
|
||||
|
||||
var obj = { a: 1 };
|
||||
obj[Symbol('test')] = 2;
|
||||
obj[Symbol.iterator] = 3;
|
||||
Object.defineProperty(obj, Symbol('non-enum'), {
|
||||
enumerable: false,
|
||||
value: 4
|
||||
});
|
||||
|
||||
if (typeof Symbol.iterator === 'symbol') {
|
||||
t.equal(inspect(obj), '{ a: 1, [Symbol(test)]: 2, [Symbol(Symbol.iterator)]: 3 }', 'object with symbols');
|
||||
t.equal(inspect([obj, []]), '[ { a: 1, [Symbol(test)]: 2, [Symbol(Symbol.iterator)]: 3 }, [] ]', 'object with symbols in array');
|
||||
} else {
|
||||
// symbol sham key ordering is unreliable
|
||||
t.match(
|
||||
inspect(obj),
|
||||
/^(?:{ a: 1, \[Symbol\(test\)\]: 2, \[Symbol\(Symbol.iterator\)\]: 3 }|{ a: 1, \[Symbol\(Symbol.iterator\)\]: 3, \[Symbol\(test\)\]: 2 })$/,
|
||||
'object with symbols (nondeterministic symbol sham key ordering)'
|
||||
);
|
||||
t.match(
|
||||
inspect([obj, []]),
|
||||
/^\[ (?:{ a: 1, \[Symbol\(test\)\]: 2, \[Symbol\(Symbol.iterator\)\]: 3 }|{ a: 1, \[Symbol\(Symbol.iterator\)\]: 3, \[Symbol\(test\)\]: 2 }), \[\] \]$/,
|
||||
'object with symbols in array (nondeterministic symbol sham key ordering)'
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('maxStringLength', function (t) {
|
||||
t['throws'](
|
||||
function () { inspect('', { maxStringLength: -1 }); },
|
||||
TypeError,
|
||||
'maxStringLength must be >= 0, or Infinity, not negative'
|
||||
);
|
||||
|
||||
var str = repeat('a', 1e8);
|
||||
|
||||
t.equal(
|
||||
inspect([str], { maxStringLength: 10 }),
|
||||
'[ \'aaaaaaaaaa\'... 99999990 more characters ]',
|
||||
'maxStringLength option limits output'
|
||||
);
|
||||
|
||||
t.equal(
|
||||
inspect(['f'], { maxStringLength: null }),
|
||||
'[ \'\'... 1 more character ]',
|
||||
'maxStringLength option accepts `null`'
|
||||
);
|
||||
|
||||
t.equal(
|
||||
inspect([str], { maxStringLength: Infinity }),
|
||||
'[ \'' + str + '\' ]',
|
||||
'maxStringLength option accepts ∞'
|
||||
);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('inspect options', { skip: !utilInspect.custom }, function (t) {
|
||||
var obj = {};
|
||||
obj[utilInspect.custom] = function () {
|
||||
return JSON.stringify(arguments);
|
||||
};
|
||||
t.equal(
|
||||
inspect(obj),
|
||||
utilInspect(obj, { depth: 5 }),
|
||||
'custom symbols will use node\'s inspect'
|
||||
);
|
||||
t.equal(
|
||||
inspect(obj, { depth: 2 }),
|
||||
utilInspect(obj, { depth: 2 }),
|
||||
'a reduced depth will be passed to node\'s inspect'
|
||||
);
|
||||
t.equal(
|
||||
inspect({ d1: obj }, { depth: 3 }),
|
||||
'{ d1: ' + utilInspect(obj, { depth: 2 }) + ' }',
|
||||
'deep objects will receive a reduced depth'
|
||||
);
|
||||
t.equal(
|
||||
inspect({ d1: obj }, { depth: 1 }),
|
||||
'{ d1: [Object] }',
|
||||
'unlike nodejs inspect, customInspect will not be used once the depth is exceeded.'
|
||||
);
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('inspect URL', { skip: typeof URL === 'undefined' }, function (t) {
|
||||
t.match(
|
||||
inspect(new URL('https://nodejs.org')),
|
||||
/nodejs\.org/, // Different environments stringify it differently
|
||||
'url can be inspected'
|
||||
);
|
||||
t.end();
|
||||
});
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "undefsafe",
|
||||
"description": "Undefined safe way of extracting object properties",
|
||||
"main": "lib/undefsafe.js",
|
||||
"tonicExampleFilename": "example.js",
|
||||
"directories": {
|
||||
"test": "test"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "tap test/**/*.test.js -R spec",
|
||||
"cover": "tap test/*.test.js --cov --coverage-report=lcov",
|
||||
"semantic-release": "semantic-release"
|
||||
},
|
||||
"prettier": {
|
||||
"trailingComma": "none",
|
||||
"singleQuote": true
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/remy/undefsafe.git"
|
||||
},
|
||||
"keywords": [
|
||||
"undefined"
|
||||
],
|
||||
"author": "Remy Sharp",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"semantic-release": "^18.0.0",
|
||||
"tap": "^5.7.1",
|
||||
"tap-only": "0.0.5"
|
||||
},
|
||||
"dependencies": {},
|
||||
"version": "2.0.5"
|
||||
}
|
||||
Reference in New Issue
Block a user