react-with-hoc
Version:
Work with React and HOCs (Higher-Order Components)
33 lines • 6.75 kB
JavaScript
import { componentDisplayName } from "./componentDisplayName";
import { defaultHocName } from "./hocNameForWithStyle";
function newHoc(...args) {
const name = process.env.NODE_ENV != "production" && args.length === 2 ? args[0] : defaultHocName;
const hoc = args.length === 2 ? args[1] : args[0];
return (...args) => Component => {
if (process.env.NODE_ENV !== "production") {
if (!hoc.name) {
throw new Error(`Trying to create a new hoc without a name: ${hoc}`, {
cause: hoc
});
}
}
const Ret = hoc(Component, ...args);
if (process.env.NODE_ENV !== "production") {
componentDisplayName.set(typeof name === "string" ? name : name({
Component,
hoc
}, ...args), Ret);
}
return Ret;
};
}
const newHocProduction = (...args) => {
const hoc = args[args.length - 1];
return (...args) => Component => {
return hoc(Component, ...args);
};
};
const exportNewHoc = process.env.NODE_ENV === "production" ? newHocProduction : newHoc;
export { exportNewHoc as newHoc };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21wb25lbnREaXNwbGF5TmFtZSIsImRlZmF1bHRIb2NOYW1lIiwibmV3SG9jIiwiYXJncyIsIm5hbWUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJsZW5ndGgiLCJob2MiLCJDb21wb25lbnQiLCJFcnJvciIsImNhdXNlIiwiUmV0Iiwic2V0IiwibmV3SG9jUHJvZHVjdGlvbiIsImV4cG9ydE5ld0hvYyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9uZXdIb2MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUsIEZ1bmN0aW9uQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBIb2MgfSBmcm9tIFwiLi4vdHlwZXMvSG9jXCI7XG5pbXBvcnQgeyBjb21wb25lbnREaXNwbGF5TmFtZSB9IGZyb20gXCIuL2NvbXBvbmVudERpc3BsYXlOYW1lXCI7XG5pbXBvcnQgeyBIb2NOYW1lRmFjdG9yeSwgZGVmYXVsdEhvY05hbWUgfSBmcm9tIFwiLi9ob2NOYW1lRm9yV2l0aFN0eWxlXCI7XG5cbmV4cG9ydCB0eXBlIE5ld0hvY1JldHVybjxIb2NBcmdzIGV4dGVuZHMgYW55W10+ID0gKFxuICAuLi5hcmdzOiBIb2NBcmdzXG4pID0+IEhvYzxhbnlbXT47XG5cbmV4cG9ydCB0eXBlIEhvY0RlZmluaXRpb248SG9jQXJncyBleHRlbmRzIGFueVtdPiA9IChcbiAgQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPGFueT4sXG4gIC4uLmFyZ3M6IEhvY0FyZ3NcbikgPT4gRnVuY3Rpb25Db21wb25lbnQ8YW55PjtcblxuZXhwb3J0IHR5cGUgR2V0SG9jQXJnczxUPiA9IEV4dHJhY3Q8XG4gIFQgZXh0ZW5kcyBOZXdIb2NSZXR1cm48aW5mZXIgUj5cbiAgICA/IFJcbiAgICA6IFQgZXh0ZW5kcyBIb2NEZWZpbml0aW9uPGluZmVyIFI+XG4gICAgICA/IFJcbiAgICAgIDogbmV2ZXIsXG4gIGFueVtdXG4+O1xuXG50eXBlIE5hbWU8SG9jQXJncyBleHRlbmRzIGFueVtdPiA9XG4gIHwgc3RyaW5nXG4gIHwgKChcbiAgICAgIGZ1bmN0aW9uczoge1xuICAgICAgICBDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8YW55PjtcbiAgICAgICAgaG9jOiBIb2NEZWZpbml0aW9uPEhvY0FyZ3M+O1xuICAgICAgfSxcbiAgICAgIC4uLmFyZ3M6IEhvY0FyZ3NcbiAgICApID0+IHN0cmluZyk7XG5cbnR5cGUgRmlyc3RBcmd1bWVudE9wdGlvbmFsPFQgZXh0ZW5kcyBhbnlbXT4gPSBUIGV4dGVuZHMgW3Vua25vd24sIC4uLmluZmVyIFJlc3RdXG4gID8gUmVzdCB8IFRcbiAgOiBuZXZlcjtcbmZ1bmN0aW9uIG5ld0hvYzxUTmV3SG9jUmV0dXJuIGV4dGVuZHMgTmV3SG9jUmV0dXJuPGFueT4+KFxuICBob2M6IEhvY0RlZmluaXRpb248R2V0SG9jQXJnczxUTmV3SG9jUmV0dXJuPj4sXG4pOiBUTmV3SG9jUmV0dXJuO1xuZnVuY3Rpb24gbmV3SG9jPFROZXdIb2NSZXR1cm4gZXh0ZW5kcyBOZXdIb2NSZXR1cm48YW55Pj4oXG4gIG5hbWU6IE5hbWU8R2V0SG9jQXJnczxUTmV3SG9jUmV0dXJuPj4sXG4gIGhvYzogSG9jRGVmaW5pdGlvbjxHZXRIb2NBcmdzPFROZXdIb2NSZXR1cm4+Pixcbik6IFROZXdIb2NSZXR1cm47XG5cbmZ1bmN0aW9uIG5ld0hvYzxUTmV3SG9jUmV0dXJuIGV4dGVuZHMgTmV3SG9jUmV0dXJuPGFueT4+KFxuICAuLi5hcmdzOiBGaXJzdEFyZ3VtZW50T3B0aW9uYWw8XG4gICAgW05hbWU8R2V0SG9jQXJnczxUTmV3SG9jUmV0dXJuPj4sIEhvY0RlZmluaXRpb248R2V0SG9jQXJnczxUTmV3SG9jUmV0dXJuPj5dXG4gID5cbik6IFROZXdIb2NSZXR1cm4ge1xuICBjb25zdCBuYW1lOiBIb2NOYW1lRmFjdG9yeSB8IHN0cmluZyA9XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT0gXCJwcm9kdWN0aW9uXCIgJiYgYXJncy5sZW5ndGggPT09IDJcbiAgICAgID8gYXJnc1swXVxuICAgICAgOiBkZWZhdWx0SG9jTmFtZTtcbiAgY29uc3QgaG9jOiBIb2NEZWZpbml0aW9uPEdldEhvY0FyZ3M8VE5ld0hvY1JldHVybj4+ID1cbiAgICBhcmdzLmxlbmd0aCA9PT0gMiA/IGFyZ3NbMV0gOiBhcmdzWzBdO1xuXG4gIHJldHVybiAoKC4uLmFyZ3M6IGFueSkgPT5cbiAgICAoQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPGFueT4pOiBGdW5jdGlvbkNvbXBvbmVudDxhbnk+ID0+IHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgaWYgKCFob2MubmFtZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVHJ5aW5nIHRvIGNyZWF0ZSBhIG5ldyBob2Mgd2l0aG91dCBhIG5hbWU6ICR7aG9jfWAsIHtcbiAgICAgICAgICAgIGNhdXNlOiBob2MsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IFJldCA9IGhvYyhDb21wb25lbnQsIC4uLmFyZ3MpO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBjb21wb25lbnREaXNwbGF5TmFtZS5zZXQoXG4gICAgICAgICAgdHlwZW9mIG5hbWUgPT09IFwic3RyaW5nXCIgPyBuYW1lIDogbmFtZSh7IENvbXBvbmVudCwgaG9jIH0sIC4uLmFyZ3MpLFxuICAgICAgICAgIFJldCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBSZXQ7XG4gICAgfSkgYXMgVE5ld0hvY1JldHVybjtcbn1cblxuY29uc3QgbmV3SG9jUHJvZHVjdGlvbjogYW55ID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gIGNvbnN0IGhvYzogYW55ID0gYXJnc1thcmdzLmxlbmd0aCAtIDFdO1xuICByZXR1cm4gKC4uLmFyZ3M6IGFueSkgPT5cbiAgICAoQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPGFueT4pOiBGdW5jdGlvbkNvbXBvbmVudDxhbnk+ID0+IHtcbiAgICAgIHJldHVybiBob2MoQ29tcG9uZW50LCAuLi5hcmdzKTtcbiAgICB9O1xufTtcblxuY29uc3QgZXhwb3J0TmV3SG9jOiB0eXBlb2YgbmV3SG9jID1cbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gbmV3SG9jUHJvZHVjdGlvbiA6IG5ld0hvYztcblxuZXhwb3J0IHsgZXhwb3J0TmV3SG9jIGFzIG5ld0hvYyB9O1xuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxvQkFBb0IsUUFBUSx3QkFBd0I7QUFDN0QsU0FBeUJDLGNBQWMsUUFBUSx1QkFBdUI7QUF5Q3RFLFNBQVNDLE1BQU1BLENBQ2IsR0FBR0MsSUFFRixFQUNjO0VBQ2YsTUFBTUMsSUFBNkIsR0FDakNDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLElBQUksWUFBWSxJQUFJSixJQUFJLENBQUNLLE1BQU0sS0FBSyxDQUFDLEdBQ3JETCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQ1BGLGNBQWM7RUFDcEIsTUFBTVEsR0FBNkMsR0FDakROLElBQUksQ0FBQ0ssTUFBTSxLQUFLLENBQUMsR0FBR0wsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHQSxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBRXZDLE9BQVEsQ0FBQyxHQUFHQSxJQUFTLEtBQ2xCTyxTQUE2QixJQUE2QjtJQUN6RCxJQUFJTCxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtNQUN6QyxJQUFJLENBQUNFLEdBQUcsQ0FBQ0wsSUFBSSxFQUFFO1FBQ2IsTUFBTSxJQUFJTyxLQUFLLENBQUUsOENBQTZDRixHQUFJLEVBQUMsRUFBRTtVQUNuRUcsS0FBSyxFQUFFSDtRQUNULENBQUMsQ0FBQztNQUNKO0lBQ0Y7SUFDQSxNQUFNSSxHQUFHLEdBQUdKLEdBQUcsQ0FBQ0MsU0FBUyxFQUFFLEdBQUdQLElBQUksQ0FBQztJQUNuQyxJQUFJRSxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtNQUN6Q1Asb0JBQW9CLENBQUNjLEdBQUcsQ0FDdEIsT0FBT1YsSUFBSSxLQUFLLFFBQVEsR0FBR0EsSUFBSSxHQUFHQSxJQUFJLENBQUM7UUFBRU0sU0FBUztRQUFFRDtNQUFJLENBQUMsRUFBRSxHQUFHTixJQUFJLENBQUMsRUFDbkVVLEdBQ0YsQ0FBQztJQUNIO0lBQ0EsT0FBT0EsR0FBRztFQUNaLENBQUM7QUFDTDtBQUVBLE1BQU1FLGdCQUFxQixHQUFHQSxDQUFDLEdBQUdaLElBQVcsS0FBSztFQUNoRCxNQUFNTSxHQUFRLEdBQUdOLElBQUksQ0FBQ0EsSUFBSSxDQUFDSyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0VBQ3RDLE9BQU8sQ0FBQyxHQUFHTCxJQUFTLEtBQ2pCTyxTQUE2QixJQUE2QjtJQUN6RCxPQUFPRCxHQUFHLENBQUNDLFNBQVMsRUFBRSxHQUFHUCxJQUFJLENBQUM7RUFDaEMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNYSxZQUEyQixHQUMvQlgsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEdBQUdRLGdCQUFnQixHQUFHYixNQUFNO0FBRW5FLFNBQVNjLFlBQVksSUFBSWQsTUFBTSJ9
//# sourceMappingURL=newHoc.js.map