@apify/docusaurus-plugin-typedoc-api 4.2.2 → 4.2.3-0

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/lib/index.js CHANGED
@@ -10,6 +10,7 @@ const path = require('node:path');
10
10
  const server = require('@docusaurus/plugin-content-docs/server');
11
11
  const utils = require('@docusaurus/utils');
12
12
  const data = require('./plugin/data.js');
13
+ const index = require('./plugin/python-generator/index.js');
13
14
  const sidebar = require('./plugin/sidebar.js');
14
15
  const version = require('./plugin/version.js');
15
16
  const _interopDefault = e => e && e.__esModule ? e : {
@@ -48,7 +49,8 @@ const DEFAULT_OPTIONS = {
48
49
  typedocOptions: {},
49
50
  remarkPlugins: [],
50
51
  rehypePlugins: [],
51
- versions: {}
52
+ versions: {},
53
+ python: false
52
54
  };
53
55
  async function importFile(file) {
54
56
  const data = await fs__default.default.promises.readFile(file, 'utf8');
@@ -114,7 +116,14 @@ function typedocApiPlugin(context, pluginOptions) {
114
116
  const outDir = path__default.default.join(versionsDocsDir, `version-${version}`);
115
117
  const prefix = isDefaultPluginId ? 'api' : pluginId;
116
118
  console.log(`[${prefix}]:`, 'Generating docs...');
117
- await data.generateJson(projectRoot, entryPoints, path__default.default.join(outDir, 'api-typedoc.json'), options);
119
+ if (options.python) {
120
+ await index.generateJsonFromPythonProject({
121
+ projectRoot,
122
+ outFile: path__default.default.join(outDir, 'api-typedoc.json')
123
+ });
124
+ } else {
125
+ await data.generateJson(projectRoot, entryPoints, path__default.default.join(outDir, 'api-typedoc.json'), options);
126
+ }
118
127
  console.log(`[${prefix}]:`, 'Persisting packages...');
119
128
 
120
129
  // Load info from `package.json`s
@@ -147,6 +156,11 @@ function typedocApiPlugin(context, pluginOptions) {
147
156
  });
148
157
  }
149
158
  fs__default.default.copyFileSync(options.pathToCurrentVersionTypedocJSON, outFile);
159
+ } else if (options.python) {
160
+ await index.generateJsonFromPythonProject({
161
+ projectRoot,
162
+ outFile
163
+ });
150
164
  } else {
151
165
  await data.generateJson(projectRoot, entryPoints, outFile, options);
152
166
  }
@@ -223,7 +237,7 @@ function typedocApiPlugin(context, pluginOptions) {
223
237
  return {
224
238
  path: info.permalink,
225
239
  exact: true,
226
- component: path__default.default.join(__dirname, './components/ApiItem.js'),
240
+ component: path__default.default.join(__dirname, `./components/ApiItem.${process.env.DEV ? 'tsx' : 'js'}`),
227
241
  modules,
228
242
  sidebar: 'api',
229
243
  // Map the ID here instead of creating a JSON data file,
@@ -283,7 +297,7 @@ function typedocApiPlugin(context, pluginOptions) {
283
297
  routes: [{
284
298
  path: indexPermalink,
285
299
  exact: false,
286
- component: path__default.default.join(__dirname, './components/ApiPage.js'),
300
+ component: path__default.default.join(__dirname, `./components/ApiPage.${process.env.DEV ? 'tsx' : 'js'}`),
287
301
  routes,
288
302
  modules: {
289
303
  options: optionsData,
@@ -306,6 +320,9 @@ function typedocApiPlugin(context, pluginOptions) {
306
320
  routes: rootRoutes
307
321
  });
308
322
  },
323
+ getPathsToWatch() {
324
+ return [__dirname];
325
+ },
309
326
  configureWebpack(config, isServer, utils) {
310
327
  if (!readmes && !changelogs) {
311
328
  return {};
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":null,"names":["DEFAULT_PLUGIN_ID","fs","readVersionsMetadata","getVersionedDocsDirPath","path","generateJson","loadPackageJsonAndDocs","CURRENT_VERSION_NAME","flattenAndGroupPackages","extractSidebar","formatPackagesWithoutHostInfo","normalizeUrl"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":null,"names":["DEFAULT_PLUGIN_ID","fs","readVersionsMetadata","getVersionedDocsDirPath","path","generateJsonFromPythonProject","generateJson","loadPackageJsonAndDocs","CURRENT_VERSION_NAME","flattenAndGroupPackages","extractSidebar","formatPackagesWithoutHostInfo","normalizeUrl"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ const pydocMarkdown = require('./pydoc-markdown.js');
4
+ const transformDocs = require('./transform-docs.js');
5
+ async function generateJsonFromPythonProject({
6
+ outFile,
7
+ projectRoot
8
+ }) {
9
+ const pydocJson = await pydocMarkdown.parseWithPydocMarkdown({
10
+ projectRoot
11
+ });
12
+ await transformDocs.pydocToTypedoc({
13
+ moduleName: 'python',
14
+ // TODO: get from project config files or passed options
15
+ outFile,
16
+ pydocJson
17
+ });
18
+ }
19
+ exports.generateJsonFromPythonProject = generateJsonFromPythonProject;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/plugin/python-generator/index.ts"],"sourcesContent":null,"names":["parseWithPydocMarkdown","pydocToTypedoc"],"mappings":";;;;;AAEO,eAAe,6BAA6B,CAAC;AACpD,EAAE,OAAO;AACT,EAAE,WAAW;AACb,CAAC,EAAE;AACH,EAAE,MAAM,SAAS,GAAG,MAAMA,oCAAsB,CAAC;AACjD,IAAI,WAAW;AACf,GAAG,CAAC,CAAC;AACL,EAAE,MAAMC,4BAAc,CAAC;AACvB,IAAI,UAAU,EAAE,QAAQ;AACxB;AACA,IAAI,OAAO;AACX,IAAI,SAAS;AACb,GAAG,CAAC,CAAC;AACL;;;;"}
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ const fs = require('node:fs');
4
+ const path = require('node:path');
5
+ const zx = require('zx');
6
+ const _interopDefault = e => e && e.__esModule ? e : {
7
+ default: e
8
+ };
9
+ const path__default = /*#__PURE__*/_interopDefault(path);
10
+
11
+ /**
12
+ * Generates the pydoc-markdown configuration file
13
+ * @returns The pydoc-markdown configuration file as a string
14
+ */
15
+ function getConfigYml({
16
+ projectRoot
17
+ }) {
18
+ return `
19
+ loaders:
20
+ - type: python
21
+ search_path: ["${projectRoot}"]
22
+ processors:
23
+ - type: filter
24
+ skip_empty_modules: true
25
+ - type: crossref
26
+ renderer:
27
+ type: docusaurus
28
+ docs_base_path: docs
29
+ relative_output_path: reference
30
+ relative_sidebar_path: sidebar.json
31
+ sidebar_top_level_label: null
32
+ `;
33
+ }
34
+ async function parseWithPydocMarkdown({
35
+ projectRoot
36
+ }) {
37
+ // Check whether the user has Python and pydoc-markdown installed
38
+ for (const cmd of ['python', 'pydoc-markdown']) {
39
+ try {
40
+ // eslint-disable-next-line no-await-in-loop
41
+ await zx.$`${cmd} --version`;
42
+ } catch {
43
+ throw new Error(`Please install ${cmd} to use this plugin with Python projects.`);
44
+ }
45
+ }
46
+ ;
47
+
48
+ // Generate the JSON file
49
+ try {
50
+ const configYml = getConfigYml({
51
+ projectRoot
52
+ });
53
+ const configPath = path__default.default.join(__dirname, 'pydoc-markdown.temp.yml');
54
+ fs.writeFileSync(configPath, configYml);
55
+ const pydoc = await zx.$`pydoc-markdown --quiet --dump ${configPath}`;
56
+ fs.rmSync(configPath);
57
+ let json = await pydoc.text();
58
+ json = json.replaceAll(path__default.default.resolve(projectRoot), 'REPO_ROOT_PLACEHOLDER');
59
+ return json;
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ } catch (error) {
62
+ // eslint-disable-next-line
63
+ throw new Error(`Failed to generate JSON file from Python project:\n\t${error.stderr.split('\n').slice(-2).join('\n')}`);
64
+ }
65
+ }
66
+ exports.parseWithPydocMarkdown = parseWithPydocMarkdown;
67
+ //# sourceMappingURL=pydoc-markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pydoc-markdown.js","sources":["../../../src/plugin/python-generator/pydoc-markdown.ts"],"sourcesContent":null,"names":["$","path","writeFileSync","rmSync"],"mappings":";;;;;;;;;;AAIA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC;AACtB,EAAE,WAAW;AACb,CAAC,EAAE;AACH,EAAE,OAAO,CAAC;AACV;AACA;AACA,mBAAmB,EAAE,WAAW,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,CAAC;AACM,eAAe,sBAAsB,CAAC;AAC7C,EAAE,WAAW;AACb,CAAC,EAAE;AACH;AACA,EAAE,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE;AAClD,IAAI,IAAI;AACR;AACA,MAAM,MAAMA,IAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,KAAK,CAAC,MAAM;AACZ,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;AACxF,KAAK;AACL,GAAG;AACH,EAAE,CAAC;AACH;AACA;AACA,EAAE,IAAI;AACN,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC;AACnC,MAAM,WAAW;AACjB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,UAAU,GAAGC,qBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;AACvE,IAAIC,gBAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACzC,IAAI,MAAM,KAAK,GAAG,MAAMF,IAAC,CAAC,8BAA8B,EAAE,UAAU,CAAC,CAAC,CAAC;AACvE,IAAIG,SAAM,CAAC,UAAU,CAAC,CAAC;AACvB,IAAI,IAAI,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;AAClC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAACF,qBAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC,CAAC;AAC/E,IAAI,OAAO,IAAI,CAAC;AAChB;AACA,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB;AACA,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,qDAAqD,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7H,GAAG;AACH;;;;"}
@@ -0,0 +1,393 @@
1
+ 'use strict';
2
+
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
7
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
11
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
14
+ const fs = require('node:fs');
15
+ const zx = require('zx');
16
+ const _interopDefault = e => e && e.__esModule ? e : {
17
+ default: e
18
+ };
19
+ const fs__default = /*#__PURE__*/_interopDefault(fs);
20
+
21
+ /* eslint-disable */
22
+ const REPO_ROOT_PLACEHOLDER = 'REPO_ROOT_PLACEHOLDER';
23
+
24
+ // TODO: Make these parametrizable (gitRepoUrls array option)
25
+ const APIFY_CLIENT_REPO_URL = 'https://github.com/apify/apify-client-python';
26
+ const APIFY_SDK_REPO_URL = 'https://github.com/apify/apify-sdk-python';
27
+ const APIFY_SHARED_REPO_URL = 'https://github.com/apify/apify-shared-python';
28
+ const CRAWLEE_PYTHON_REPO_URL = 'https://github.com/apify/crawlee-python';
29
+ const REPO_URL_PER_PACKAGE = {
30
+ 'apify': APIFY_SDK_REPO_URL,
31
+ 'apify_client': APIFY_CLIENT_REPO_URL,
32
+ 'apify_shared': APIFY_SHARED_REPO_URL,
33
+ 'crawlee': CRAWLEE_PYTHON_REPO_URL
34
+ };
35
+ const TAG_PER_PACKAGE = {};
36
+ let MODULE_SHORTCUTS = {};
37
+ async function initPackageTags({
38
+ moduleName
39
+ }) {
40
+ // For each package, get the installed version, and set the tag to the corresponding version
41
+ for (const pkg of ['apify', 'apify_client', 'apify_shared']) {
42
+ try {
43
+ const packageVersion = await zx.$`python -c 'import ${pkg}; print(${pkg}.__version__)'`;
44
+ if (packageVersion.exitCode === 0) {
45
+ TAG_PER_PACKAGE[pkg] = `v${await packageVersion.text()}`;
46
+ }
47
+ } catch (e) {
48
+ console.warn(`Failed to get version of package ${pkg}`);
49
+ }
50
+ }
51
+ if (!moduleName) {
52
+ const thisPackagePyprojectToml = fs__default.default.readFileSync('../pyproject.toml', 'utf8');
53
+ moduleName = thisPackagePyprojectToml.match(/^name = "(.+)"$/m)?.[1];
54
+ }
55
+
56
+ // For the current package, set the tag to 'master'
57
+ TAG_PER_PACKAGE[moduleName] = 'master';
58
+ return TAG_PER_PACKAGE;
59
+ }
60
+ async function initModuleShortcuts() {
61
+ if (!fs__default.default.existsSync('./module_shortcuts.json')) {
62
+ return console.warn('No module_shortcuts.json file found, skipping module shortcuts.');
63
+ }
64
+ MODULE_SHORTCUTS = JSON.parse(fs__default.default.readFileSync('./module_shortcuts.json', 'utf8'));
65
+ }
66
+
67
+ // Taken from https://github.com/TypeStrong/typedoc/blob/v0.23.24/src/lib/models/reflections/kind.ts, modified
68
+ const TYPEDOC_KINDS = {
69
+ 'class': {
70
+ kind: 128,
71
+ kindString: 'Class'
72
+ },
73
+ 'function': {
74
+ kind: 2048,
75
+ kindString: 'Method'
76
+ },
77
+ 'data': {
78
+ kind: 1024,
79
+ kindString: 'Property'
80
+ },
81
+ 'enum': {
82
+ kind: 8,
83
+ kindString: 'Enumeration'
84
+ },
85
+ 'enumValue': {
86
+ kind: 16,
87
+ kindString: 'Enumeration Member'
88
+ }
89
+ };
90
+ const GROUP_ORDER = ['Main Classes', 'Helper Classes', 'Errors', 'Constructors', 'Methods', 'Properties', 'Constants', 'Enumeration Members'];
91
+ const groupSort = (g1, g2) => {
92
+ if (GROUP_ORDER.includes(g1) && GROUP_ORDER.includes(g2)) {
93
+ return GROUP_ORDER.indexOf(g1) - GROUP_ORDER.indexOf(g2);
94
+ }
95
+ return g1.localeCompare(g2);
96
+ };
97
+ function getGroupName(object) {
98
+ const groupPredicates = {
99
+ 'Errors': x => x.name.toLowerCase().includes('error'),
100
+ 'Main Classes': x => ['Dataset', 'KeyValueStore', 'RequestQueue'].includes(x.name) || x.name.endsWith('Crawler'),
101
+ 'Helper Classes': x => x.kindString === 'Class',
102
+ 'Methods': x => x.kindString === 'Method',
103
+ 'Constructors': x => x.kindString === 'Constructor',
104
+ 'Properties': x => x.kindString === 'Property',
105
+ 'Constants': x => x.kindString === 'Enumeration',
106
+ 'Enumeration Members': x => x.kindString === 'Enumeration Member'
107
+ };
108
+ const _Object$entries$find = Object.entries(groupPredicates).find(([_, predicate]) => predicate(object)),
109
+ _Object$entries$find2 = _slicedToArray(_Object$entries$find, 1),
110
+ group = _Object$entries$find2[0];
111
+ return group;
112
+ }
113
+
114
+ // Strips the Optional[] type from the type string, and replaces generic types with just the main type
115
+ function getBaseType(type) {
116
+ return type?.replace(/Optional\[(.*)\]/g, '$1').replace('ListPage[Dict]', 'ListPage');
117
+ }
118
+
119
+ // Returns whether a type is a custom class, or a primitive type
120
+ function isCustomClass(type) {
121
+ return !['dict', 'list', 'str', 'int', 'float', 'bool'].includes(type.toLowerCase());
122
+ }
123
+
124
+ // Infer the Typedoc type from the docspec type
125
+ function inferTypedocType(docspecType) {
126
+ const typeWithoutOptional = getBaseType(docspecType);
127
+ if (!typeWithoutOptional) {
128
+ return undefined;
129
+ }
130
+
131
+ // Typically, if a type is a custom class, it will be a reference in Typedoc
132
+ return isCustomClass(typeWithoutOptional) ? {
133
+ type: 'reference',
134
+ name: docspecType
135
+ } : {
136
+ type: 'intrinsic',
137
+ name: docspecType
138
+ };
139
+ }
140
+
141
+ // Sorts the groups of a Typedoc member, and sorts the children of each group
142
+ function sortChildren(typedocMember) {
143
+ for (let group of typedocMember.groups) {
144
+ group.children.sort((a, b) => {
145
+ const firstName = typedocMember.children.find(x => x.id === a).name;
146
+ const secondName = typedocMember.children.find(x => x.id === b).name;
147
+ return firstName.localeCompare(secondName);
148
+ });
149
+ }
150
+ typedocMember.groups.sort((a, b) => groupSort(a.title, b.title));
151
+ }
152
+
153
+ // Parses the arguments and return value description of a method from its docstring
154
+ function extractArgsAndReturns(docstring) {
155
+ const parameters = (docstring.split('Args:')[1] ?? '').split('Returns:')[0] // Get the part between Args: and Returns:
156
+ .split(/(^|\n)\s*([\w]+)\s*\(.*?\)\s*:\s*/) // Magic regex which splits the arguments into an array, and removes the argument types
157
+ .filter(x => x.length > 1) // Remove empty strings
158
+ .reduce((acc, curr, idx, arr) => {
159
+ // Collect the argument names and types into an object
160
+ if (idx % 2 === 0) {
161
+ return _objectSpread(_objectSpread({}, acc), {}, {
162
+ [curr]: arr[idx + 1]
163
+ }); // If the index is even, the current string is an argument name, and the next string is its type
164
+ }
165
+ return acc;
166
+ }, {});
167
+ const returns = (docstring.split('Returns:')[1] ?? '').split('Raises:')[0] // Get the part between Returns: and Raises:
168
+ .split(':')[1]?.trim() || undefined; // Split the return value into its type and description, return description
169
+
170
+ return {
171
+ parameters,
172
+ returns
173
+ };
174
+ }
175
+
176
+ // Objects with decorators named 'ignore_docs' or with empty docstrings will be ignored
177
+ function isHidden(member) {
178
+ return member.decorations?.some(d => d.name === 'ignore_docs') || member.name === 'ignore_docs';
179
+ }
180
+
181
+ // Each object in the Typedoc structure has an unique ID,
182
+ // we'll just increment it for each object we convert
183
+ let oid = 1;
184
+ const symbolIdMap = [];
185
+
186
+ // Converts a docspec object to a Typedoc object, including all its children
187
+ function convertObject(obj, parent, module) {
188
+ const rootModuleName = module.name.split('.')[0];
189
+ for (let member of obj.members ?? []) {
190
+ let typedocKind = TYPEDOC_KINDS[member.type];
191
+ if (member.bases?.includes('Enum')) {
192
+ typedocKind = TYPEDOC_KINDS['enum'];
193
+ }
194
+ let typedocType = inferTypedocType(member.datatype);
195
+ if (member.decorations?.some(d => ['property', 'dualproperty'].includes(d.name))) {
196
+ typedocKind = TYPEDOC_KINDS['data'];
197
+ typedocType = inferTypedocType(member.return_type ?? member.datatype);
198
+ }
199
+ if (parent.kindString === 'Enumeration') {
200
+ typedocKind = TYPEDOC_KINDS['enumValue'];
201
+ typedocType = {
202
+ type: 'literal',
203
+ value: member.value
204
+ };
205
+ }
206
+ if (member.type in TYPEDOC_KINDS && !isHidden(member)) {
207
+ // Get the URL of the member in GitHub
208
+ const repoBaseUrl = `${REPO_URL_PER_PACKAGE[rootModuleName]}/blob/${TAG_PER_PACKAGE[rootModuleName] ?? 'master'}`;
209
+ const filePathInRepo = member.location.filename.replace(REPO_ROOT_PLACEHOLDER, '');
210
+ const fileGitHubUrl = member.location.filename.replace(REPO_ROOT_PLACEHOLDER, repoBaseUrl);
211
+ const memberGitHubUrl = `${fileGitHubUrl}#L${member.location.lineno}`;
212
+ symbolIdMap.push({
213
+ qualifiedName: member.name,
214
+ sourceFileName: filePathInRepo
215
+ });
216
+
217
+ // Get the module name of the member, and check if it has a shortcut (reexport from an ancestor module)
218
+ const fullName = `${module.name}.${member.name}`;
219
+ let moduleName = module.name;
220
+ if (fullName in MODULE_SHORTCUTS) {
221
+ moduleName = MODULE_SHORTCUTS[fullName].replace(`.${member.name}`, '');
222
+ }
223
+
224
+ // Create the Typedoc member object
225
+ let typedocMember = _objectSpread(_objectSpread({
226
+ id: oid++,
227
+ name: member.name,
228
+ module: moduleName
229
+ }, typedocKind), {}, {
230
+ flags: {},
231
+ comment: member.docstring ? {
232
+ summary: [{
233
+ kind: 'text',
234
+ text: member.docstring?.content
235
+ }]
236
+ } : undefined,
237
+ type: typedocType,
238
+ children: [],
239
+ groups: [],
240
+ sources: [{
241
+ filename: filePathInRepo,
242
+ line: member.location.lineno,
243
+ character: 1,
244
+ url: memberGitHubUrl
245
+ }],
246
+ signatures: []
247
+ });
248
+ if (typedocMember.kindString === 'Method') {
249
+ const _extractArgsAndReturn = extractArgsAndReturns(member.docstring?.content ?? ''),
250
+ parameters = _extractArgsAndReturn.parameters,
251
+ returns = _extractArgsAndReturn.returns;
252
+ typedocMember.signatures = [{
253
+ id: oid++,
254
+ name: member.name,
255
+ modifiers: member.modifiers ?? [],
256
+ kind: 4096,
257
+ kindString: 'Call signature',
258
+ flags: {},
259
+ comment: member.docstring ? {
260
+ summary: [{
261
+ kind: 'text',
262
+ text: member.docstring?.content.replace(/\**(Args|Arguments|Returns)[\s\S]+/, '')
263
+ }],
264
+ blockTags: returns ? [{
265
+ tag: '@returns',
266
+ content: [{
267
+ kind: 'text',
268
+ text: returns
269
+ }]
270
+ }] : undefined
271
+ } : undefined,
272
+ type: inferTypedocType(member.return_type),
273
+ parameters: member.args.filter(arg => arg.name !== 'self' && arg.name !== 'cls').map(arg => ({
274
+ id: oid++,
275
+ name: arg.name,
276
+ kind: 32768,
277
+ kindString: 'Parameter',
278
+ flags: {
279
+ isOptional: arg.datatype?.includes('Optional') ? 'true' : undefined,
280
+ 'keyword-only': arg.type === 'KEYWORD_ONLY' ? 'true' : undefined
281
+ },
282
+ type: inferTypedocType(arg.datatype),
283
+ comment: parameters[arg.name] ? {
284
+ summary: [{
285
+ kind: 'text',
286
+ text: parameters[arg.name]
287
+ }]
288
+ } : undefined,
289
+ defaultValue: arg.default_value
290
+ }))
291
+ }];
292
+ }
293
+ if (typedocMember.name === '__init__') {
294
+ typedocMember.kind = 512;
295
+ typedocMember.kindString = 'Constructor';
296
+ }
297
+ convertObject(member, typedocMember, module);
298
+ const groupName = getGroupName(typedocMember);
299
+ const group = parent.groups.find(g => g.title === groupName);
300
+ if (group) {
301
+ group.children.push(typedocMember.id);
302
+ } else {
303
+ parent.groups.push({
304
+ title: groupName,
305
+ children: [typedocMember.id]
306
+ });
307
+ }
308
+ sortChildren(typedocMember);
309
+ parent.children.push(typedocMember);
310
+ }
311
+ }
312
+ }
313
+ async function pydocToTypedoc({
314
+ pydocFile,
315
+ pydocJson,
316
+ outFile,
317
+ moduleName
318
+ }) {
319
+ await initPackageTags({
320
+ moduleName
321
+ });
322
+ await initModuleShortcuts();
323
+
324
+ // Root object of the Typedoc structure
325
+ const typedocApiReference = {
326
+ 'id': 0,
327
+ 'name': 'apify-client',
328
+ 'kind': 1,
329
+ 'kindString': 'Project',
330
+ 'flags': {},
331
+ 'originalName': '',
332
+ 'children': [],
333
+ 'groups': [],
334
+ 'sources': [{
335
+ 'fileName': 'src/index.ts',
336
+ 'line': 1,
337
+ 'character': 0,
338
+ 'url': `http://example.com/blob/123456/src/dummy.py`
339
+ }],
340
+ 'symbolIdMap': {}
341
+ };
342
+
343
+ // Load the docspec dump files of this module and of apify-shared
344
+ const thisPackageDocspecDump = pydocJson ?? fs__default.default.readFileSync(pydocFile, 'utf8');
345
+ const thisPackageModules = thisPackageDocspecDump.split('\n').filter(line => line !== '');
346
+
347
+ // Convert all the modules, store them in the root object
348
+ for (const module of [...thisPackageModules]) {
349
+ const parsedModule = JSON.parse(module);
350
+ convertObject(parsedModule, typedocApiReference, parsedModule);
351
+ }
352
+ ;
353
+
354
+ // Recursively fix references (collect names->ids of all the named entities and then inject those in the reference objects)
355
+ const namesToIds = {};
356
+ function collectIds(obj) {
357
+ for (const child of obj.children ?? []) {
358
+ namesToIds[child.name] = child.id;
359
+ collectIds(child);
360
+ }
361
+ }
362
+ collectIds(typedocApiReference);
363
+ function fixRefs(obj) {
364
+ for (const child of obj.children ?? []) {
365
+ if (child.type?.type === 'reference') {
366
+ child.type.id = namesToIds[child.type.name];
367
+ }
368
+ if (child.signatures) {
369
+ for (const sig of child.signatures) {
370
+ for (const param of sig.parameters ?? []) {
371
+ if (param.type?.type === 'reference') {
372
+ param.type.id = namesToIds[param.type.name];
373
+ }
374
+ }
375
+ if (sig.type?.type === 'reference') {
376
+ sig.type.id = namesToIds[sig.type.name];
377
+ }
378
+ }
379
+ }
380
+ fixRefs(child);
381
+ }
382
+ }
383
+ fixRefs(typedocApiReference);
384
+
385
+ // Sort the children of the root object
386
+ sortChildren(typedocApiReference);
387
+ typedocApiReference.symbolIdMap = Object.fromEntries(Object.entries(symbolIdMap));
388
+
389
+ // Write the Typedoc structure to the output file
390
+ fs__default.default.writeFileSync(outFile, JSON.stringify(typedocApiReference, null, 4));
391
+ }
392
+ exports.pydocToTypedoc = pydocToTypedoc;
393
+ //# sourceMappingURL=transform-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-docs.js","sources":["../../../src/plugin/python-generator/transform-docs.ts"],"sourcesContent":null,"names":["$","fs"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apify/docusaurus-plugin-typedoc-api",
3
- "version": "4.2.2",
3
+ "version": "4.2.3-0",
4
4
  "description": "Docusaurus plugin that provides source code API documentation powered by TypeDoc. ",
5
5
  "keywords": [
6
6
  "docusaurus",
@@ -48,7 +48,8 @@
48
48
  "@vscode/codicons": "^0.0.35",
49
49
  "marked": "^9.1.6",
50
50
  "marked-smartypants": "^1.1.5",
51
- "typedoc": "^0.25.7"
51
+ "typedoc": "^0.25.7",
52
+ "zx": "^8.1.4"
52
53
  },
53
54
  "devDependencies": {
54
55
  "@docusaurus/module-type-aliases": "^3.5.2",
@@ -56,5 +57,6 @@
56
57
  "react": "^18.2.0",
57
58
  "react-dom": "^18.2.0",
58
59
  "typescript": "^5.3.3"
59
- }
60
+ },
61
+ "stableVersion": "4.2.2"
60
62
  }
package/src/index.ts CHANGED
@@ -13,6 +13,7 @@ import {
13
13
  generateJson,
14
14
  loadPackageJsonAndDocs,
15
15
  } from './plugin/data';
16
+ import { generateJsonFromPythonProject } from './plugin/python-generator';
16
17
  import { extractSidebar } from './plugin/sidebar';
17
18
  import { getVersionedDocsDirPath, readVersionsMetadata } from './plugin/version';
18
19
  import type {
@@ -55,6 +56,7 @@ const DEFAULT_OPTIONS: Required<DocusaurusPluginTypeDocApiOptions> = {
55
56
  remarkPlugins: [],
56
57
  rehypePlugins: [],
57
58
  versions: {},
59
+ python: false,
58
60
  };
59
61
 
60
62
  async function importFile<T>(file: string): Promise<T> {
@@ -147,12 +149,19 @@ export default function typedocApiPlugin(
147
149
 
148
150
  console.log(`[${prefix}]:`, 'Generating docs...');
149
151
 
150
- await generateJson(
151
- projectRoot,
152
- entryPoints,
153
- path.join(outDir, 'api-typedoc.json'),
154
- options,
155
- );
152
+ if (options.python) {
153
+ await generateJsonFromPythonProject({
154
+ projectRoot,
155
+ outFile: path.join(outDir, 'api-typedoc.json'),
156
+ });
157
+ } else {
158
+ await generateJson(
159
+ projectRoot,
160
+ entryPoints,
161
+ path.join(outDir, 'api-typedoc.json'),
162
+ options,
163
+ );
164
+ }
156
165
 
157
166
  console.log(`[${prefix}]:`, 'Persisting packages...');
158
167
 
@@ -198,6 +207,11 @@ export default function typedocApiPlugin(
198
207
  fs.mkdirSync(context.generatedFilesDir, { recursive: true });
199
208
  }
200
209
  fs.copyFileSync(options.pathToCurrentVersionTypedocJSON, outFile);
210
+ } else if (options.python) {
211
+ await generateJsonFromPythonProject({
212
+ projectRoot,
213
+ outFile,
214
+ });
201
215
  } else {
202
216
  await generateJson(projectRoot, entryPoints, outFile, options);
203
217
  }
@@ -324,7 +338,7 @@ export default function typedocApiPlugin(
324
338
  return {
325
339
  path: info.permalink,
326
340
  exact: true,
327
- component: path.join(__dirname, './components/ApiItem.js'),
341
+ component: path.join(__dirname, `./components/ApiItem.${process.env.DEV ? 'tsx' : 'js'}`),
328
342
  modules,
329
343
  sidebar: 'api',
330
344
  // Map the ID here instead of creating a JSON data file,
@@ -393,7 +407,7 @@ export default function typedocApiPlugin(
393
407
  {
394
408
  path: indexPermalink,
395
409
  exact: false,
396
- component: path.join(__dirname, './components/ApiPage.js'),
410
+ component: path.join(__dirname, `./components/ApiPage.${process.env.DEV ? 'tsx' : 'js'}`),
397
411
  routes,
398
412
  modules: {
399
413
  options: optionsData,
@@ -419,6 +433,10 @@ export default function typedocApiPlugin(
419
433
  });
420
434
  },
421
435
 
436
+ getPathsToWatch() {
437
+ return [__dirname];
438
+ },
439
+
422
440
  configureWebpack(config, isServer, utils) {
423
441
  if (!readmes && !changelogs) {
424
442
  return {};
@@ -0,0 +1,15 @@
1
+ import { parseWithPydocMarkdown } from "./pydoc-markdown";
2
+ import { pydocToTypedoc } from "./transform-docs";
3
+
4
+ export async function generateJsonFromPythonProject({
5
+ outFile,
6
+ projectRoot,
7
+ } : { outFile: string, projectRoot: string }): Promise<void> {
8
+ const pydocJson = await parseWithPydocMarkdown({ projectRoot });
9
+
10
+ await pydocToTypedoc({
11
+ moduleName: 'python', // TODO: get from project config files or passed options
12
+ outFile,
13
+ pydocJson,
14
+ });
15
+ }
@@ -0,0 +1,65 @@
1
+ import { rmSync, writeFileSync } from 'fs';
2
+ import path from 'path';
3
+ import { $ } from 'zx';
4
+
5
+ /**
6
+ * Generates the pydoc-markdown configuration file
7
+ * @returns The pydoc-markdown configuration file as a string
8
+ */
9
+ function getConfigYml({
10
+ projectRoot
11
+ }: { projectRoot: string }): string {
12
+ return `
13
+ loaders:
14
+ - type: python
15
+ search_path: ["${projectRoot}"]
16
+ processors:
17
+ - type: filter
18
+ skip_empty_modules: true
19
+ - type: crossref
20
+ renderer:
21
+ type: docusaurus
22
+ docs_base_path: docs
23
+ relative_output_path: reference
24
+ relative_sidebar_path: sidebar.json
25
+ sidebar_top_level_label: null
26
+ `
27
+ }
28
+
29
+ export async function parseWithPydocMarkdown({
30
+ projectRoot,
31
+ }: {
32
+ projectRoot: string,
33
+ }
34
+ ): Promise<string> {
35
+ // Check whether the user has Python and pydoc-markdown installed
36
+ for (const cmd of ['python', 'pydoc-markdown']) {
37
+ try {
38
+ // eslint-disable-next-line no-await-in-loop
39
+ await $`${cmd} --version`;
40
+ } catch {
41
+ throw new Error(`Please install ${cmd} to use this plugin with Python projects.`);
42
+ }
43
+ };
44
+
45
+ // Generate the JSON file
46
+ try {
47
+ const configYml = getConfigYml({ projectRoot });
48
+ const configPath = path.join(__dirname, 'pydoc-markdown.temp.yml');
49
+ writeFileSync(configPath, configYml);
50
+
51
+ const pydoc = await $`pydoc-markdown --quiet --dump ${configPath}`;
52
+
53
+ rmSync(configPath);
54
+
55
+ let json = await pydoc.text();
56
+
57
+ json = json.replaceAll(path.resolve(projectRoot), 'REPO_ROOT_PLACEHOLDER');
58
+
59
+ return json;
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ } catch (error: any) {
62
+ // eslint-disable-next-line
63
+ throw new Error(`Failed to generate JSON file from Python project:\n\t${error.stderr.split('\n').slice(-2).join('\n')}`);
64
+ }
65
+ }
@@ -0,0 +1,417 @@
1
+ /* eslint-disable */
2
+ import fs from 'fs';
3
+ import { $ } from 'zx';
4
+
5
+ const REPO_ROOT_PLACEHOLDER = 'REPO_ROOT_PLACEHOLDER';
6
+
7
+ // TODO: Make these parametrizable (gitRepoUrls array option)
8
+ const APIFY_CLIENT_REPO_URL = 'https://github.com/apify/apify-client-python';
9
+ const APIFY_SDK_REPO_URL = 'https://github.com/apify/apify-sdk-python';
10
+ const APIFY_SHARED_REPO_URL = 'https://github.com/apify/apify-shared-python';
11
+ const CRAWLEE_PYTHON_REPO_URL = 'https://github.com/apify/crawlee-python';
12
+
13
+ const REPO_URL_PER_PACKAGE = {
14
+ 'apify': APIFY_SDK_REPO_URL,
15
+ 'apify_client': APIFY_CLIENT_REPO_URL,
16
+ 'apify_shared': APIFY_SHARED_REPO_URL,
17
+ 'crawlee': CRAWLEE_PYTHON_REPO_URL,
18
+ } as const;
19
+
20
+ const TAG_PER_PACKAGE: Record<string, string> = {};
21
+ let MODULE_SHORTCUTS: Record<string, string> = {};
22
+
23
+ async function initPackageTags({
24
+ moduleName
25
+ }: {
26
+ moduleName?: string,
27
+ }) {
28
+ // For each package, get the installed version, and set the tag to the corresponding version
29
+ for (const pkg of ['apify', 'apify_client', 'apify_shared']) {
30
+ try {
31
+ const packageVersion = await $`python -c 'import ${pkg}; print(${pkg}.__version__)'`;
32
+ if (packageVersion.exitCode === 0) {
33
+ TAG_PER_PACKAGE[pkg] = `v${await packageVersion.text()}`;
34
+ }
35
+ } catch (e) {
36
+ console.warn(`Failed to get version of package ${pkg}`);
37
+ }
38
+ }
39
+
40
+ if(!moduleName) {
41
+ const thisPackagePyprojectToml = fs.readFileSync('../pyproject.toml', 'utf8');
42
+ moduleName = thisPackagePyprojectToml.match(/^name = "(.+)"$/m)?.[1];
43
+ }
44
+
45
+ // For the current package, set the tag to 'master'
46
+ TAG_PER_PACKAGE[moduleName!] = 'master';
47
+
48
+ return TAG_PER_PACKAGE;
49
+ }
50
+
51
+ async function initModuleShortcuts() {
52
+ if(!fs.existsSync('./module_shortcuts.json')) {
53
+ return console.warn('No module_shortcuts.json file found, skipping module shortcuts.');
54
+ }
55
+
56
+ MODULE_SHORTCUTS = JSON.parse(fs.readFileSync('./module_shortcuts.json', 'utf8'));
57
+ }
58
+
59
+ // Taken from https://github.com/TypeStrong/typedoc/blob/v0.23.24/src/lib/models/reflections/kind.ts, modified
60
+ const TYPEDOC_KINDS = {
61
+ 'class': {
62
+ kind: 128,
63
+ kindString: 'Class',
64
+ },
65
+ 'function': {
66
+ kind: 2048,
67
+ kindString: 'Method',
68
+ },
69
+ 'data': {
70
+ kind: 1024,
71
+ kindString: 'Property',
72
+ },
73
+ 'enum': {
74
+ kind: 8,
75
+ kindString: 'Enumeration',
76
+ },
77
+ 'enumValue': {
78
+ kind: 16,
79
+ kindString: 'Enumeration Member',
80
+ },
81
+ }
82
+
83
+ const GROUP_ORDER = [
84
+ 'Main Classes',
85
+ 'Helper Classes',
86
+ 'Errors',
87
+ 'Constructors',
88
+ 'Methods',
89
+ 'Properties',
90
+ 'Constants',
91
+ 'Enumeration Members'
92
+ ] as const;
93
+
94
+ const groupSort = (g1: typeof GROUP_ORDER[number], g2: typeof GROUP_ORDER[number]) => {
95
+ if(GROUP_ORDER.includes(g1) && GROUP_ORDER.includes(g2)){
96
+ return GROUP_ORDER.indexOf(g1) - GROUP_ORDER.indexOf(g2)
97
+ }
98
+ return g1.localeCompare(g2);
99
+ };
100
+
101
+ function getGroupName(object: any) {
102
+ const groupPredicates: Record<
103
+ typeof GROUP_ORDER[number],
104
+ (object: any) => boolean
105
+ > = {
106
+ 'Errors': (x) => x.name.toLowerCase().includes('error'),
107
+ 'Main Classes': (x) => ['Dataset', 'KeyValueStore', 'RequestQueue'].includes(x.name) || x.name.endsWith('Crawler'),
108
+ 'Helper Classes': (x) => x.kindString === 'Class',
109
+ 'Methods': (x) => x.kindString === 'Method',
110
+ 'Constructors': (x) => x.kindString === 'Constructor',
111
+ 'Properties': (x) => x.kindString === 'Property',
112
+ 'Constants': (x) => x.kindString === 'Enumeration',
113
+ 'Enumeration Members': (x) => x.kindString === 'Enumeration Member',
114
+ };
115
+
116
+ const [group] = Object.entries(groupPredicates).find(
117
+ ([_, predicate]) => predicate(object)
118
+ )!;
119
+
120
+ return group;
121
+ }
122
+
123
+ // Strips the Optional[] type from the type string, and replaces generic types with just the main type
124
+ function getBaseType(type: any) {
125
+ return type?.replace(/Optional\[(.*)\]/g, '$1').replace('ListPage[Dict]', 'ListPage');
126
+ }
127
+
128
+ // Returns whether a type is a custom class, or a primitive type
129
+ function isCustomClass(type: string) {
130
+ return !['dict', 'list', 'str', 'int', 'float', 'bool'].includes(type.toLowerCase());
131
+ }
132
+
133
+ // Infer the Typedoc type from the docspec type
134
+ function inferTypedocType(docspecType: any): Record<string, any> | undefined {
135
+ const typeWithoutOptional = getBaseType(docspecType);
136
+ if (!typeWithoutOptional) {
137
+ return undefined;
138
+ }
139
+
140
+ // Typically, if a type is a custom class, it will be a reference in Typedoc
141
+ return isCustomClass(typeWithoutOptional) ? {
142
+ type: 'reference',
143
+ name: docspecType
144
+ } : {
145
+ type: 'intrinsic',
146
+ name: docspecType,
147
+ }
148
+ }
149
+
150
+ // Sorts the groups of a Typedoc member, and sorts the children of each group
151
+ function sortChildren(typedocMember: any) {
152
+ for (let group of typedocMember.groups) {
153
+ group.children
154
+ .sort((a: any, b: any) => {
155
+ const firstName = typedocMember.children.find((x: any) => x.id === a).name;
156
+ const secondName = typedocMember.children.find((x: any) => x.id === b).name;
157
+ return firstName.localeCompare(secondName);
158
+ });
159
+ }
160
+ typedocMember.groups.sort((a: { title: typeof GROUP_ORDER[number] }, b: { title: typeof GROUP_ORDER[number] }) => groupSort(a.title, b.title));
161
+ }
162
+
163
+ // Parses the arguments and return value description of a method from its docstring
164
+ function extractArgsAndReturns(docstring: string) {
165
+ const parameters = (docstring
166
+ .split('Args:')[1] ?? '').split('Returns:')[0] // Get the part between Args: and Returns:
167
+ .split(/(^|\n)\s*([\w]+)\s*\(.*?\)\s*:\s*/) // Magic regex which splits the arguments into an array, and removes the argument types
168
+ .filter(x => x.length > 1) // Remove empty strings
169
+ .reduce((acc, curr, idx, arr) => { // Collect the argument names and types into an object
170
+ if(idx % 2 === 0){
171
+ return {...acc, [curr]: arr[idx+1]} // If the index is even, the current string is an argument name, and the next string is its type
172
+ }
173
+ return acc;
174
+ }, {} as Record<string, string>);
175
+
176
+ const returns = (docstring
177
+ .split('Returns:')[1] ?? '').split('Raises:')[0] // Get the part between Returns: and Raises:
178
+ .split(':')[1]?.trim() || undefined; // Split the return value into its type and description, return description
179
+
180
+
181
+ return { parameters, returns };
182
+ }
183
+
184
+ // Objects with decorators named 'ignore_docs' or with empty docstrings will be ignored
185
+ function isHidden(member: any) {
186
+ return member.decorations?.some((d: { name: string }) => d.name === 'ignore_docs') || member.name === 'ignore_docs';
187
+ }
188
+
189
+ // Each object in the Typedoc structure has an unique ID,
190
+ // we'll just increment it for each object we convert
191
+ let oid = 1;
192
+
193
+ const symbolIdMap: { qualifiedName: string, sourceFileName: string }[] = [];
194
+
195
+ // Converts a docspec object to a Typedoc object, including all its children
196
+ function convertObject(obj: any, parent: any, module: any) {
197
+ const rootModuleName: string = module.name.split('.')[0];
198
+ for (let member of obj.members ?? []) {
199
+ let typedocKind = TYPEDOC_KINDS[member.type as keyof typeof TYPEDOC_KINDS];
200
+
201
+ if(member.bases?.includes('Enum')) {
202
+ typedocKind = TYPEDOC_KINDS['enum'];
203
+ }
204
+
205
+ let typedocType = inferTypedocType(member.datatype);
206
+
207
+ if (member.decorations?.some((d: { name: string }) => ['property', 'dualproperty'].includes(d.name))) {
208
+ typedocKind = TYPEDOC_KINDS['data'];
209
+ typedocType = inferTypedocType(member.return_type ?? member.datatype);
210
+ }
211
+
212
+ if(parent.kindString === 'Enumeration') {
213
+ typedocKind = TYPEDOC_KINDS['enumValue'];
214
+ typedocType = {
215
+ type: 'literal',
216
+ value: member.value,
217
+ }
218
+ }
219
+
220
+ if(member.type in TYPEDOC_KINDS && !isHidden(member)) {
221
+ // Get the URL of the member in GitHub
222
+ const repoBaseUrl = `${REPO_URL_PER_PACKAGE[rootModuleName as keyof typeof REPO_URL_PER_PACKAGE]}/blob/${TAG_PER_PACKAGE[rootModuleName] ?? 'master'}`;
223
+ const filePathInRepo = member.location.filename.replace(REPO_ROOT_PLACEHOLDER, '');
224
+ const fileGitHubUrl = member.location.filename.replace(REPO_ROOT_PLACEHOLDER, repoBaseUrl);
225
+ const memberGitHubUrl = `${fileGitHubUrl}#L${member.location.lineno}`;
226
+
227
+ symbolIdMap.push({
228
+ qualifiedName: member.name,
229
+ sourceFileName: filePathInRepo,
230
+ });
231
+
232
+ // Get the module name of the member, and check if it has a shortcut (reexport from an ancestor module)
233
+ const fullName = `${module.name}.${member.name}`;
234
+ let moduleName = module.name;
235
+ if (fullName in MODULE_SHORTCUTS) {
236
+ moduleName = MODULE_SHORTCUTS[fullName].replace(`.${member.name}`, '');
237
+ }
238
+
239
+ // Create the Typedoc member object
240
+ let typedocMember = {
241
+ id: oid++,
242
+ name: member.name,
243
+ module: moduleName, // This is an extension to the original Typedoc structure, to support showing where the member is exported from
244
+ ...typedocKind,
245
+ flags: {},
246
+ comment: member.docstring ? {
247
+ summary: [{
248
+ kind: 'text',
249
+ text: member.docstring?.content,
250
+ }],
251
+ } : undefined,
252
+ type: typedocType,
253
+ children: [],
254
+ groups: [],
255
+ sources: [{
256
+ filename: filePathInRepo,
257
+ line: member.location.lineno,
258
+ character: 1,
259
+ url: memberGitHubUrl,
260
+ }],
261
+ signatures: [] as any[],
262
+ };
263
+
264
+ if(typedocMember.kindString === 'Method') {
265
+ const { parameters, returns } = extractArgsAndReturns(member.docstring?.content ?? '');
266
+
267
+ typedocMember.signatures = [{
268
+ id: oid++,
269
+ name: member.name,
270
+ modifiers: member.modifiers ?? [],
271
+ kind: 4096,
272
+ kindString: 'Call signature',
273
+ flags: {},
274
+ comment: member.docstring ? {
275
+ summary: [{
276
+ kind: 'text',
277
+ text: member.docstring?.content
278
+ .replace(/\**(Args|Arguments|Returns)[\s\S]+/, ''),
279
+ }],
280
+ blockTags: returns ? [
281
+ { tag: '@returns', content: [{ kind: 'text', text: returns }] },
282
+ ] : undefined,
283
+ } : undefined,
284
+ type: inferTypedocType(member.return_type),
285
+ parameters: member.args
286
+ .filter((arg: any) => (arg.name !== 'self' && arg.name !== 'cls'))
287
+ .map((arg: any) => ({
288
+ id: oid++,
289
+ name: arg.name,
290
+ kind: 32768,
291
+ kindString: 'Parameter',
292
+ flags: {
293
+ isOptional: arg.datatype?.includes('Optional') ? 'true' : undefined,
294
+ 'keyword-only': arg.type === 'KEYWORD_ONLY' ? 'true' : undefined,
295
+ },
296
+ type: inferTypedocType(arg.datatype),
297
+ comment: parameters[arg.name] ? {
298
+ summary: [{
299
+ kind: 'text',
300
+ text: parameters[arg.name]
301
+ }]
302
+ } : undefined,
303
+ defaultValue: arg.default_value,
304
+ })),
305
+ }];
306
+ }
307
+
308
+ if(typedocMember.name === '__init__') {
309
+ typedocMember.kind = 512;
310
+ typedocMember.kindString = 'Constructor';
311
+ }
312
+
313
+ convertObject(member, typedocMember, module);
314
+
315
+ const groupName = getGroupName(typedocMember);
316
+
317
+ const group = parent.groups.find((g: { title: string }) => g.title === groupName);
318
+ if (group) {
319
+ group.children.push(typedocMember.id);
320
+ } else {
321
+ parent.groups.push({
322
+ title: groupName,
323
+ children: [typedocMember.id],
324
+ });
325
+ }
326
+
327
+ sortChildren(typedocMember);
328
+ parent.children.push(typedocMember);
329
+ }
330
+ }
331
+ }
332
+
333
+ export async function pydocToTypedoc({
334
+ pydocFile,
335
+ pydocJson,
336
+ outFile,
337
+ moduleName,
338
+ }: {
339
+ pydocFile?: string,
340
+ pydocJson?: string,
341
+ outFile: string,
342
+ moduleName?: string,
343
+ }) {
344
+ await initPackageTags({ moduleName });
345
+ await initModuleShortcuts();
346
+
347
+ // Root object of the Typedoc structure
348
+ const typedocApiReference = {
349
+ 'id': 0,
350
+ 'name': 'apify-client',
351
+ 'kind': 1,
352
+ 'kindString': 'Project',
353
+ 'flags': {},
354
+ 'originalName': '',
355
+ 'children': [],
356
+ 'groups': [],
357
+ 'sources': [
358
+ {
359
+ 'fileName': 'src/index.ts',
360
+ 'line': 1,
361
+ 'character': 0,
362
+ 'url': `http://example.com/blob/123456/src/dummy.py`,
363
+ }
364
+ ],
365
+ 'symbolIdMap': {},
366
+ };
367
+
368
+ // Load the docspec dump files of this module and of apify-shared
369
+ const thisPackageDocspecDump = pydocJson ?? fs.readFileSync(pydocFile!, 'utf8');
370
+ const thisPackageModules = thisPackageDocspecDump.split('\n').filter((line) => line !== '');
371
+
372
+ // Convert all the modules, store them in the root object
373
+ for (const module of [...thisPackageModules]) {
374
+ const parsedModule = JSON.parse(module);
375
+ convertObject(parsedModule, typedocApiReference, parsedModule);
376
+ };
377
+
378
+ // Recursively fix references (collect names->ids of all the named entities and then inject those in the reference objects)
379
+ const namesToIds: Record<string, string> = {};
380
+ function collectIds(obj: Record<string, any>) {
381
+ for (const child of obj.children ?? []) {
382
+ namesToIds[child.name] = child.id;
383
+ collectIds(child);
384
+ }
385
+ }
386
+ collectIds(typedocApiReference);
387
+
388
+ function fixRefs(obj: Record<string, any>) {
389
+ for (const child of obj.children ?? []) {
390
+ if (child.type?.type === 'reference') {
391
+ child.type.id = namesToIds[child.type.name];
392
+ }
393
+ if (child.signatures) {
394
+ for (const sig of child.signatures) {
395
+ for (const param of sig.parameters ?? []) {
396
+ if (param.type?.type === 'reference') {
397
+ param.type.id = namesToIds[param.type.name];
398
+ }
399
+ }
400
+ if (sig.type?.type === 'reference') {
401
+ sig.type.id = namesToIds[sig.type.name];
402
+ }
403
+ }
404
+ }
405
+ fixRefs(child);
406
+ }
407
+ }
408
+ fixRefs(typedocApiReference);
409
+
410
+ // Sort the children of the root object
411
+ sortChildren(typedocApiReference);
412
+
413
+ typedocApiReference.symbolIdMap = Object.fromEntries(Object.entries(symbolIdMap));
414
+
415
+ // Write the Typedoc structure to the output file
416
+ fs.writeFileSync(outFile, JSON.stringify(typedocApiReference, null, 4));
417
+ }
package/src/types.ts CHANGED
@@ -30,6 +30,7 @@ export interface DocusaurusPluginTypeDocApiOptions
30
30
  sortSidebar?: (a: string, d: string) => number;
31
31
  tsconfigName?: string;
32
32
  typedocOptions?: Partial<TypeDocOptions>;
33
+ python: boolean;
33
34
 
34
35
  remarkPlugins: MDXPlugin[];
35
36
  rehypePlugins: MDXPlugin[];