frontend/.pnpm-store/v3/files/00/b8c430dfbf90e8d786543237a51e7ebd165390a7f3ee53dbe712e7c0c43068780c5ca60e70fb8db3b9a55142e9acaa99f19d802e56af73347761febbe131de

33 lines
933 B
Plaintext

"use strict";
var forEach = require("es5-ext/object/for-each")
, normalizeOpts = require("es5-ext/object/normalize-options")
, callable = require("es5-ext/object/valid-callable")
, lazy = require("d/lazy")
, resolveLength = require("./resolve-length")
, extensions = require("./registered-extensions");
module.exports = function (memoize) {
return function (props) {
forEach(props, function (desc) {
var fn = callable(desc.value), length;
desc.value = function (options) {
if (options.getNormalizer) {
options = normalizeOpts(options);
if (length === undefined) {
length = resolveLength(
options.length,
fn.length,
options.async && extensions.async
);
}
options.normalizer = options.getNormalizer(length);
delete options.getNormalizer;
}
return memoize(fn.bind(this), options);
};
});
return lazy(props);
};
};