@rocketh/doc 0.10.4 → 0.10.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/index.cjs +0 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +0 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/public/default_templates/{{contracts}}.hbs +11 -1
package/dist/cli.cjs
CHANGED
package/dist/cli.mjs
CHANGED
package/dist/index.cjs
CHANGED
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport type {\n\tDeployment,\n\tResolvedConfig,\n\tNoticeUserDoc,\n\tArtifact,\n\tAbi,\n\tUnknownDeployments,\n\tAbiConstructor,\n\tAbiFunction,\n\tAbiError,\n\tAbiEvent,\n} from 'rocketh';\nimport {loadDeployments} from 'rocketh';\nimport Handlebars from 'handlebars';\nimport path from 'path';\nimport {Fragment, FunctionFragment} from 'ethers';\nimport {dirname} from 'path';\nimport {fileURLToPath} from 'url';\n\nimport {DocumentationData, ErrorDoc, EventDoc, MethodDoc, ParamDoc, ReturnDoc} from './types';\n\nexport * from './types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type RunOptions = {template?: string; output?: string; exceptSuffix?: string[]};\n\nfunction filter(options: RunOptions, name: string): boolean {\n\tif (options.exceptSuffix) {\n\t\tfor (const suffix of options.exceptSuffix) {\n\t\t\tif (name.endsWith(suffix)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nexport async function run(config: ResolvedConfig, options: RunOptions) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name);\n\tif (!chainId) {\n\t\tthrow new Error(`no chainId found for ${config.network.name}`);\n\t}\n\tconsole.log(deployments);\n\tgenerate({deployments}, options);\n}\n\nexport async function generate(\n\t{deployments}: {deployments: UnknownDeployments; chainId?: string},\n\toptions: RunOptions\n) {\n\tif (!deployments || Object.keys(deployments).length === 0) {\n\t\tconsole.log(`no deployments to export`);\n\t\treturn;\n\t}\n\n\tconst toDocument: UnknownDeployments = {};\n\tfor (const name of Object.keys(deployments)) {\n\t\tif (!filter(options, name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst deployment = deployments[name];\n\t\ttoDocument[name] = deployment;\n\t}\n\n\treturn generateFromDeployments(toDocument, options);\n}\n\nexport async function runFromFolder(folder: string, options: RunOptions) {\n\tconst files = fs.readdirSync(folder);\n\tconst deployments: UnknownDeployments = {};\n\tfor (const file of files) {\n\t\tif (file.endsWith('.json')) {\n\t\t\tconst name = path.basename(file, '.json');\n\t\t\tif (!filter(options, name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n\t\t\tconst deployment = JSON.parse(deploymentString);\n\t\t\tdeployments[name] = deployment;\n\t\t}\n\t}\n\n\treturn generateFromDeployments(deployments, options);\n}\n\n// export async function runFromArtifacts(folder: string, options: {template?: string; outputFolder?: string}) {\n// \tconst files = fs.readdirSync(folder);\n// \tconst deployments: UnknownDeployments = {};\n// \tfor (const file of files) {\n// \t\tif (file.endsWith('.json')) {\n// \t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n// \t\t\tconst deployment = JSON.parse(deploymentString);\n// \t\t\tdeployments[path.basename(file, '.json')] = deployment;\n// \t\t}\n// \t}\n\n// \treturn generateFromDeployments(deployments, options);\n// }\n\nexport async function generateFromDeployments(deployments: UnknownDeployments, options: RunOptions) {\n\tconst outputFolder = options.output || 'docs';\n\tconst templateFilepath = options.template || path.join(__dirname, '../public/default_templates/{{contracts}}.hbs');\n\tconst templateName = path.basename(templateFilepath, '.hbs');\n\tconst templateContent = fs.readFileSync(templateFilepath, 'utf-8');\n\tconst template = Handlebars.compile(templateContent);\n\n\tconst deploymentsList: DocumentationData[] = [];\n\tfor (const name of Object.keys(deployments)) {\n\t\tconst deployment = deployments[name];\n\t\tconst data = generateDocumentationData(name, deployment);\n\t\tdeploymentsList.push(data);\n\t}\n\n\tfs.emptyDirSync(outputFolder);\n\tif (templateName === '{{contracts}}') {\n\t\tfor (const deployment of deploymentsList) {\n\t\t\tconst generated = template(deployment);\n\t\t\tif (generated.trim() !== '') {\n\t\t\t\tfs.writeFileSync(path.join(outputFolder, deployment.name + '.md'), generated);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst generated = template({contracts: deploymentsList});\n\t\tfs.writeFileSync(path.join(outputFolder, templateName + '.md'), generated);\n\t}\n}\n\nexport function generateDocumentationData(\n\tname: string,\n\tdeploymentOrArfifact: Partial<Deployment<Abi>> & Artifact<Abi>\n): DocumentationData {\n\tconst abi = deploymentOrArfifact.abi;\n\tconst abiMap = new Map<string, AbiConstructor | AbiError | AbiEvent | AbiFunction>();\n\tfor (const abiElement of abi) {\n\t\tswitch (abiElement.type) {\n\t\t\tcase 'constructor':\n\t\t\t\tabiMap.set('constructor', abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'event':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'function':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst errors: ErrorDoc[] = [];\n\tconst events: EventDoc[] = [];\n\tconst methods: MethodDoc[] = [];\n\n\tif (deploymentOrArfifact.userdoc?.errors) {\n\t\t// we loop only through userdoc\n\t\tfor (const errorSignature of Object.keys(deploymentOrArfifact.userdoc.errors)) {\n\t\t\tconst errorName =\n\t\t\t\terrorSignature.indexOf('(') > 0 ? errorSignature.slice(0, errorSignature.indexOf('(')) : errorSignature;\n\n\t\t\tconst abi = abiMap.get(errorName) as AbiError;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst errorFromUserDoc = deploymentOrArfifact.userdoc.errors[errorSignature];\n\t\t\tconst errorFromDevDoc = deploymentOrArfifact.devdoc?.errors?.[errorSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (errorFromDevDoc) {\n\t\t\t\tfor (const doc of errorFromDevDoc) {\n\t\t\t\t\tif (doc.params) {\n\t\t\t\t\t\tfor (const paramName of paramNames || Object.keys(doc.params)) {\n\t\t\t\t\t\t\tparams.push({name: paramName, description: doc.params[paramName]});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// TODO what if same name\n\t\t\t\t\t\t// TODO what is the array for ? (look at solidity doc)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst notice: string[] = [];\n\t\t\tif (errorFromUserDoc) {\n\t\t\t\tfor (const doc of errorFromUserDoc) {\n\t\t\t\t\tif (doc.notice) {\n\t\t\t\t\t\tconst notes = doc.notice.split('\\\\');\n\t\t\t\t\t\tfor (const note of notes) {\n\t\t\t\t\t\t\tif (note != '') {\n\t\t\t\t\t\t\t\tnotice.push(note);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terrors.push({\n\t\t\t\tname: errorName,\n\t\t\t\tsignature: errorSignature,\n\t\t\t\tabi: abi,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.events) {\n\t\t// we loop only through userdoc\n\t\tfor (const eventSignature of Object.keys(deploymentOrArfifact.userdoc.events)) {\n\t\t\tconst eventName =\n\t\t\t\teventSignature.indexOf('(') > 0 ? eventSignature.slice(0, eventSignature.indexOf('(')) : eventSignature;\n\n\t\t\tconst abi = abiMap.get(eventName) as AbiEvent;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst eventFromUserDoc = deploymentOrArfifact.userdoc.events[eventSignature];\n\t\t\tconst eventFromDevDoc = deploymentOrArfifact.devdoc?.events?.[eventSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (eventFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(eventFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: eventFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevents.push({\n\t\t\t\tname: eventName,\n\t\t\t\tsignature: eventSignature,\n\t\t\t\tabi: abi as AbiEvent,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice: eventFromUserDoc.notice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.methods) {\n\t\t// we loop only through userdoc\n\t\tfor (const methodSignature of Object.keys(deploymentOrArfifact.userdoc.methods)) {\n\t\t\tconst methodName =\n\t\t\t\tmethodSignature.indexOf('(') > 0 ? methodSignature.slice(0, methodSignature.indexOf('(')) : methodSignature;\n\n\t\t\tconst abi = abiMap.get(methodName) as AbiFunction | AbiConstructor;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi ? abi.inputs.map((v, index) => v.name || `_${index}`) : undefined;\n\t\t\tconst returnNames = abi && 'outputs' in abi ? abi.outputs.map((v, index) => v.name || `_${index}`) : undefined;\n\n\t\t\tconst methodFromUserDoc = deploymentOrArfifact.userdoc.methods[methodSignature];\n\t\t\tconst methodFromDevDoc = deploymentOrArfifact.devdoc?.methods?.[methodSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (methodFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(methodFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: methodFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst returns: ReturnDoc[] = [];\n\t\t\tif (methodFromDevDoc?.returns) {\n\t\t\t\tfor (const returnName of returnNames || Object.keys(methodFromDevDoc.returns)) {\n\t\t\t\t\treturns.push({name: returnName, description: methodFromDevDoc.returns[returnName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (methodName === 'constructor') {\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'constructor',\n\t\t\t\t\tname: 'constructor',\n\t\t\t\t\tabi: abi as AbiConstructor,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst selector = FunctionFragment.from(abi).selector as `0x${string}`;\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'function',\n\t\t\t\t\tname: methodName,\n\t\t\t\t\tabi: abi as AbiFunction,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tbytes4: selector,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data: DocumentationData = {\n\t\tname,\n\t\taddress: deploymentOrArfifact.address,\n\t\tabi,\n\t\tauthor: deploymentOrArfifact.devdoc?.author,\n\t\ttitle: deploymentOrArfifact.devdoc?.title,\n\t\tnotice: deploymentOrArfifact.userdoc?.notice,\n\t\terrors,\n\t\tevents,\n\t\tmethods,\n\t};\n\treturn data;\n}\n"],"names":["__dirname","dirname","fileURLToPath","loadDeployments","Fragment","FunctionFragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport type {\n\tDeployment,\n\tResolvedConfig,\n\tNoticeUserDoc,\n\tArtifact,\n\tAbi,\n\tUnknownDeployments,\n\tAbiConstructor,\n\tAbiFunction,\n\tAbiError,\n\tAbiEvent,\n} from 'rocketh';\nimport {loadDeployments} from 'rocketh';\nimport Handlebars from 'handlebars';\nimport path from 'path';\nimport {Fragment, FunctionFragment} from 'ethers';\nimport {dirname} from 'path';\nimport {fileURLToPath} from 'url';\n\nimport {DocumentationData, ErrorDoc, EventDoc, MethodDoc, ParamDoc, ReturnDoc} from './types';\n\nexport * from './types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type RunOptions = {template?: string; output?: string; exceptSuffix?: string[]};\n\nfunction filter(options: RunOptions, name: string): boolean {\n\tif (options.exceptSuffix) {\n\t\tfor (const suffix of options.exceptSuffix) {\n\t\t\tif (name.endsWith(suffix)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nexport async function run(config: ResolvedConfig, options: RunOptions) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name);\n\tif (!chainId) {\n\t\tthrow new Error(`no chainId found for ${config.network.name}`);\n\t}\n\tgenerate({deployments}, options);\n}\n\nexport async function generate(\n\t{deployments}: {deployments: UnknownDeployments; chainId?: string},\n\toptions: RunOptions\n) {\n\tif (!deployments || Object.keys(deployments).length === 0) {\n\t\tconsole.log(`no deployments to export`);\n\t\treturn;\n\t}\n\n\tconst toDocument: UnknownDeployments = {};\n\tfor (const name of Object.keys(deployments)) {\n\t\tif (!filter(options, name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst deployment = deployments[name];\n\t\ttoDocument[name] = deployment;\n\t}\n\n\treturn generateFromDeployments(toDocument, options);\n}\n\nexport async function runFromFolder(folder: string, options: RunOptions) {\n\tconst files = fs.readdirSync(folder);\n\tconst deployments: UnknownDeployments = {};\n\tfor (const file of files) {\n\t\tif (file.endsWith('.json')) {\n\t\t\tconst name = path.basename(file, '.json');\n\t\t\tif (!filter(options, name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n\t\t\tconst deployment = JSON.parse(deploymentString);\n\t\t\tdeployments[name] = deployment;\n\t\t}\n\t}\n\n\treturn generateFromDeployments(deployments, options);\n}\n\n// export async function runFromArtifacts(folder: string, options: {template?: string; outputFolder?: string}) {\n// \tconst files = fs.readdirSync(folder);\n// \tconst deployments: UnknownDeployments = {};\n// \tfor (const file of files) {\n// \t\tif (file.endsWith('.json')) {\n// \t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n// \t\t\tconst deployment = JSON.parse(deploymentString);\n// \t\t\tdeployments[path.basename(file, '.json')] = deployment;\n// \t\t}\n// \t}\n\n// \treturn generateFromDeployments(deployments, options);\n// }\n\nexport async function generateFromDeployments(deployments: UnknownDeployments, options: RunOptions) {\n\tconst outputFolder = options.output || 'docs';\n\tconst templateFilepath = options.template || path.join(__dirname, '../public/default_templates/{{contracts}}.hbs');\n\tconst templateName = path.basename(templateFilepath, '.hbs');\n\tconst templateContent = fs.readFileSync(templateFilepath, 'utf-8');\n\tconst template = Handlebars.compile(templateContent);\n\n\tconst deploymentsList: DocumentationData[] = [];\n\tfor (const name of Object.keys(deployments)) {\n\t\tconst deployment = deployments[name];\n\t\tconst data = generateDocumentationData(name, deployment);\n\t\tdeploymentsList.push(data);\n\t}\n\n\tfs.emptyDirSync(outputFolder);\n\tif (templateName === '{{contracts}}') {\n\t\tfor (const deployment of deploymentsList) {\n\t\t\tconst generated = template(deployment);\n\t\t\tif (generated.trim() !== '') {\n\t\t\t\tfs.writeFileSync(path.join(outputFolder, deployment.name + '.md'), generated);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst generated = template({contracts: deploymentsList});\n\t\tfs.writeFileSync(path.join(outputFolder, templateName + '.md'), generated);\n\t}\n}\n\nexport function generateDocumentationData(\n\tname: string,\n\tdeploymentOrArfifact: Partial<Deployment<Abi>> & Artifact<Abi>\n): DocumentationData {\n\tconst abi = deploymentOrArfifact.abi;\n\tconst abiMap = new Map<string, AbiConstructor | AbiError | AbiEvent | AbiFunction>();\n\tfor (const abiElement of abi) {\n\t\tswitch (abiElement.type) {\n\t\t\tcase 'constructor':\n\t\t\t\tabiMap.set('constructor', abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'event':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'function':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst errors: ErrorDoc[] = [];\n\tconst events: EventDoc[] = [];\n\tconst methods: MethodDoc[] = [];\n\n\tif (deploymentOrArfifact.userdoc?.errors) {\n\t\t// we loop only through userdoc\n\t\tfor (const errorSignature of Object.keys(deploymentOrArfifact.userdoc.errors)) {\n\t\t\tconst errorName =\n\t\t\t\terrorSignature.indexOf('(') > 0 ? errorSignature.slice(0, errorSignature.indexOf('(')) : errorSignature;\n\n\t\t\tconst abi = abiMap.get(errorName) as AbiError;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst errorFromUserDoc = deploymentOrArfifact.userdoc.errors[errorSignature];\n\t\t\tconst errorFromDevDoc = deploymentOrArfifact.devdoc?.errors?.[errorSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (errorFromDevDoc) {\n\t\t\t\tfor (const doc of errorFromDevDoc) {\n\t\t\t\t\tif (doc.params) {\n\t\t\t\t\t\tfor (const paramName of paramNames || Object.keys(doc.params)) {\n\t\t\t\t\t\t\tparams.push({name: paramName, description: doc.params[paramName]});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// TODO what if same name\n\t\t\t\t\t\t// TODO what is the array for ? (look at solidity doc)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst notice: string[] = [];\n\t\t\tif (errorFromUserDoc) {\n\t\t\t\tfor (const doc of errorFromUserDoc) {\n\t\t\t\t\tif (doc.notice) {\n\t\t\t\t\t\tconst notes = doc.notice.split('\\\\');\n\t\t\t\t\t\tfor (const note of notes) {\n\t\t\t\t\t\t\tif (note != '') {\n\t\t\t\t\t\t\t\tnotice.push(note);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terrors.push({\n\t\t\t\tname: errorName,\n\t\t\t\tsignature: errorSignature,\n\t\t\t\tabi: abi,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.events) {\n\t\t// we loop only through userdoc\n\t\tfor (const eventSignature of Object.keys(deploymentOrArfifact.userdoc.events)) {\n\t\t\tconst eventName =\n\t\t\t\teventSignature.indexOf('(') > 0 ? eventSignature.slice(0, eventSignature.indexOf('(')) : eventSignature;\n\n\t\t\tconst abi = abiMap.get(eventName) as AbiEvent;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst eventFromUserDoc = deploymentOrArfifact.userdoc.events[eventSignature];\n\t\t\tconst eventFromDevDoc = deploymentOrArfifact.devdoc?.events?.[eventSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (eventFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(eventFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: eventFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevents.push({\n\t\t\t\tname: eventName,\n\t\t\t\tsignature: eventSignature,\n\t\t\t\tabi: abi as AbiEvent,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice: eventFromUserDoc.notice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.methods) {\n\t\t// we loop only through userdoc\n\t\tfor (const methodSignature of Object.keys(deploymentOrArfifact.userdoc.methods)) {\n\t\t\tconst methodName =\n\t\t\t\tmethodSignature.indexOf('(') > 0 ? methodSignature.slice(0, methodSignature.indexOf('(')) : methodSignature;\n\n\t\t\tconst abi = abiMap.get(methodName) as AbiFunction | AbiConstructor;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi ? abi.inputs.map((v, index) => v.name || `_${index}`) : undefined;\n\t\t\tconst returnNames = abi && 'outputs' in abi ? abi.outputs.map((v, index) => v.name || `_${index}`) : undefined;\n\n\t\t\tconst methodFromUserDoc = deploymentOrArfifact.userdoc.methods[methodSignature];\n\t\t\tconst methodFromDevDoc = deploymentOrArfifact.devdoc?.methods?.[methodSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (methodFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(methodFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: methodFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst returns: ReturnDoc[] = [];\n\t\t\tif (methodFromDevDoc?.returns) {\n\t\t\t\tfor (const returnName of returnNames || Object.keys(methodFromDevDoc.returns)) {\n\t\t\t\t\treturns.push({name: returnName, description: methodFromDevDoc.returns[returnName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (methodName === 'constructor') {\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'constructor',\n\t\t\t\t\tname: 'constructor',\n\t\t\t\t\tabi: abi as AbiConstructor,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst selector = FunctionFragment.from(abi).selector as `0x${string}`;\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'function',\n\t\t\t\t\tname: methodName,\n\t\t\t\t\tabi: abi as AbiFunction,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tbytes4: selector,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data: DocumentationData = {\n\t\tname,\n\t\taddress: deploymentOrArfifact.address,\n\t\tabi,\n\t\tauthor: deploymentOrArfifact.devdoc?.author,\n\t\ttitle: deploymentOrArfifact.devdoc?.title,\n\t\tnotice: deploymentOrArfifact.userdoc?.notice,\n\t\terrors,\n\t\tevents,\n\t\tmethods,\n\t};\n\treturn data;\n}\n"],"names":["__dirname","dirname","fileURLToPath","loadDeployments","Fragment","FunctionFragment"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport type {\n\tDeployment,\n\tResolvedConfig,\n\tNoticeUserDoc,\n\tArtifact,\n\tAbi,\n\tUnknownDeployments,\n\tAbiConstructor,\n\tAbiFunction,\n\tAbiError,\n\tAbiEvent,\n} from 'rocketh';\nimport {loadDeployments} from 'rocketh';\nimport Handlebars from 'handlebars';\nimport path from 'path';\nimport {Fragment, FunctionFragment} from 'ethers';\nimport {dirname} from 'path';\nimport {fileURLToPath} from 'url';\n\nimport {DocumentationData, ErrorDoc, EventDoc, MethodDoc, ParamDoc, ReturnDoc} from './types';\n\nexport * from './types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type RunOptions = {template?: string; output?: string; exceptSuffix?: string[]};\n\nfunction filter(options: RunOptions, name: string): boolean {\n\tif (options.exceptSuffix) {\n\t\tfor (const suffix of options.exceptSuffix) {\n\t\t\tif (name.endsWith(suffix)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nexport async function run(config: ResolvedConfig, options: RunOptions) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name);\n\tif (!chainId) {\n\t\tthrow new Error(`no chainId found for ${config.network.name}`);\n\t}\n\tconsole.log(deployments);\n\tgenerate({deployments}, options);\n}\n\nexport async function generate(\n\t{deployments}: {deployments: UnknownDeployments; chainId?: string},\n\toptions: RunOptions\n) {\n\tif (!deployments || Object.keys(deployments).length === 0) {\n\t\tconsole.log(`no deployments to export`);\n\t\treturn;\n\t}\n\n\tconst toDocument: UnknownDeployments = {};\n\tfor (const name of Object.keys(deployments)) {\n\t\tif (!filter(options, name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst deployment = deployments[name];\n\t\ttoDocument[name] = deployment;\n\t}\n\n\treturn generateFromDeployments(toDocument, options);\n}\n\nexport async function runFromFolder(folder: string, options: RunOptions) {\n\tconst files = fs.readdirSync(folder);\n\tconst deployments: UnknownDeployments = {};\n\tfor (const file of files) {\n\t\tif (file.endsWith('.json')) {\n\t\t\tconst name = path.basename(file, '.json');\n\t\t\tif (!filter(options, name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n\t\t\tconst deployment = JSON.parse(deploymentString);\n\t\t\tdeployments[name] = deployment;\n\t\t}\n\t}\n\n\treturn generateFromDeployments(deployments, options);\n}\n\n// export async function runFromArtifacts(folder: string, options: {template?: string; outputFolder?: string}) {\n// \tconst files = fs.readdirSync(folder);\n// \tconst deployments: UnknownDeployments = {};\n// \tfor (const file of files) {\n// \t\tif (file.endsWith('.json')) {\n// \t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n// \t\t\tconst deployment = JSON.parse(deploymentString);\n// \t\t\tdeployments[path.basename(file, '.json')] = deployment;\n// \t\t}\n// \t}\n\n// \treturn generateFromDeployments(deployments, options);\n// }\n\nexport async function generateFromDeployments(deployments: UnknownDeployments, options: RunOptions) {\n\tconst outputFolder = options.output || 'docs';\n\tconst templateFilepath = options.template || path.join(__dirname, '../public/default_templates/{{contracts}}.hbs');\n\tconst templateName = path.basename(templateFilepath, '.hbs');\n\tconst templateContent = fs.readFileSync(templateFilepath, 'utf-8');\n\tconst template = Handlebars.compile(templateContent);\n\n\tconst deploymentsList: DocumentationData[] = [];\n\tfor (const name of Object.keys(deployments)) {\n\t\tconst deployment = deployments[name];\n\t\tconst data = generateDocumentationData(name, deployment);\n\t\tdeploymentsList.push(data);\n\t}\n\n\tfs.emptyDirSync(outputFolder);\n\tif (templateName === '{{contracts}}') {\n\t\tfor (const deployment of deploymentsList) {\n\t\t\tconst generated = template(deployment);\n\t\t\tif (generated.trim() !== '') {\n\t\t\t\tfs.writeFileSync(path.join(outputFolder, deployment.name + '.md'), generated);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst generated = template({contracts: deploymentsList});\n\t\tfs.writeFileSync(path.join(outputFolder, templateName + '.md'), generated);\n\t}\n}\n\nexport function generateDocumentationData(\n\tname: string,\n\tdeploymentOrArfifact: Partial<Deployment<Abi>> & Artifact<Abi>\n): DocumentationData {\n\tconst abi = deploymentOrArfifact.abi;\n\tconst abiMap = new Map<string, AbiConstructor | AbiError | AbiEvent | AbiFunction>();\n\tfor (const abiElement of abi) {\n\t\tswitch (abiElement.type) {\n\t\t\tcase 'constructor':\n\t\t\t\tabiMap.set('constructor', abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'event':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'function':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst errors: ErrorDoc[] = [];\n\tconst events: EventDoc[] = [];\n\tconst methods: MethodDoc[] = [];\n\n\tif (deploymentOrArfifact.userdoc?.errors) {\n\t\t// we loop only through userdoc\n\t\tfor (const errorSignature of Object.keys(deploymentOrArfifact.userdoc.errors)) {\n\t\t\tconst errorName =\n\t\t\t\terrorSignature.indexOf('(') > 0 ? errorSignature.slice(0, errorSignature.indexOf('(')) : errorSignature;\n\n\t\t\tconst abi = abiMap.get(errorName) as AbiError;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst errorFromUserDoc = deploymentOrArfifact.userdoc.errors[errorSignature];\n\t\t\tconst errorFromDevDoc = deploymentOrArfifact.devdoc?.errors?.[errorSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (errorFromDevDoc) {\n\t\t\t\tfor (const doc of errorFromDevDoc) {\n\t\t\t\t\tif (doc.params) {\n\t\t\t\t\t\tfor (const paramName of paramNames || Object.keys(doc.params)) {\n\t\t\t\t\t\t\tparams.push({name: paramName, description: doc.params[paramName]});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// TODO what if same name\n\t\t\t\t\t\t// TODO what is the array for ? (look at solidity doc)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst notice: string[] = [];\n\t\t\tif (errorFromUserDoc) {\n\t\t\t\tfor (const doc of errorFromUserDoc) {\n\t\t\t\t\tif (doc.notice) {\n\t\t\t\t\t\tconst notes = doc.notice.split('\\\\');\n\t\t\t\t\t\tfor (const note of notes) {\n\t\t\t\t\t\t\tif (note != '') {\n\t\t\t\t\t\t\t\tnotice.push(note);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terrors.push({\n\t\t\t\tname: errorName,\n\t\t\t\tsignature: errorSignature,\n\t\t\t\tabi: abi,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.events) {\n\t\t// we loop only through userdoc\n\t\tfor (const eventSignature of Object.keys(deploymentOrArfifact.userdoc.events)) {\n\t\t\tconst eventName =\n\t\t\t\teventSignature.indexOf('(') > 0 ? eventSignature.slice(0, eventSignature.indexOf('(')) : eventSignature;\n\n\t\t\tconst abi = abiMap.get(eventName) as AbiEvent;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst eventFromUserDoc = deploymentOrArfifact.userdoc.events[eventSignature];\n\t\t\tconst eventFromDevDoc = deploymentOrArfifact.devdoc?.events?.[eventSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (eventFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(eventFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: eventFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevents.push({\n\t\t\t\tname: eventName,\n\t\t\t\tsignature: eventSignature,\n\t\t\t\tabi: abi as AbiEvent,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice: eventFromUserDoc.notice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.methods) {\n\t\t// we loop only through userdoc\n\t\tfor (const methodSignature of Object.keys(deploymentOrArfifact.userdoc.methods)) {\n\t\t\tconst methodName =\n\t\t\t\tmethodSignature.indexOf('(') > 0 ? methodSignature.slice(0, methodSignature.indexOf('(')) : methodSignature;\n\n\t\t\tconst abi = abiMap.get(methodName) as AbiFunction | AbiConstructor;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi ? abi.inputs.map((v, index) => v.name || `_${index}`) : undefined;\n\t\t\tconst returnNames = abi && 'outputs' in abi ? abi.outputs.map((v, index) => v.name || `_${index}`) : undefined;\n\n\t\t\tconst methodFromUserDoc = deploymentOrArfifact.userdoc.methods[methodSignature];\n\t\t\tconst methodFromDevDoc = deploymentOrArfifact.devdoc?.methods?.[methodSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (methodFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(methodFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: methodFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst returns: ReturnDoc[] = [];\n\t\t\tif (methodFromDevDoc?.returns) {\n\t\t\t\tfor (const returnName of returnNames || Object.keys(methodFromDevDoc.returns)) {\n\t\t\t\t\treturns.push({name: returnName, description: methodFromDevDoc.returns[returnName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (methodName === 'constructor') {\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'constructor',\n\t\t\t\t\tname: 'constructor',\n\t\t\t\t\tabi: abi as AbiConstructor,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst selector = FunctionFragment.from(abi).selector as `0x${string}`;\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'function',\n\t\t\t\t\tname: methodName,\n\t\t\t\t\tabi: abi as AbiFunction,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tbytes4: selector,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data: DocumentationData = {\n\t\tname,\n\t\taddress: deploymentOrArfifact.address,\n\t\tabi,\n\t\tauthor: deploymentOrArfifact.devdoc?.author,\n\t\ttitle: deploymentOrArfifact.devdoc?.title,\n\t\tnotice: deploymentOrArfifact.userdoc?.notice,\n\t\terrors,\n\t\tevents,\n\t\tmethods,\n\t};\n\treturn data;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport type {\n\tDeployment,\n\tResolvedConfig,\n\tNoticeUserDoc,\n\tArtifact,\n\tAbi,\n\tUnknownDeployments,\n\tAbiConstructor,\n\tAbiFunction,\n\tAbiError,\n\tAbiEvent,\n} from 'rocketh';\nimport {loadDeployments} from 'rocketh';\nimport Handlebars from 'handlebars';\nimport path from 'path';\nimport {Fragment, FunctionFragment} from 'ethers';\nimport {dirname} from 'path';\nimport {fileURLToPath} from 'url';\n\nimport {DocumentationData, ErrorDoc, EventDoc, MethodDoc, ParamDoc, ReturnDoc} from './types';\n\nexport * from './types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type RunOptions = {template?: string; output?: string; exceptSuffix?: string[]};\n\nfunction filter(options: RunOptions, name: string): boolean {\n\tif (options.exceptSuffix) {\n\t\tfor (const suffix of options.exceptSuffix) {\n\t\t\tif (name.endsWith(suffix)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nexport async function run(config: ResolvedConfig, options: RunOptions) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name);\n\tif (!chainId) {\n\t\tthrow new Error(`no chainId found for ${config.network.name}`);\n\t}\n\tgenerate({deployments}, options);\n}\n\nexport async function generate(\n\t{deployments}: {deployments: UnknownDeployments; chainId?: string},\n\toptions: RunOptions\n) {\n\tif (!deployments || Object.keys(deployments).length === 0) {\n\t\tconsole.log(`no deployments to export`);\n\t\treturn;\n\t}\n\n\tconst toDocument: UnknownDeployments = {};\n\tfor (const name of Object.keys(deployments)) {\n\t\tif (!filter(options, name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst deployment = deployments[name];\n\t\ttoDocument[name] = deployment;\n\t}\n\n\treturn generateFromDeployments(toDocument, options);\n}\n\nexport async function runFromFolder(folder: string, options: RunOptions) {\n\tconst files = fs.readdirSync(folder);\n\tconst deployments: UnknownDeployments = {};\n\tfor (const file of files) {\n\t\tif (file.endsWith('.json')) {\n\t\t\tconst name = path.basename(file, '.json');\n\t\t\tif (!filter(options, name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n\t\t\tconst deployment = JSON.parse(deploymentString);\n\t\t\tdeployments[name] = deployment;\n\t\t}\n\t}\n\n\treturn generateFromDeployments(deployments, options);\n}\n\n// export async function runFromArtifacts(folder: string, options: {template?: string; outputFolder?: string}) {\n// \tconst files = fs.readdirSync(folder);\n// \tconst deployments: UnknownDeployments = {};\n// \tfor (const file of files) {\n// \t\tif (file.endsWith('.json')) {\n// \t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n// \t\t\tconst deployment = JSON.parse(deploymentString);\n// \t\t\tdeployments[path.basename(file, '.json')] = deployment;\n// \t\t}\n// \t}\n\n// \treturn generateFromDeployments(deployments, options);\n// }\n\nexport async function generateFromDeployments(deployments: UnknownDeployments, options: RunOptions) {\n\tconst outputFolder = options.output || 'docs';\n\tconst templateFilepath = options.template || path.join(__dirname, '../public/default_templates/{{contracts}}.hbs');\n\tconst templateName = path.basename(templateFilepath, '.hbs');\n\tconst templateContent = fs.readFileSync(templateFilepath, 'utf-8');\n\tconst template = Handlebars.compile(templateContent);\n\n\tconst deploymentsList: DocumentationData[] = [];\n\tfor (const name of Object.keys(deployments)) {\n\t\tconst deployment = deployments[name];\n\t\tconst data = generateDocumentationData(name, deployment);\n\t\tdeploymentsList.push(data);\n\t}\n\n\tfs.emptyDirSync(outputFolder);\n\tif (templateName === '{{contracts}}') {\n\t\tfor (const deployment of deploymentsList) {\n\t\t\tconst generated = template(deployment);\n\t\t\tif (generated.trim() !== '') {\n\t\t\t\tfs.writeFileSync(path.join(outputFolder, deployment.name + '.md'), generated);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst generated = template({contracts: deploymentsList});\n\t\tfs.writeFileSync(path.join(outputFolder, templateName + '.md'), generated);\n\t}\n}\n\nexport function generateDocumentationData(\n\tname: string,\n\tdeploymentOrArfifact: Partial<Deployment<Abi>> & Artifact<Abi>\n): DocumentationData {\n\tconst abi = deploymentOrArfifact.abi;\n\tconst abiMap = new Map<string, AbiConstructor | AbiError | AbiEvent | AbiFunction>();\n\tfor (const abiElement of abi) {\n\t\tswitch (abiElement.type) {\n\t\t\tcase 'constructor':\n\t\t\t\tabiMap.set('constructor', abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'event':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'function':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst errors: ErrorDoc[] = [];\n\tconst events: EventDoc[] = [];\n\tconst methods: MethodDoc[] = [];\n\n\tif (deploymentOrArfifact.userdoc?.errors) {\n\t\t// we loop only through userdoc\n\t\tfor (const errorSignature of Object.keys(deploymentOrArfifact.userdoc.errors)) {\n\t\t\tconst errorName =\n\t\t\t\terrorSignature.indexOf('(') > 0 ? errorSignature.slice(0, errorSignature.indexOf('(')) : errorSignature;\n\n\t\t\tconst abi = abiMap.get(errorName) as AbiError;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst errorFromUserDoc = deploymentOrArfifact.userdoc.errors[errorSignature];\n\t\t\tconst errorFromDevDoc = deploymentOrArfifact.devdoc?.errors?.[errorSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (errorFromDevDoc) {\n\t\t\t\tfor (const doc of errorFromDevDoc) {\n\t\t\t\t\tif (doc.params) {\n\t\t\t\t\t\tfor (const paramName of paramNames || Object.keys(doc.params)) {\n\t\t\t\t\t\t\tparams.push({name: paramName, description: doc.params[paramName]});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// TODO what if same name\n\t\t\t\t\t\t// TODO what is the array for ? (look at solidity doc)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst notice: string[] = [];\n\t\t\tif (errorFromUserDoc) {\n\t\t\t\tfor (const doc of errorFromUserDoc) {\n\t\t\t\t\tif (doc.notice) {\n\t\t\t\t\t\tconst notes = doc.notice.split('\\\\');\n\t\t\t\t\t\tfor (const note of notes) {\n\t\t\t\t\t\t\tif (note != '') {\n\t\t\t\t\t\t\t\tnotice.push(note);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terrors.push({\n\t\t\t\tname: errorName,\n\t\t\t\tsignature: errorSignature,\n\t\t\t\tabi: abi,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.events) {\n\t\t// we loop only through userdoc\n\t\tfor (const eventSignature of Object.keys(deploymentOrArfifact.userdoc.events)) {\n\t\t\tconst eventName =\n\t\t\t\teventSignature.indexOf('(') > 0 ? eventSignature.slice(0, eventSignature.indexOf('(')) : eventSignature;\n\n\t\t\tconst abi = abiMap.get(eventName) as AbiEvent;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst eventFromUserDoc = deploymentOrArfifact.userdoc.events[eventSignature];\n\t\t\tconst eventFromDevDoc = deploymentOrArfifact.devdoc?.events?.[eventSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (eventFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(eventFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: eventFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevents.push({\n\t\t\t\tname: eventName,\n\t\t\t\tsignature: eventSignature,\n\t\t\t\tabi: abi as AbiEvent,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice: eventFromUserDoc.notice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.methods) {\n\t\t// we loop only through userdoc\n\t\tfor (const methodSignature of Object.keys(deploymentOrArfifact.userdoc.methods)) {\n\t\t\tconst methodName =\n\t\t\t\tmethodSignature.indexOf('(') > 0 ? methodSignature.slice(0, methodSignature.indexOf('(')) : methodSignature;\n\n\t\t\tconst abi = abiMap.get(methodName) as AbiFunction | AbiConstructor;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi ? abi.inputs.map((v, index) => v.name || `_${index}`) : undefined;\n\t\t\tconst returnNames = abi && 'outputs' in abi ? abi.outputs.map((v, index) => v.name || `_${index}`) : undefined;\n\n\t\t\tconst methodFromUserDoc = deploymentOrArfifact.userdoc.methods[methodSignature];\n\t\t\tconst methodFromDevDoc = deploymentOrArfifact.devdoc?.methods?.[methodSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (methodFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(methodFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: methodFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst returns: ReturnDoc[] = [];\n\t\t\tif (methodFromDevDoc?.returns) {\n\t\t\t\tfor (const returnName of returnNames || Object.keys(methodFromDevDoc.returns)) {\n\t\t\t\t\treturns.push({name: returnName, description: methodFromDevDoc.returns[returnName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (methodName === 'constructor') {\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'constructor',\n\t\t\t\t\tname: 'constructor',\n\t\t\t\t\tabi: abi as AbiConstructor,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst selector = FunctionFragment.from(abi).selector as `0x${string}`;\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'function',\n\t\t\t\t\tname: methodName,\n\t\t\t\t\tabi: abi as AbiFunction,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tbytes4: selector,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data: DocumentationData = {\n\t\tname,\n\t\taddress: deploymentOrArfifact.address,\n\t\tabi,\n\t\tauthor: deploymentOrArfifact.devdoc?.author,\n\t\ttitle: deploymentOrArfifact.devdoc?.title,\n\t\tnotice: deploymentOrArfifact.userdoc?.notice,\n\t\terrors,\n\t\tevents,\n\t\tmethods,\n\t};\n\treturn data;\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rocketh/doc",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.6",
|
|
4
4
|
"description": "can generate doc from rocketh deployments and provided template",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"pkgroll": "^2.0.2",
|
|
33
33
|
"rimraf": "^5.0.5",
|
|
34
34
|
"typescript": "^5.4.5",
|
|
35
|
-
"rocketh": "0.10.
|
|
35
|
+
"rocketh": "0.10.13"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"rocketh": "0.10.
|
|
38
|
+
"rocketh": "0.10.13"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@types/fs-extra": "^11.0.4",
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
outline: deep
|
|
3
|
+
---
|
|
1
4
|
# {{{name}}}
|
|
2
5
|
|
|
3
6
|
|
|
@@ -35,6 +38,8 @@
|
|
|
35
38
|
{{/if}}
|
|
36
39
|
|
|
37
40
|
{{#if events.length}}
|
|
41
|
+
## Events
|
|
42
|
+
|
|
38
43
|
{{#each events}}
|
|
39
44
|
### **{{{name}}}**
|
|
40
45
|
|
|
@@ -56,10 +61,15 @@
|
|
|
56
61
|
{{/if}}
|
|
57
62
|
|
|
58
63
|
{{#if errors.length}}
|
|
64
|
+
## Errors
|
|
65
|
+
|
|
59
66
|
{{#each errors}}
|
|
60
67
|
### **{{{name}}}**
|
|
61
68
|
|
|
62
|
-
{{
|
|
69
|
+
{{#each notice}}
|
|
70
|
+
{{{this}}}
|
|
71
|
+
|
|
72
|
+
{{/each}}
|
|
63
73
|
|
|
64
74
|
{{{fullFormat}}}
|
|
65
75
|
|