MCPcopy
hub / github.com/webpack/webpack / stringifyObj

Function stringifyObj

lib/DefinePlugin.js:172–230  ·  lib/DefinePlugin.js::stringifyObj
(
	obj,
	parser,
	valueCacheVersions,
	key,
	runtimeTemplate,
	logger,
	asiSafe,
	objKeys
)

Source from the content-addressed store, hash-verified

170 * @returns {string} code converted to string that evaluates
171 */
172const stringifyObj = (
173 obj,
174 parser,
175 valueCacheVersions,
176 key,
177 runtimeTemplate,
178 logger,
179 asiSafe,
180 objKeys
181) => {
182 /** @type {string} */
183 let code;
184 const arr = Array.isArray(obj);
185 if (arr) {
186 code = `[${obj
187 .map((code) =>
188 toCode(
189 code,
190 parser,
191 valueCacheVersions,
192 key,
193 runtimeTemplate,
194 logger,
195 null
196 )
197 )
198 .join(class="st">",")}]`;
199 } else {
200 let keys = Object.keys(obj);
201 if (objKeys) {
202 keys = objKeys.size === 0 ? [] : keys.filter((k) => objKeys.has(k));
203 }
204 code = `{${keys
205 .map((key) => {
206 const code = obj[key];
207 return `${key === class="st">"__proto__" ? class="st">'["__proto__"]' : JSON.stringify(key)}:${toCode(
208 code,
209 parser,
210 valueCacheVersions,
211 key,
212 runtimeTemplate,
213 logger,
214 null
215 )}`;
216 })
217 .join(class="st">",")}}`;
218 }
219
220 switch (asiSafe) {
221 case null:
222 return code;
223 case true:
224 return arr ? code : `(${code})`;
225 case false:
226 return arr ? `;${code}` : `;(${code})`;
227 default:
228 return `/*#__PURE__*/Object(${code})`;
229 }

Callers 3

transformToCodeFunction · 0.85
applyDefineKeyMethod · 0.85
applyObjectDefineMethod · 0.85

Calls 4

toCodeFunction · 0.85
isArrayMethod · 0.80
keysMethod · 0.65
hasMethod · 0.45

Tested by

no test coverage detected