(docs)
| 167 | } |
| 168 | |
| 169 | function buildParamDocs(docs) { |
| 170 | let newClassItems = {}; |
| 171 | // the fields we need—note that `name` and `class` are needed at this step because it's used to group classitems together. They will be removed later in cleanUpClassItems. |
| 172 | let allowed = new Set(['name', 'class', 'params', 'overloads', 'beta']); |
| 173 | |
| 174 | for (let classitem of docs.classitems) { |
| 175 | // If `classitem` doesn't have overloads, then it's not a function—skip processing in this case |
| 176 | if (classitem.name && classitem.class && classitem.hasOwnProperty('overloads')) { |
| 177 | // Skip if the item already exists in newClassItems |
| 178 | if ( |
| 179 | newClassItems[classitem.class] && |
| 180 | newClassItems[classitem.class][classitem.name] |
| 181 | ) { |
| 182 | continue; |
| 183 | } |
| 184 | |
| 185 | // Clean up fields that will not be used in each classitem's overloads |
| 186 | classitem.overloads?.forEach(overload => { |
| 187 | delete overload.line; |
| 188 | delete overload.return; |
| 189 | overload.params.forEach(param => { |
| 190 | delete param.description; |
| 191 | delete param.name; |
| 192 | }); |
| 193 | }); |
| 194 | |
| 195 | Object.keys(classitem).forEach(key => { |
| 196 | if (!allowed.has(key)) delete classitem[key]; |
| 197 | }); |
| 198 | |
| 199 | newClassItems[classitem.class] = newClassItems[classitem.class] || {}; |
| 200 | newClassItems[classitem.class][classitem.name] = classitem; |
| 201 | } |
| 202 | } |
| 203 | |
| 204 | const cleanedClassItems = cleanUpClassItems(newClassItems); |
| 205 | |
| 206 | let out = fs.createWriteStream( |
| 207 | path.join(__dirname, '../docs/parameterData.json'), |
| 208 | { |
| 209 | flags: 'w', |
| 210 | mode: '0644' |
| 211 | } |
| 212 | ); |
| 213 | out.write(JSON.stringify(cleanedClassItems, null, 2)); |
| 214 | out.end(); |
| 215 | } |
| 216 | |
| 217 | fs.mkdirSync(path.join(__dirname, '../docs/reference'), { recursive: true }); |
| 218 | fs.writeFileSync(path.join(__dirname, '../docs/reference/data.json'), JSON.stringify(converted, null, 2)); |
no test coverage detected