MCPcopy
hub / github.com/webpack/webpack / decodeValue

Method decodeValue

lib/serialization/ObjectMiddleware.js:789–913  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

787 * @returns {ComplexSerializableType} deserialize value
788 */
789 const decodeValue = () => {
790 const item = read();
791
792 if (item === ESCAPE) {
793 const nextItem = read();
794
795 if (nextItem === ESCAPE_ESCAPE_VALUE) {
796 return ESCAPE;
797 } else if (nextItem === ESCAPE_UNDEFINED) {
798 // Nothing
799 } else if (nextItem === ESCAPE_END_OBJECT) {
800 throw new Error(
801 `Unexpected end of object at position ${currentDataPos - 1}`
802 );
803 } else {
804 const request = nextItem;
805 /** @type {undefined | ObjectSerializer} */
806 let serializer;
807
808 if (typeof request === "number") {
809 if (request < 0) {
810 // relative reference
811 return referenceable[currentPos + request];
812 }
813 serializer = objectTypeLookup[currentPosTypeLookup - request];
814 } else {
815 if (typeof request !== "string") {
816 throw new Error(
817 `Unexpected type (${typeof request}) of request ` +
818 `at position ${currentDataPos - 1}`
819 );
820 }
821 const name = /** @type {string} */ (read());
822
823 serializer = ObjectMiddleware._getDeserializerForWithoutError(
824 request,
825 name
826 );
827
828 if (serializer === undefined) {
829 if (request && !loadedRequests.has(request)) {
830 let loaded = false;
831 for (const [regExp, loader] of loaders) {
832 if (regExp.test(request) && loader(request)) {
833 loaded = true;
834 break;
835 }
836 }
837 if (!loaded) {
838 require(request);
839 }
840
841 loadedRequests.add(request);
842 }
843
844 serializer = ObjectMiddleware.getDeserializerFor(request, name);
845 }
846

Callers

nothing calls this directly

Calls 11

deserializeMethod · 0.95
loaderFunction · 0.85
getDeserializerForMethod · 0.80
deserializeLazyMethod · 0.80
readFunction · 0.50
requireFunction · 0.50
hasMethod · 0.45
testMethod · 0.45
addMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected