MCPcopy Create free account
hub / github.com/openai/openai-node / inner_stringify

Function inner_stringify

src/internal/qs/stringify.ts:60–220  ·  view source on GitHub ↗
(
  object: any,
  prefix: PropertyKey,
  generateArrayPrefix: StringifyOptions['arrayFormat'] | ((prefix: string, key: string) => string),
  commaRoundTrip: boolean,
  allowEmptyArrays: boolean,
  strictNullHandling: boolean,
  skipNulls: boolean,
  encodeDotInKeys: boolean,
  encoder: StringifyOptions['encoder'],
  filter: StringifyOptions['filter'],
  sort: StringifyOptions['sort'],
  allowDots: StringifyOptions['allowDots'],
  serializeDate: StringifyOptions['serializeDate'],
  format: StringifyOptions['format'],
  formatter: StringifyOptions['formatter'],
  encodeValuesOnly: boolean,
  charset: StringifyOptions['charset'],
  sideChannel: WeakMap<any, any>,
)

Source from the content-addressed store, hash-verified

58const sentinel = {};
59
60function inner_stringify(
61 object: any,
62 prefix: PropertyKey,
63 generateArrayPrefix: StringifyOptions['arrayFormat'] | ((prefix: string, key: string) => string),
64 commaRoundTrip: boolean,
65 allowEmptyArrays: boolean,
66 strictNullHandling: boolean,
67 skipNulls: boolean,
68 encodeDotInKeys: boolean,
69 encoder: StringifyOptions['encoder'],
70 filter: StringifyOptions['filter'],
71 sort: StringifyOptions['sort'],
72 allowDots: StringifyOptions['allowDots'],
73 serializeDate: StringifyOptions['serializeDate'],
74 format: StringifyOptions['format'],
75 formatter: StringifyOptions['formatter'],
76 encodeValuesOnly: boolean,
77 charset: StringifyOptions['charset'],
78 sideChannel: WeakMap<any, any>,
79) {
80 let obj = object;
81
82 let tmp_sc = sideChannel;
83 let step = 0;
84 let find_flag = false;
85 while ((tmp_sc = tmp_sc.get(sentinel)) !== void undefined && !find_flag) {
86 // Where object last appeared in the ref tree
87 const pos = tmp_sc.get(object);
88 step += 1;
89 if (typeof pos !== 'undefined') {
90 if (pos === step) {
91 throw new RangeError('Cyclic object value');
92 } else {
93 find_flag = true; // Break while
94 }
95 }
96 if (typeof tmp_sc.get(sentinel) === 'undefined') {
97 step = 0;
98 }
99 }
100
101 if (typeof filter === 'function') {
102 obj = filter(prefix, obj);
103 } else if (obj instanceof Date) {
104 obj = serializeDate?.(obj);
105 } else if (generateArrayPrefix === 'comma' && isArray(obj)) {
106 obj = maybe_map(obj, function (value) {
107 if (value instanceof Date) {
108 return serializeDate?.(value);
109 }
110 return value;
111 });
112 }
113
114 if (obj === null) {
115 if (strictNullHandling) {
116 return encoder && !encodeValuesOnly ?
117 // @ts-expect-error

Callers 1

stringifyFunction · 0.85

Calls 9

isArrayFunction · 0.90
maybe_mapFunction · 0.90
is_bufferFunction · 0.90
filterFunction · 0.85
encoderFunction · 0.85
is_non_nullish_primitiveFunction · 0.85
push_to_arrayFunction · 0.85
getMethod · 0.80
serializeDateFunction · 0.70

Tested by

no test coverage detected