cdktn 0.23.2 → 0.23.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +468 -251
- package/README.md +3 -3
- package/lib/annotations.js +1 -1
- package/lib/app.js +1 -1
- package/lib/aspect.js +1 -1
- package/lib/backends/azurerm-backend.js +2 -2
- package/lib/backends/cloud-backend.js +4 -4
- package/lib/backends/consul-backend.js +2 -2
- package/lib/backends/cos-backend.js +2 -2
- package/lib/backends/gcs-backend.js +2 -2
- package/lib/backends/http-backend.js +2 -2
- package/lib/backends/local-backend.js +2 -2
- package/lib/backends/oss-backend.js +2 -2
- package/lib/backends/pg-backend.js +2 -2
- package/lib/backends/remote-backend.js +4 -4
- package/lib/backends/s3-backend.d.ts +11 -1
- package/lib/backends/s3-backend.js +11 -4
- package/lib/backends/swift-backend.js +2 -2
- package/lib/complex-computed-list.js +25 -25
- package/lib/errors.d.ts +1 -2
- package/lib/errors.js +11 -8
- package/lib/features.d.ts +9 -0
- package/lib/features.js +11 -2
- package/lib/functions/function-availability.generated.d.ts +16 -0
- package/lib/functions/function-availability.generated.js +21 -0
- package/lib/functions/helpers.js +3 -1
- package/lib/functions/terraform-functions.generated.d.ts +40 -2
- package/lib/functions/terraform-functions.generated.js +57 -5
- package/lib/functions/usage-registry.d.ts +6 -0
- package/lib/functions/usage-registry.js +34 -0
- package/lib/importable-resource.js +1 -1
- package/lib/manifest.js +4 -5
- package/lib/resource.js +1 -1
- package/lib/synthesize/synthesizer.js +8 -5
- package/lib/terraform-asset.js +1 -1
- package/lib/terraform-backend.js +1 -1
- package/lib/terraform-count.js +1 -1
- package/lib/terraform-data-resource.js +1 -1
- package/lib/terraform-data-source.js +1 -1
- package/lib/terraform-dynamic-block.js +2 -2
- package/lib/terraform-dynamic-expression.js +2 -2
- package/lib/terraform-element.js +1 -1
- package/lib/terraform-functions.js +1 -1
- package/lib/terraform-hcl-module.js +1 -1
- package/lib/terraform-iterator.js +5 -5
- package/lib/terraform-local.js +1 -1
- package/lib/terraform-module.js +1 -1
- package/lib/terraform-operators.js +1 -1
- package/lib/terraform-output.js +1 -1
- package/lib/terraform-provider.js +1 -1
- package/lib/terraform-provisioner.js +1 -1
- package/lib/terraform-remote-state.js +1 -1
- package/lib/terraform-resource-targets.js +1 -1
- package/lib/terraform-resource.js +1 -1
- package/lib/terraform-stack.js +6 -2
- package/lib/terraform-variable.js +2 -2
- package/lib/testing/index.js +8 -9
- package/lib/testing/matchers.js +1 -1
- package/lib/tokens/lazy.js +4 -4
- package/lib/tokens/private/intrinsic.d.ts +0 -5
- package/lib/tokens/private/intrinsic.js +2 -9
- package/lib/tokens/private/stack-trace.d.ts +6 -0
- package/lib/tokens/private/stack-trace.js +14 -1
- package/lib/tokens/resolvable.js +4 -4
- package/lib/tokens/string-fragments.js +1 -1
- package/lib/tokens/token.js +2 -2
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/upgrade-id-aspect.js +1 -1
- package/lib/validations/index.d.ts +3 -0
- package/lib/validations/index.js +4 -1
- package/lib/validations/target-versions.d.ts +71 -0
- package/lib/validations/target-versions.js +132 -0
- package/lib/validations/validate-binary-version.d.ts +10 -0
- package/lib/validations/validate-binary-version.js +11 -1
- package/lib/validations/validate-function-version-support.d.ts +21 -0
- package/lib/validations/validate-function-version-support.js +53 -0
- package/lib/validations/validate-terraform-feature-version.d.ts +34 -0
- package/lib/validations/validate-terraform-feature-version.js +34 -0
- package/node_modules/{call-bind-apply-helpers → safe-stable-stringify}/LICENSE +2 -2
- package/node_modules/safe-stable-stringify/esm/package.json +4 -0
- package/node_modules/safe-stable-stringify/esm/wrapper.d.ts +4 -0
- package/node_modules/safe-stable-stringify/esm/wrapper.js +6 -0
- package/node_modules/safe-stable-stringify/index.d.ts +22 -0
- package/node_modules/safe-stable-stringify/index.js +625 -0
- package/node_modules/safe-stable-stringify/package.json +65 -0
- package/node_modules/safe-stable-stringify/readme.md +179 -0
- package/package.json +11 -12
- package/scripts/pack.mjs +168 -0
- package/node_modules/call-bind/.eslintignore +0 -1
- package/node_modules/call-bind/.eslintrc +0 -16
- package/node_modules/call-bind/.github/FUNDING.yml +0 -12
- package/node_modules/call-bind/.nycrc +0 -9
- package/node_modules/call-bind/CHANGELOG.md +0 -106
- package/node_modules/call-bind/LICENSE +0 -21
- package/node_modules/call-bind/README.md +0 -64
- package/node_modules/call-bind/callBound.js +0 -15
- package/node_modules/call-bind/index.js +0 -24
- package/node_modules/call-bind/package.json +0 -93
- package/node_modules/call-bind/test/callBound.js +0 -54
- package/node_modules/call-bind/test/index.js +0 -74
- package/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
- package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
- package/node_modules/call-bind-apply-helpers/.nycrc +0 -9
- package/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
- package/node_modules/call-bind-apply-helpers/README.md +0 -62
- package/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
- package/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
- package/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
- package/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
- package/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
- package/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
- package/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
- package/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
- package/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
- package/node_modules/call-bind-apply-helpers/index.js +0 -15
- package/node_modules/call-bind-apply-helpers/package.json +0 -85
- package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
- package/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
- package/node_modules/call-bind-apply-helpers/test/index.js +0 -63
- package/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
- package/node_modules/call-bound/.eslintrc +0 -13
- package/node_modules/call-bound/.github/FUNDING.yml +0 -12
- package/node_modules/call-bound/.nycrc +0 -9
- package/node_modules/call-bound/CHANGELOG.md +0 -42
- package/node_modules/call-bound/LICENSE +0 -21
- package/node_modules/call-bound/README.md +0 -53
- package/node_modules/call-bound/index.d.ts +0 -94
- package/node_modules/call-bound/index.js +0 -19
- package/node_modules/call-bound/package.json +0 -99
- package/node_modules/call-bound/test/index.js +0 -61
- package/node_modules/call-bound/tsconfig.json +0 -10
- package/node_modules/define-data-property/.eslintrc +0 -24
- package/node_modules/define-data-property/.github/FUNDING.yml +0 -12
- package/node_modules/define-data-property/.nycrc +0 -13
- package/node_modules/define-data-property/CHANGELOG.md +0 -70
- package/node_modules/define-data-property/LICENSE +0 -21
- package/node_modules/define-data-property/README.md +0 -67
- package/node_modules/define-data-property/index.d.ts +0 -12
- package/node_modules/define-data-property/index.js +0 -56
- package/node_modules/define-data-property/package.json +0 -106
- package/node_modules/define-data-property/test/index.js +0 -392
- package/node_modules/define-data-property/tsconfig.json +0 -59
- package/node_modules/dunder-proto/.eslintrc +0 -5
- package/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
- package/node_modules/dunder-proto/.nycrc +0 -13
- package/node_modules/dunder-proto/CHANGELOG.md +0 -24
- package/node_modules/dunder-proto/LICENSE +0 -21
- package/node_modules/dunder-proto/README.md +0 -54
- package/node_modules/dunder-proto/get.d.ts +0 -5
- package/node_modules/dunder-proto/get.js +0 -30
- package/node_modules/dunder-proto/package.json +0 -76
- package/node_modules/dunder-proto/set.d.ts +0 -5
- package/node_modules/dunder-proto/set.js +0 -35
- package/node_modules/dunder-proto/test/get.js +0 -34
- package/node_modules/dunder-proto/test/index.js +0 -4
- package/node_modules/dunder-proto/test/set.js +0 -50
- package/node_modules/dunder-proto/tsconfig.json +0 -9
- package/node_modules/es-define-property/.eslintrc +0 -13
- package/node_modules/es-define-property/.github/FUNDING.yml +0 -12
- package/node_modules/es-define-property/.nycrc +0 -9
- package/node_modules/es-define-property/CHANGELOG.md +0 -29
- package/node_modules/es-define-property/LICENSE +0 -21
- package/node_modules/es-define-property/README.md +0 -49
- package/node_modules/es-define-property/index.d.ts +0 -3
- package/node_modules/es-define-property/index.js +0 -14
- package/node_modules/es-define-property/package.json +0 -81
- package/node_modules/es-define-property/test/index.js +0 -56
- package/node_modules/es-define-property/tsconfig.json +0 -10
- package/node_modules/es-errors/.eslintrc +0 -5
- package/node_modules/es-errors/.github/FUNDING.yml +0 -12
- package/node_modules/es-errors/CHANGELOG.md +0 -40
- package/node_modules/es-errors/LICENSE +0 -21
- package/node_modules/es-errors/README.md +0 -55
- package/node_modules/es-errors/eval.d.ts +0 -3
- package/node_modules/es-errors/eval.js +0 -4
- package/node_modules/es-errors/index.d.ts +0 -3
- package/node_modules/es-errors/index.js +0 -4
- package/node_modules/es-errors/package.json +0 -80
- package/node_modules/es-errors/range.d.ts +0 -3
- package/node_modules/es-errors/range.js +0 -4
- package/node_modules/es-errors/ref.d.ts +0 -3
- package/node_modules/es-errors/ref.js +0 -4
- package/node_modules/es-errors/syntax.d.ts +0 -3
- package/node_modules/es-errors/syntax.js +0 -4
- package/node_modules/es-errors/test/index.js +0 -19
- package/node_modules/es-errors/tsconfig.json +0 -49
- package/node_modules/es-errors/type.d.ts +0 -3
- package/node_modules/es-errors/type.js +0 -4
- package/node_modules/es-errors/uri.d.ts +0 -3
- package/node_modules/es-errors/uri.js +0 -4
- package/node_modules/es-object-atoms/.eslintrc +0 -16
- package/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
- package/node_modules/es-object-atoms/CHANGELOG.md +0 -37
- package/node_modules/es-object-atoms/LICENSE +0 -21
- package/node_modules/es-object-atoms/README.md +0 -63
- package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
- package/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
- package/node_modules/es-object-atoms/ToObject.d.ts +0 -7
- package/node_modules/es-object-atoms/ToObject.js +0 -10
- package/node_modules/es-object-atoms/index.d.ts +0 -3
- package/node_modules/es-object-atoms/index.js +0 -4
- package/node_modules/es-object-atoms/isObject.d.ts +0 -3
- package/node_modules/es-object-atoms/isObject.js +0 -6
- package/node_modules/es-object-atoms/package.json +0 -80
- package/node_modules/es-object-atoms/test/index.js +0 -38
- package/node_modules/es-object-atoms/tsconfig.json +0 -6
- package/node_modules/function-bind/.eslintrc +0 -21
- package/node_modules/function-bind/.github/FUNDING.yml +0 -12
- package/node_modules/function-bind/.github/SECURITY.md +0 -3
- package/node_modules/function-bind/.nycrc +0 -13
- package/node_modules/function-bind/CHANGELOG.md +0 -136
- package/node_modules/function-bind/LICENSE +0 -20
- package/node_modules/function-bind/README.md +0 -46
- package/node_modules/function-bind/implementation.js +0 -84
- package/node_modules/function-bind/index.js +0 -5
- package/node_modules/function-bind/package.json +0 -87
- package/node_modules/function-bind/test/.eslintrc +0 -9
- package/node_modules/function-bind/test/index.js +0 -252
- package/node_modules/get-intrinsic/.eslintrc +0 -42
- package/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
- package/node_modules/get-intrinsic/.nycrc +0 -9
- package/node_modules/get-intrinsic/CHANGELOG.md +0 -186
- package/node_modules/get-intrinsic/LICENSE +0 -21
- package/node_modules/get-intrinsic/README.md +0 -71
- package/node_modules/get-intrinsic/index.js +0 -378
- package/node_modules/get-intrinsic/package.json +0 -97
- package/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
- package/node_modules/get-proto/.eslintrc +0 -10
- package/node_modules/get-proto/.github/FUNDING.yml +0 -12
- package/node_modules/get-proto/.nycrc +0 -9
- package/node_modules/get-proto/CHANGELOG.md +0 -21
- package/node_modules/get-proto/LICENSE +0 -21
- package/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
- package/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
- package/node_modules/get-proto/README.md +0 -50
- package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
- package/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
- package/node_modules/get-proto/index.d.ts +0 -5
- package/node_modules/get-proto/index.js +0 -27
- package/node_modules/get-proto/package.json +0 -81
- package/node_modules/get-proto/test/index.js +0 -68
- package/node_modules/get-proto/tsconfig.json +0 -9
- package/node_modules/gopd/.eslintrc +0 -16
- package/node_modules/gopd/.github/FUNDING.yml +0 -12
- package/node_modules/gopd/CHANGELOG.md +0 -45
- package/node_modules/gopd/LICENSE +0 -21
- package/node_modules/gopd/README.md +0 -40
- package/node_modules/gopd/gOPD.d.ts +0 -1
- package/node_modules/gopd/gOPD.js +0 -4
- package/node_modules/gopd/index.d.ts +0 -5
- package/node_modules/gopd/index.js +0 -15
- package/node_modules/gopd/package.json +0 -77
- package/node_modules/gopd/test/index.js +0 -36
- package/node_modules/gopd/tsconfig.json +0 -9
- package/node_modules/has-property-descriptors/.eslintrc +0 -13
- package/node_modules/has-property-descriptors/.github/FUNDING.yml +0 -12
- package/node_modules/has-property-descriptors/.nycrc +0 -9
- package/node_modules/has-property-descriptors/CHANGELOG.md +0 -35
- package/node_modules/has-property-descriptors/LICENSE +0 -21
- package/node_modules/has-property-descriptors/README.md +0 -43
- package/node_modules/has-property-descriptors/index.js +0 -22
- package/node_modules/has-property-descriptors/package.json +0 -77
- package/node_modules/has-property-descriptors/test/index.js +0 -57
- package/node_modules/has-symbols/.eslintrc +0 -11
- package/node_modules/has-symbols/.github/FUNDING.yml +0 -12
- package/node_modules/has-symbols/.nycrc +0 -9
- package/node_modules/has-symbols/CHANGELOG.md +0 -91
- package/node_modules/has-symbols/LICENSE +0 -21
- package/node_modules/has-symbols/README.md +0 -46
- package/node_modules/has-symbols/index.d.ts +0 -3
- package/node_modules/has-symbols/index.js +0 -14
- package/node_modules/has-symbols/package.json +0 -111
- package/node_modules/has-symbols/shams.d.ts +0 -3
- package/node_modules/has-symbols/shams.js +0 -45
- package/node_modules/has-symbols/test/index.js +0 -22
- package/node_modules/has-symbols/test/shams/core-js.js +0 -29
- package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
- package/node_modules/has-symbols/test/tests.js +0 -58
- package/node_modules/has-symbols/tsconfig.json +0 -10
- package/node_modules/hasown/.eslintrc +0 -5
- package/node_modules/hasown/.github/FUNDING.yml +0 -12
- package/node_modules/hasown/.nycrc +0 -13
- package/node_modules/hasown/CHANGELOG.md +0 -40
- package/node_modules/hasown/LICENSE +0 -21
- package/node_modules/hasown/README.md +0 -40
- package/node_modules/hasown/index.d.ts +0 -3
- package/node_modules/hasown/index.js +0 -8
- package/node_modules/hasown/package.json +0 -92
- package/node_modules/hasown/tsconfig.json +0 -6
- package/node_modules/isarray/LICENSE +0 -21
- package/node_modules/isarray/README.md +0 -38
- package/node_modules/isarray/index.js +0 -5
- package/node_modules/isarray/package.json +0 -48
- package/node_modules/json-stable-stringify/.eslintrc +0 -31
- package/node_modules/json-stable-stringify/.github/FUNDING.yml +0 -12
- package/node_modules/json-stable-stringify/CHANGELOG.md +0 -160
- package/node_modules/json-stable-stringify/LICENSE +0 -21
- package/node_modules/json-stable-stringify/README.md +0 -157
- package/node_modules/json-stable-stringify/example/key_cmp.js +0 -9
- package/node_modules/json-stable-stringify/example/nested.js +0 -7
- package/node_modules/json-stable-stringify/example/str.js +0 -7
- package/node_modules/json-stable-stringify/example/value_cmp.js +0 -12
- package/node_modules/json-stable-stringify/index.d.ts +0 -25
- package/node_modules/json-stable-stringify/index.js +0 -124
- package/node_modules/json-stable-stringify/package.json +0 -88
- package/node_modules/json-stable-stringify/test/cmp.js +0 -33
- package/node_modules/json-stable-stringify/test/nested.js +0 -48
- package/node_modules/json-stable-stringify/test/replacer.js +0 -81
- package/node_modules/json-stable-stringify/test/space.js +0 -127
- package/node_modules/json-stable-stringify/test/str.js +0 -46
- package/node_modules/json-stable-stringify/test/to-json.js +0 -22
- package/node_modules/json-stable-stringify/tsconfig.json +0 -10
- package/node_modules/jsonify/.eslintrc +0 -21
- package/node_modules/jsonify/.github/FUNDING.yml +0 -12
- package/node_modules/jsonify/CHANGELOG.md +0 -48
- package/node_modules/jsonify/README.md +0 -66
- package/node_modules/jsonify/index.js +0 -4
- package/node_modules/jsonify/lib/parse.js +0 -261
- package/node_modules/jsonify/lib/stringify.js +0 -151
- package/node_modules/jsonify/package.json +0 -62
- package/node_modules/jsonify/test/parse.js +0 -20
- package/node_modules/jsonify/test/stringify.js +0 -18
- package/node_modules/math-intrinsics/.eslintrc +0 -16
- package/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
- package/node_modules/math-intrinsics/CHANGELOG.md +0 -24
- package/node_modules/math-intrinsics/LICENSE +0 -21
- package/node_modules/math-intrinsics/README.md +0 -50
- package/node_modules/math-intrinsics/abs.d.ts +0 -1
- package/node_modules/math-intrinsics/abs.js +0 -4
- package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
- package/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
- package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
- package/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
- package/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
- package/node_modules/math-intrinsics/constants/maxValue.js +0 -5
- package/node_modules/math-intrinsics/floor.d.ts +0 -1
- package/node_modules/math-intrinsics/floor.js +0 -4
- package/node_modules/math-intrinsics/isFinite.d.ts +0 -3
- package/node_modules/math-intrinsics/isFinite.js +0 -12
- package/node_modules/math-intrinsics/isInteger.d.ts +0 -3
- package/node_modules/math-intrinsics/isInteger.js +0 -16
- package/node_modules/math-intrinsics/isNaN.d.ts +0 -1
- package/node_modules/math-intrinsics/isNaN.js +0 -6
- package/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
- package/node_modules/math-intrinsics/isNegativeZero.js +0 -6
- package/node_modules/math-intrinsics/max.d.ts +0 -1
- package/node_modules/math-intrinsics/max.js +0 -4
- package/node_modules/math-intrinsics/min.d.ts +0 -1
- package/node_modules/math-intrinsics/min.js +0 -4
- package/node_modules/math-intrinsics/mod.d.ts +0 -3
- package/node_modules/math-intrinsics/mod.js +0 -9
- package/node_modules/math-intrinsics/package.json +0 -86
- package/node_modules/math-intrinsics/pow.d.ts +0 -1
- package/node_modules/math-intrinsics/pow.js +0 -4
- package/node_modules/math-intrinsics/round.d.ts +0 -1
- package/node_modules/math-intrinsics/round.js +0 -4
- package/node_modules/math-intrinsics/sign.d.ts +0 -3
- package/node_modules/math-intrinsics/sign.js +0 -11
- package/node_modules/math-intrinsics/test/index.js +0 -192
- package/node_modules/math-intrinsics/tsconfig.json +0 -3
- package/node_modules/object-keys/.editorconfig +0 -13
- package/node_modules/object-keys/.eslintrc +0 -17
- package/node_modules/object-keys/.travis.yml +0 -277
- package/node_modules/object-keys/CHANGELOG.md +0 -232
- package/node_modules/object-keys/LICENSE +0 -21
- package/node_modules/object-keys/README.md +0 -76
- package/node_modules/object-keys/implementation.js +0 -122
- package/node_modules/object-keys/index.js +0 -32
- package/node_modules/object-keys/isArguments.js +0 -17
- package/node_modules/object-keys/package.json +0 -88
- package/node_modules/object-keys/test/index.js +0 -5
- package/node_modules/set-function-length/.eslintrc +0 -27
- package/node_modules/set-function-length/.github/FUNDING.yml +0 -12
- package/node_modules/set-function-length/.nycrc +0 -13
- package/node_modules/set-function-length/CHANGELOG.md +0 -70
- package/node_modules/set-function-length/LICENSE +0 -21
- package/node_modules/set-function-length/README.md +0 -56
- package/node_modules/set-function-length/env.d.ts +0 -9
- package/node_modules/set-function-length/env.js +0 -25
- package/node_modules/set-function-length/index.d.ts +0 -7
- package/node_modules/set-function-length/index.js +0 -42
- package/node_modules/set-function-length/package.json +0 -102
- package/node_modules/set-function-length/tsconfig.json +0 -9
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var setFunctionLength = require('set-function-length');
|
|
4
|
-
|
|
5
|
-
var $defineProperty = require('es-define-property');
|
|
6
|
-
|
|
7
|
-
var callBindBasic = require('call-bind-apply-helpers');
|
|
8
|
-
var applyBind = require('call-bind-apply-helpers/applyBind');
|
|
9
|
-
|
|
10
|
-
module.exports = function callBind(originalFunction) {
|
|
11
|
-
var func = callBindBasic(arguments);
|
|
12
|
-
var adjustedLength = originalFunction.length - (arguments.length - 1);
|
|
13
|
-
return setFunctionLength(
|
|
14
|
-
func,
|
|
15
|
-
1 + (adjustedLength > 0 ? adjustedLength : 0),
|
|
16
|
-
true
|
|
17
|
-
);
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
if ($defineProperty) {
|
|
21
|
-
$defineProperty(module.exports, 'apply', { value: applyBind });
|
|
22
|
-
} else {
|
|
23
|
-
module.exports.apply = applyBind;
|
|
24
|
-
}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "call-bind",
|
|
3
|
-
"version": "1.0.8",
|
|
4
|
-
"description": "Robustly `.call.bind()` a function",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"exports": {
|
|
7
|
-
".": "./index.js",
|
|
8
|
-
"./callBound": "./callBound.js",
|
|
9
|
-
"./package.json": "./package.json"
|
|
10
|
-
},
|
|
11
|
-
"scripts": {
|
|
12
|
-
"prepack": "npmignore --auto --commentLines=auto",
|
|
13
|
-
"prepublish": "not-in-publish || npm run prepublishOnly",
|
|
14
|
-
"prepublishOnly": "safe-publish-latest",
|
|
15
|
-
"lint": "eslint --ext=.js,.mjs .",
|
|
16
|
-
"postlint": "evalmd README.md",
|
|
17
|
-
"pretest": "npm run lint",
|
|
18
|
-
"tests-only": "nyc tape 'test/**/*.js'",
|
|
19
|
-
"test": "npm run tests-only",
|
|
20
|
-
"posttest": "npx npm@'>=10.2' audit --production",
|
|
21
|
-
"version": "auto-changelog && git add CHANGELOG.md",
|
|
22
|
-
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
|
|
23
|
-
},
|
|
24
|
-
"repository": {
|
|
25
|
-
"type": "git",
|
|
26
|
-
"url": "git+https://github.com/ljharb/call-bind.git"
|
|
27
|
-
},
|
|
28
|
-
"keywords": [
|
|
29
|
-
"javascript",
|
|
30
|
-
"ecmascript",
|
|
31
|
-
"es",
|
|
32
|
-
"js",
|
|
33
|
-
"callbind",
|
|
34
|
-
"callbound",
|
|
35
|
-
"call",
|
|
36
|
-
"bind",
|
|
37
|
-
"bound",
|
|
38
|
-
"call-bind",
|
|
39
|
-
"call-bound",
|
|
40
|
-
"function",
|
|
41
|
-
"es-abstract"
|
|
42
|
-
],
|
|
43
|
-
"author": "Jordan Harband <ljharb@gmail.com>",
|
|
44
|
-
"funding": {
|
|
45
|
-
"url": "https://github.com/sponsors/ljharb"
|
|
46
|
-
},
|
|
47
|
-
"license": "MIT",
|
|
48
|
-
"bugs": {
|
|
49
|
-
"url": "https://github.com/ljharb/call-bind/issues"
|
|
50
|
-
},
|
|
51
|
-
"homepage": "https://github.com/ljharb/call-bind#readme",
|
|
52
|
-
"dependencies": {
|
|
53
|
-
"call-bind-apply-helpers": "^1.0.0",
|
|
54
|
-
"es-define-property": "^1.0.0",
|
|
55
|
-
"get-intrinsic": "^1.2.4",
|
|
56
|
-
"set-function-length": "^1.2.2"
|
|
57
|
-
},
|
|
58
|
-
"devDependencies": {
|
|
59
|
-
"@ljharb/eslint-config": "^21.1.1",
|
|
60
|
-
"auto-changelog": "^2.5.0",
|
|
61
|
-
"encoding": "^0.1.13",
|
|
62
|
-
"es-value-fixtures": "^1.5.0",
|
|
63
|
-
"eslint": "=8.8.0",
|
|
64
|
-
"evalmd": "^0.0.19",
|
|
65
|
-
"for-each": "^0.3.3",
|
|
66
|
-
"has-strict-mode": "^1.0.1",
|
|
67
|
-
"in-publish": "^2.0.1",
|
|
68
|
-
"npmignore": "^0.3.1",
|
|
69
|
-
"nyc": "^10.3.2",
|
|
70
|
-
"object-inspect": "^1.13.3",
|
|
71
|
-
"safe-publish-latest": "^2.0.0",
|
|
72
|
-
"tape": "^5.9.0"
|
|
73
|
-
},
|
|
74
|
-
"testling": {
|
|
75
|
-
"files": "test/index.js"
|
|
76
|
-
},
|
|
77
|
-
"auto-changelog": {
|
|
78
|
-
"output": "CHANGELOG.md",
|
|
79
|
-
"template": "keepachangelog",
|
|
80
|
-
"unreleased": false,
|
|
81
|
-
"commitLimit": false,
|
|
82
|
-
"backfillLimit": false,
|
|
83
|
-
"hideCredit": true
|
|
84
|
-
},
|
|
85
|
-
"publishConfig": {
|
|
86
|
-
"ignore": [
|
|
87
|
-
".github/workflows"
|
|
88
|
-
]
|
|
89
|
-
},
|
|
90
|
-
"engines": {
|
|
91
|
-
"node": ">= 0.4"
|
|
92
|
-
}
|
|
93
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('tape');
|
|
4
|
-
|
|
5
|
-
var callBound = require('../callBound');
|
|
6
|
-
|
|
7
|
-
test('callBound', function (t) {
|
|
8
|
-
// static primitive
|
|
9
|
-
t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself');
|
|
10
|
-
t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself');
|
|
11
|
-
|
|
12
|
-
// static non-function object
|
|
13
|
-
t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself');
|
|
14
|
-
t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself');
|
|
15
|
-
t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself');
|
|
16
|
-
t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself');
|
|
17
|
-
|
|
18
|
-
// static function
|
|
19
|
-
t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself');
|
|
20
|
-
t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself');
|
|
21
|
-
|
|
22
|
-
// prototype primitive
|
|
23
|
-
t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself');
|
|
24
|
-
t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself');
|
|
25
|
-
|
|
26
|
-
// prototype function
|
|
27
|
-
t.notEqual(callBound('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString does not yield itself');
|
|
28
|
-
t.notEqual(callBound('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% does not yield itself');
|
|
29
|
-
t.equal(callBound('Object.prototype.toString')(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original');
|
|
30
|
-
t.equal(callBound('%Object.prototype.toString%')(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original');
|
|
31
|
-
|
|
32
|
-
t['throws'](
|
|
33
|
-
function () { callBound('does not exist'); },
|
|
34
|
-
SyntaxError,
|
|
35
|
-
'nonexistent intrinsic throws'
|
|
36
|
-
);
|
|
37
|
-
t['throws'](
|
|
38
|
-
function () { callBound('does not exist', true); },
|
|
39
|
-
SyntaxError,
|
|
40
|
-
'allowMissing arg still throws for unknown intrinsic'
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) {
|
|
44
|
-
st['throws'](
|
|
45
|
-
function () { callBound('WeakRef'); },
|
|
46
|
-
TypeError,
|
|
47
|
-
'real but absent intrinsic throws'
|
|
48
|
-
);
|
|
49
|
-
st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception');
|
|
50
|
-
st.end();
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
t.end();
|
|
54
|
-
});
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var callBind = require('../');
|
|
4
|
-
var hasStrictMode = require('has-strict-mode')();
|
|
5
|
-
var forEach = require('for-each');
|
|
6
|
-
var inspect = require('object-inspect');
|
|
7
|
-
var v = require('es-value-fixtures');
|
|
8
|
-
|
|
9
|
-
var test = require('tape');
|
|
10
|
-
|
|
11
|
-
/*
|
|
12
|
-
* older engines have length nonconfigurable
|
|
13
|
-
* in io.js v3, it is configurable except on bound functions, hence the .bind()
|
|
14
|
-
*/
|
|
15
|
-
var boundFnsHaveConfigurableLengths = require('set-function-length/env').boundFnsHaveConfigurableLengths;
|
|
16
|
-
|
|
17
|
-
test('callBind', function (t) {
|
|
18
|
-
forEach(v.nonFunctions, function (nonFunction) {
|
|
19
|
-
t['throws'](
|
|
20
|
-
function () { callBind(nonFunction); },
|
|
21
|
-
TypeError,
|
|
22
|
-
inspect(nonFunction) + ' is not a function'
|
|
23
|
-
);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
var sentinel = { sentinel: true };
|
|
27
|
-
var func = function (a, b) {
|
|
28
|
-
// eslint-disable-next-line no-invalid-this
|
|
29
|
-
return [!hasStrictMode && this === global ? undefined : this, a, b];
|
|
30
|
-
};
|
|
31
|
-
t.equal(func.length, 2, 'original function length is 2');
|
|
32
|
-
t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args');
|
|
33
|
-
t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args');
|
|
34
|
-
t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args');
|
|
35
|
-
|
|
36
|
-
var bound = callBind(func);
|
|
37
|
-
t.equal(bound.length, func.length + 1, 'function length is preserved', { skip: !boundFnsHaveConfigurableLengths });
|
|
38
|
-
t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with too few args');
|
|
39
|
-
t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func with right args');
|
|
40
|
-
t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args');
|
|
41
|
-
|
|
42
|
-
var boundR = callBind(func, sentinel);
|
|
43
|
-
t.equal(boundR.length, func.length, 'function length is preserved', { skip: !boundFnsHaveConfigurableLengths });
|
|
44
|
-
t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args');
|
|
45
|
-
t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args');
|
|
46
|
-
t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args');
|
|
47
|
-
|
|
48
|
-
var boundArg = callBind(func, sentinel, 1);
|
|
49
|
-
t.equal(boundArg.length, func.length - 1, 'function length is preserved', { skip: !boundFnsHaveConfigurableLengths });
|
|
50
|
-
t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args');
|
|
51
|
-
t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg');
|
|
52
|
-
t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args');
|
|
53
|
-
|
|
54
|
-
t.test('callBind.apply', function (st) {
|
|
55
|
-
var aBound = callBind.apply(func);
|
|
56
|
-
st.deepEqual(aBound(sentinel), [sentinel, undefined, undefined], 'apply-bound func with no args');
|
|
57
|
-
st.deepEqual(aBound(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
|
|
58
|
-
st.deepEqual(aBound(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
|
|
59
|
-
|
|
60
|
-
var aBoundArg = callBind.apply(func);
|
|
61
|
-
st.deepEqual(aBoundArg(sentinel, [1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with too many args');
|
|
62
|
-
st.deepEqual(aBoundArg(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
|
|
63
|
-
st.deepEqual(aBoundArg(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
|
|
64
|
-
|
|
65
|
-
var aBoundR = callBind.apply(func, sentinel);
|
|
66
|
-
st.deepEqual(aBoundR([1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with receiver and too many args');
|
|
67
|
-
st.deepEqual(aBoundR([1, 2], 4), [sentinel, 1, 2], 'apply-bound func with receiver and right args');
|
|
68
|
-
st.deepEqual(aBoundR([1], 4), [sentinel, 1, undefined], 'apply-bound func with receiver and too few args');
|
|
69
|
-
|
|
70
|
-
st.end();
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
t.end();
|
|
74
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# These are supported funding model platforms
|
|
2
|
-
|
|
3
|
-
github: [ljharb]
|
|
4
|
-
patreon: # Replace with a single Patreon username
|
|
5
|
-
open_collective: # Replace with a single Open Collective username
|
|
6
|
-
ko_fi: # Replace with a single Ko-fi username
|
|
7
|
-
tidelift: npm/call-bind-apply-helpers
|
|
8
|
-
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
9
|
-
liberapay: # Replace with a single Liberapay username
|
|
10
|
-
issuehunt: # Replace with a single IssueHunt username
|
|
11
|
-
otechie: # Replace with a single Otechie username
|
|
12
|
-
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [v1.0.2](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.1...v1.0.2) - 2025-02-12
|
|
9
|
-
|
|
10
|
-
### Commits
|
|
11
|
-
|
|
12
|
-
- [types] improve inferred types [`e6f9586`](https://github.com/ljharb/call-bind-apply-helpers/commit/e6f95860a3c72879cb861a858cdfb8138fbedec1)
|
|
13
|
-
- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`e43d540`](https://github.com/ljharb/call-bind-apply-helpers/commit/e43d5409f97543bfbb11f345d47d8ce4e066d8c1)
|
|
14
|
-
|
|
15
|
-
## [v1.0.1](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.0...v1.0.1) - 2024-12-08
|
|
16
|
-
|
|
17
|
-
### Commits
|
|
18
|
-
|
|
19
|
-
- [types] `reflectApply`: fix types [`4efc396`](https://github.com/ljharb/call-bind-apply-helpers/commit/4efc3965351a4f02cc55e836fa391d3d11ef2ef8)
|
|
20
|
-
- [Fix] `reflectApply`: oops, Reflect is not a function [`83cc739`](https://github.com/ljharb/call-bind-apply-helpers/commit/83cc7395de6b79b7730bdf092f1436f0b1263c75)
|
|
21
|
-
- [Dev Deps] update `@arethetypeswrong/cli` [`80bd5d3`](https://github.com/ljharb/call-bind-apply-helpers/commit/80bd5d3ae58b4f6b6995ce439dd5a1bcb178a940)
|
|
22
|
-
|
|
23
|
-
## v1.0.0 - 2024-12-05
|
|
24
|
-
|
|
25
|
-
### Commits
|
|
26
|
-
|
|
27
|
-
- Initial implementation, tests, readme [`7879629`](https://github.com/ljharb/call-bind-apply-helpers/commit/78796290f9b7430c9934d6f33d94ae9bc89fce04)
|
|
28
|
-
- Initial commit [`3f1dc16`](https://github.com/ljharb/call-bind-apply-helpers/commit/3f1dc164afc43285631b114a5f9dd9137b2b952f)
|
|
29
|
-
- npm init [`081df04`](https://github.com/ljharb/call-bind-apply-helpers/commit/081df048c312fcee400922026f6e97281200a603)
|
|
30
|
-
- Only apps should have lockfiles [`5b9ca0f`](https://github.com/ljharb/call-bind-apply-helpers/commit/5b9ca0fe8101ebfaf309c549caac4e0a017ed930)
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
# call-bind-apply-helpers <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
|
|
2
|
-
|
|
3
|
-
[![github actions][actions-image]][actions-url]
|
|
4
|
-
[![coverage][codecov-image]][codecov-url]
|
|
5
|
-
[![dependency status][deps-svg]][deps-url]
|
|
6
|
-
[![dev dependency status][dev-deps-svg]][dev-deps-url]
|
|
7
|
-
[![License][license-image]][license-url]
|
|
8
|
-
[![Downloads][downloads-image]][downloads-url]
|
|
9
|
-
|
|
10
|
-
[![npm badge][npm-badge-png]][package-url]
|
|
11
|
-
|
|
12
|
-
Helper functions around Function call/apply/bind, for use in `call-bind`.
|
|
13
|
-
|
|
14
|
-
The only packages that should likely ever use this package directly are `call-bind` and `get-intrinsic`.
|
|
15
|
-
Please use `call-bind` unless you have a very good reason not to.
|
|
16
|
-
|
|
17
|
-
## Getting started
|
|
18
|
-
|
|
19
|
-
```sh
|
|
20
|
-
npm install --save call-bind-apply-helpers
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Usage/Examples
|
|
24
|
-
|
|
25
|
-
```js
|
|
26
|
-
const assert = require('assert');
|
|
27
|
-
const callBindBasic = require('call-bind-apply-helpers');
|
|
28
|
-
|
|
29
|
-
function f(a, b) {
|
|
30
|
-
assert.equal(this, 1);
|
|
31
|
-
assert.equal(a, 2);
|
|
32
|
-
assert.equal(b, 3);
|
|
33
|
-
assert.equal(arguments.length, 2);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const fBound = callBindBasic([f, 1]);
|
|
37
|
-
|
|
38
|
-
delete Function.prototype.call;
|
|
39
|
-
delete Function.prototype.bind;
|
|
40
|
-
|
|
41
|
-
fBound(2, 3);
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Tests
|
|
45
|
-
|
|
46
|
-
Clone the repo, `npm install`, and run `npm test`
|
|
47
|
-
|
|
48
|
-
[package-url]: https://npmjs.org/package/call-bind-apply-helpers
|
|
49
|
-
[npm-version-svg]: https://versionbadg.es/ljharb/call-bind-apply-helpers.svg
|
|
50
|
-
[deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers.svg
|
|
51
|
-
[deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers
|
|
52
|
-
[dev-deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers/dev-status.svg
|
|
53
|
-
[dev-deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers#info=devDependencies
|
|
54
|
-
[npm-badge-png]: https://nodei.co/npm/call-bind-apply-helpers.png?downloads=true&stars=true
|
|
55
|
-
[license-image]: https://img.shields.io/npm/l/call-bind-apply-helpers.svg
|
|
56
|
-
[license-url]: LICENSE
|
|
57
|
-
[downloads-image]: https://img.shields.io/npm/dm/call-bind-apply-helpers.svg
|
|
58
|
-
[downloads-url]: https://npm-stat.com/charts.html?package=call-bind-apply-helpers
|
|
59
|
-
[codecov-image]: https://codecov.io/gh/ljharb/call-bind-apply-helpers/branch/main/graphs/badge.svg
|
|
60
|
-
[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind-apply-helpers/
|
|
61
|
-
[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind-apply-helpers
|
|
62
|
-
[actions-url]: https://github.com/ljharb/call-bind-apply-helpers/actions
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export = Reflect.apply;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var bind = require('function-bind');
|
|
4
|
-
|
|
5
|
-
var $apply = require('./functionApply');
|
|
6
|
-
var $call = require('./functionCall');
|
|
7
|
-
var $reflectApply = require('./reflectApply');
|
|
8
|
-
|
|
9
|
-
/** @type {import('./actualApply')} */
|
|
10
|
-
module.exports = $reflectApply || bind.call($call, $apply);
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import actualApply from './actualApply';
|
|
2
|
-
|
|
3
|
-
type TupleSplitHead<T extends any[], N extends number> = T['length'] extends N
|
|
4
|
-
? T
|
|
5
|
-
: T extends [...infer R, any]
|
|
6
|
-
? TupleSplitHead<R, N>
|
|
7
|
-
: never
|
|
8
|
-
|
|
9
|
-
type TupleSplitTail<T, N extends number, O extends any[] = []> = O['length'] extends N
|
|
10
|
-
? T
|
|
11
|
-
: T extends [infer F, ...infer R]
|
|
12
|
-
? TupleSplitTail<[...R], N, [...O, F]>
|
|
13
|
-
: never
|
|
14
|
-
|
|
15
|
-
type TupleSplit<T extends any[], N extends number> = [TupleSplitHead<T, N>, TupleSplitTail<T, N>]
|
|
16
|
-
|
|
17
|
-
declare function applyBind(...args: TupleSplit<Parameters<typeof actualApply>, 2>[1]): ReturnType<typeof actualApply>;
|
|
18
|
-
|
|
19
|
-
export = applyBind;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var bind = require('function-bind');
|
|
4
|
-
var $apply = require('./functionApply');
|
|
5
|
-
var actualApply = require('./actualApply');
|
|
6
|
-
|
|
7
|
-
/** @type {import('./applyBind')} */
|
|
8
|
-
module.exports = function applyBind() {
|
|
9
|
-
return actualApply(bind, $apply, arguments);
|
|
10
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export = Function.prototype.apply;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export = Function.prototype.call;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
type RemoveFromTuple<
|
|
2
|
-
Tuple extends readonly unknown[],
|
|
3
|
-
RemoveCount extends number,
|
|
4
|
-
Index extends 1[] = []
|
|
5
|
-
> = Index["length"] extends RemoveCount
|
|
6
|
-
? Tuple
|
|
7
|
-
: Tuple extends [infer First, ...infer Rest]
|
|
8
|
-
? RemoveFromTuple<Rest, RemoveCount, [...Index, 1]>
|
|
9
|
-
: Tuple;
|
|
10
|
-
|
|
11
|
-
type ConcatTuples<
|
|
12
|
-
Prefix extends readonly unknown[],
|
|
13
|
-
Suffix extends readonly unknown[]
|
|
14
|
-
> = [...Prefix, ...Suffix];
|
|
15
|
-
|
|
16
|
-
type ExtractFunctionParams<T> = T extends (this: infer TThis, ...args: infer P extends readonly unknown[]) => infer R
|
|
17
|
-
? { thisArg: TThis; params: P; returnType: R }
|
|
18
|
-
: never;
|
|
19
|
-
|
|
20
|
-
type BindFunction<
|
|
21
|
-
T extends (this: any, ...args: any[]) => any,
|
|
22
|
-
TThis,
|
|
23
|
-
TBoundArgs extends readonly unknown[],
|
|
24
|
-
ReceiverBound extends boolean
|
|
25
|
-
> = ExtractFunctionParams<T> extends {
|
|
26
|
-
thisArg: infer OrigThis;
|
|
27
|
-
params: infer P extends readonly unknown[];
|
|
28
|
-
returnType: infer R;
|
|
29
|
-
}
|
|
30
|
-
? ReceiverBound extends true
|
|
31
|
-
? (...args: RemoveFromTuple<P, Extract<TBoundArgs["length"], number>>) => R extends [OrigThis, ...infer Rest]
|
|
32
|
-
? [TThis, ...Rest] // Replace `this` with `thisArg`
|
|
33
|
-
: R
|
|
34
|
-
: <U, RemainingArgs extends RemoveFromTuple<P, Extract<TBoundArgs["length"], number>>>(
|
|
35
|
-
thisArg: U,
|
|
36
|
-
...args: RemainingArgs
|
|
37
|
-
) => R extends [OrigThis, ...infer Rest]
|
|
38
|
-
? [U, ...ConcatTuples<TBoundArgs, Rest>] // Preserve bound args in return type
|
|
39
|
-
: R
|
|
40
|
-
: never;
|
|
41
|
-
|
|
42
|
-
declare function callBind<
|
|
43
|
-
const T extends (this: any, ...args: any[]) => any,
|
|
44
|
-
Extracted extends ExtractFunctionParams<T>,
|
|
45
|
-
const TBoundArgs extends Partial<Extracted["params"]> & readonly unknown[],
|
|
46
|
-
const TThis extends Extracted["thisArg"]
|
|
47
|
-
>(
|
|
48
|
-
args: [fn: T, thisArg: TThis, ...boundArgs: TBoundArgs]
|
|
49
|
-
): BindFunction<T, TThis, TBoundArgs, true>;
|
|
50
|
-
|
|
51
|
-
declare function callBind<
|
|
52
|
-
const T extends (this: any, ...args: any[]) => any,
|
|
53
|
-
Extracted extends ExtractFunctionParams<T>,
|
|
54
|
-
const TBoundArgs extends Partial<Extracted["params"]> & readonly unknown[]
|
|
55
|
-
>(
|
|
56
|
-
args: [fn: T, ...boundArgs: TBoundArgs]
|
|
57
|
-
): BindFunction<T, Extracted["thisArg"], TBoundArgs, false>;
|
|
58
|
-
|
|
59
|
-
declare function callBind<const TArgs extends readonly unknown[]>(
|
|
60
|
-
args: [fn: Exclude<TArgs[0], Function>, ...rest: TArgs]
|
|
61
|
-
): never;
|
|
62
|
-
|
|
63
|
-
// export as namespace callBind;
|
|
64
|
-
export = callBind;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var bind = require('function-bind');
|
|
4
|
-
var $TypeError = require('es-errors/type');
|
|
5
|
-
|
|
6
|
-
var $call = require('./functionCall');
|
|
7
|
-
var $actualApply = require('./actualApply');
|
|
8
|
-
|
|
9
|
-
/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */
|
|
10
|
-
module.exports = function callBindBasic(args) {
|
|
11
|
-
if (args.length < 1 || typeof args[0] !== 'function') {
|
|
12
|
-
throw new $TypeError('a function is required');
|
|
13
|
-
}
|
|
14
|
-
return $actualApply(bind, $call, args);
|
|
15
|
-
};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "call-bind-apply-helpers",
|
|
3
|
-
"version": "1.0.2",
|
|
4
|
-
"description": "Helper functions around Function call/apply/bind, for use in `call-bind`",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"exports": {
|
|
7
|
-
".": "./index.js",
|
|
8
|
-
"./actualApply": "./actualApply.js",
|
|
9
|
-
"./applyBind": "./applyBind.js",
|
|
10
|
-
"./functionApply": "./functionApply.js",
|
|
11
|
-
"./functionCall": "./functionCall.js",
|
|
12
|
-
"./reflectApply": "./reflectApply.js",
|
|
13
|
-
"./package.json": "./package.json"
|
|
14
|
-
},
|
|
15
|
-
"scripts": {
|
|
16
|
-
"prepack": "npmignore --auto --commentLines=auto",
|
|
17
|
-
"prepublish": "not-in-publish || npm run prepublishOnly",
|
|
18
|
-
"prepublishOnly": "safe-publish-latest",
|
|
19
|
-
"prelint": "evalmd README.md",
|
|
20
|
-
"lint": "eslint --ext=.js,.mjs .",
|
|
21
|
-
"postlint": "tsc -p . && attw -P",
|
|
22
|
-
"pretest": "npm run lint",
|
|
23
|
-
"tests-only": "nyc tape 'test/**/*.js'",
|
|
24
|
-
"test": "npm run tests-only",
|
|
25
|
-
"posttest": "npx npm@'>=10.2' audit --production",
|
|
26
|
-
"version": "auto-changelog && git add CHANGELOG.md",
|
|
27
|
-
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
|
|
28
|
-
},
|
|
29
|
-
"repository": {
|
|
30
|
-
"type": "git",
|
|
31
|
-
"url": "git+https://github.com/ljharb/call-bind-apply-helpers.git"
|
|
32
|
-
},
|
|
33
|
-
"author": "Jordan Harband <ljharb@gmail.com>",
|
|
34
|
-
"license": "MIT",
|
|
35
|
-
"bugs": {
|
|
36
|
-
"url": "https://github.com/ljharb/call-bind-apply-helpers/issues"
|
|
37
|
-
},
|
|
38
|
-
"homepage": "https://github.com/ljharb/call-bind-apply-helpers#readme",
|
|
39
|
-
"dependencies": {
|
|
40
|
-
"es-errors": "^1.3.0",
|
|
41
|
-
"function-bind": "^1.1.2"
|
|
42
|
-
},
|
|
43
|
-
"devDependencies": {
|
|
44
|
-
"@arethetypeswrong/cli": "^0.17.3",
|
|
45
|
-
"@ljharb/eslint-config": "^21.1.1",
|
|
46
|
-
"@ljharb/tsconfig": "^0.2.3",
|
|
47
|
-
"@types/for-each": "^0.3.3",
|
|
48
|
-
"@types/function-bind": "^1.1.10",
|
|
49
|
-
"@types/object-inspect": "^1.13.0",
|
|
50
|
-
"@types/tape": "^5.8.1",
|
|
51
|
-
"auto-changelog": "^2.5.0",
|
|
52
|
-
"encoding": "^0.1.13",
|
|
53
|
-
"es-value-fixtures": "^1.7.1",
|
|
54
|
-
"eslint": "=8.8.0",
|
|
55
|
-
"evalmd": "^0.0.19",
|
|
56
|
-
"for-each": "^0.3.5",
|
|
57
|
-
"has-strict-mode": "^1.1.0",
|
|
58
|
-
"in-publish": "^2.0.1",
|
|
59
|
-
"npmignore": "^0.3.1",
|
|
60
|
-
"nyc": "^10.3.2",
|
|
61
|
-
"object-inspect": "^1.13.4",
|
|
62
|
-
"safe-publish-latest": "^2.0.0",
|
|
63
|
-
"tape": "^5.9.0",
|
|
64
|
-
"typescript": "next"
|
|
65
|
-
},
|
|
66
|
-
"testling": {
|
|
67
|
-
"files": "test/index.js"
|
|
68
|
-
},
|
|
69
|
-
"auto-changelog": {
|
|
70
|
-
"output": "CHANGELOG.md",
|
|
71
|
-
"template": "keepachangelog",
|
|
72
|
-
"unreleased": false,
|
|
73
|
-
"commitLimit": false,
|
|
74
|
-
"backfillLimit": false,
|
|
75
|
-
"hideCredit": true
|
|
76
|
-
},
|
|
77
|
-
"publishConfig": {
|
|
78
|
-
"ignore": [
|
|
79
|
-
".github/workflows"
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
"engines": {
|
|
83
|
-
"node": ">= 0.4"
|
|
84
|
-
}
|
|
85
|
-
}
|