Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(docs,chore): removed dependency from nodeJS version (#DS-2476) #44

Merged
merged 1 commit into from
May 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@
"docs:prod-build": "ng build koobiq-docs",
"docs:prod-build:aot": "ng build koobiq-docs --configuration production",
"docs:update-versions": "ts-node --project tools/update-doc-versions/tsconfig.json tools/update-doc-versions/update-doc-versions.ts",
"docs:api-gen": "ts-node --esm --project tools/api-gen/tsconfig.json tools/api-gen/generate-api-docs.ts",
"docs:api-gen": "TS_NODE_PROJECT=tools/api-gen/tsconfig.json node --loader ts-node/esm tools/api-gen/generate-api-docs.ts",
"preinstall": "node tools/npm/check-npm.js",
"prepare": "husky",
"postinstall": "tsc -p tools/builders/tsconfig.json",
Expand Down
10 changes: 5 additions & 5 deletions tools/api-gen/extraction/helpers.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { ClassEntry, DocEntry, MemberEntry, MemberTags } from '../rendering/entities.js';
import { isClassEntry } from '../rendering/entities/categorization.js';
import { ClassEntry, DocEntry, MemberEntry, MemberTags } from '../rendering/entities.ts';
import { isClassEntry } from '../rendering/entities/categorization.ts';
import fs from 'fs';
import ts from 'typescript';
import { ClassEntryMetadata, PackageMetadata } from '../types/types.js';
import { ClassEntryMetadata, PackageMetadata } from '../types/types.ts';
import { relative } from 'path';
import { isPublic } from '../manifest/helpers.js';
import { isPublic } from '../manifest/helpers.ts';

type FunctionProps = keyof Function | string;
const fProps: FunctionProps[] = ['call', 'caller', 'apply', '[Symbol.hasInstance]', 'toString', 'arguments', 'bind', '[Symbol.metadata]', 'name', 'length'];
Expand Down Expand Up @@ -52,7 +52,7 @@ export function entryHandler(entrySrc: string) {
sourceFile.forEachChild((node) => {
if (!node || !ts.isClassDeclaration(node)) { return; }

let baseClass = null;
let baseClass: string | null = null;
if (node.heritageClauses) {
for (let clause of node.heritageClauses) {
if (clause.token === ts.SyntaxKind.ExtendsKeyword) {
Expand Down
8 changes: 3 additions & 5 deletions tools/api-gen/extraction/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@ import { basename, join } from 'path';
import ts from 'typescript';
import { NgtscProgram } from '@angular/compiler-cli';

// @ts-ignore
import { src } from '../utils.js';
// @ts-ignore
import { PackageMetadata, EntryCollection, ClassEntryMetadata } from '../types/types.js';
import { entryHandler, updateEntries, prepareMergedMetadata } from './helpers.js';
import { src } from '../utils.ts';
import { PackageMetadata, EntryCollection, ClassEntryMetadata } from '../types/types.ts';
import { entryHandler, updateEntries, prepareMergedMetadata } from './helpers.ts';


const getMetadataFrom = (moduleName: string, packageName: string): PackageMetadata => {
Expand Down
9 changes: 3 additions & 6 deletions tools/api-gen/generate-api-docs.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
// @ts-ignore
import { extractApiToJson } from './extraction/index.js';
// @ts-ignore
import { generateApiToHtml } from './rendering/index.js';
// @ts-ignore
import { generateManifest } from './manifest/index.js';
import { extractApiToJson } from './extraction/index.ts';
import { generateApiToHtml } from './rendering/index.ts';
import { generateManifest } from './manifest/index.ts';

export const generateApiDocs = () => {
const data = extractApiToJson();
Expand Down
2 changes: 1 addition & 1 deletion tools/api-gen/manifest/helpers.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { DocEntry, JsDocTagEntry } from '../rendering/entities.js';
import { DocEntry, JsDocTagEntry } from '../rendering/entities.ts';

/* Add mapping to use nunjucks rendering */

Expand Down
6 changes: 3 additions & 3 deletions tools/api-gen/manifest/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { EntryCollection, ManifestEntry, PackageApiInfo } from '../types/types.js';
import { DocEntry } from '../rendering/entities.js';
import { computeApiDocumentUrl, getApiLookupKey, isPublic } from './helpers.js';
import { EntryCollection, ManifestEntry, PackageApiInfo } from '../types/types.ts';
import { DocEntry } from '../rendering/entities.ts';
import { computeApiDocumentUrl, getApiLookupKey, isPublic } from './helpers.ts';

export function generateManifest(apiCollections: EntryCollection[]): EntryCollection<ManifestEntry>[] {
// Filter out repeated entries for function overloads, but also keep track of
Expand Down
23 changes: 5 additions & 18 deletions tools/api-gen/rendering/entities/categorization.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,14 @@ import {
MemberType,
MethodEntry,
PropertyEntry,
TypeAliasEntry,//@ts-ignore
} from '../entities.js';

/*import {
ClassEntryRenderable,
ConstantEntryRenderable,
DocEntryRenderable,
EnumEntryRenderable,
FunctionEntryRenderable,
InterfaceEntryRenderable,
MemberEntryRenderable,
MethodEntryRenderable,
TypeAliasEntryRenderable,//@ts-ignore
} from './renderables.ts';*///@ts-ignore
import {HasJsDocTags} from './traits.js';
import { ClassEntryRenderable, DocEntryRenderable, InterfaceEntryRenderable } from './renderables.js';
TypeAliasEntry
} from '../entities.ts';

import {HasJsDocTags} from './traits.ts';
import { ClassEntryRenderable, DocEntryRenderable, InterfaceEntryRenderable } from './renderables.ts';


/** Gets whether the given entry represents a class */
// @ts-ignore
export function isClassEntry(entry: DocEntryRenderable): entry is ClassEntryRenderable;
export function isClassEntry(entry: DocEntry): entry is ClassEntry;
export function isClassEntry(entry: DocEntry): entry is ClassEntry {
Expand Down Expand Up @@ -67,7 +55,6 @@ export function isEnumEntry(entry: DocEntry): entry is EnumEntry {
}

/** Gets whether the given entry represents an interface. */
//@ts-ignore
export function isInterfaceEntry(entry: DocEntryRenderable): entry is InterfaceEntryRenderable;
export function isInterfaceEntry(entry: DocEntry): entry is InterfaceEntry;
export function isInterfaceEntry(entry: DocEntry): entry is InterfaceEntry {
Expand Down
6 changes: 1 addition & 5 deletions tools/api-gen/rendering/entities/renderables.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,7 @@ import {
MemberEntry,
ParameterEntry,
TypeAliasEntry,
} from '../entities.js';

//@ts-ignore
// import {HasRenderableToc} from './traits.ts';
// import { InitializerApiFunctionEntry } from '../entities';
} from '../entities.ts';

/** JsDoc tag info augmented with transformed content for rendering. */
export interface JsDocTagRenderable extends JsDocTagEntry {
Expand Down
4 changes: 2 additions & 2 deletions tools/api-gen/rendering/entities/traits.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { JsDocTagEntry, MemberEntry, ParameterEntry } from '../entities.js';
import { JsDocTagEntry, MemberEntry, ParameterEntry } from '../entities.ts';

import {
CodeLineRenderable,
Expand All @@ -7,7 +7,7 @@ import {
MemberEntryRenderable,
ParameterEntryRenderable,
PropertyEntryRenderable,
} from './renderables.js';
} from './renderables.ts';

/** A doc entry that has jsdoc tags. */
export interface HasJsDocTags {
Expand Down
6 changes: 3 additions & 3 deletions tools/api-gen/rendering/helpers.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ClassEntryRenderable, DocEntryRenderable } from './entities/renderables.js';
import { isClassEntry, isDeprecatedEntry } from './entities/categorization.js';
import { EntryType } from './entities.js';
import { ClassEntryRenderable, DocEntryRenderable } from './entities/renderables.ts';
import { isClassEntry, isDeprecatedEntry } from './entities/categorization.ts';
import { EntryType } from './entities.ts';

export const isClass = (renderable: DocEntryRenderable) => {
return isClassEntry(renderable) && renderable.entryType === EntryType.UndecoratedClass
Expand Down
19 changes: 7 additions & 12 deletions tools/api-gen/rendering/index.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,11 @@
// import nunjucks from 'nunjucks';

//@ts-ignore
import { EntryCollection, ManifestEntry, PackageApiInfo } from '../types/types.js';
//@ts-ignore
import { configureMarkedGlobally } from './marked/configuration.js';
//@ts-ignore
import { getRenderable } from './processing.js';
//@ts-ignore
import { renderEntry } from './rendering.js';
import { writeFileSync } from 'fs';
import { createDirIfNotExists } from '../utils.js';
import { entryPointGrouper } from './helpers.js';

import { configureMarkedGlobally } from './marked/configuration.ts';
import { getRenderable } from './processing.ts';
import { renderEntry } from './rendering.ts';
import { createDirIfNotExists } from '../utils.ts';
import { EntryCollection, ManifestEntry, PackageApiInfo } from '../types/types.ts';
import { entryPointGrouper } from './helpers.ts';

export function generateApiToHtml(entryCollections: EntryCollection<ManifestEntry>[]) {
configureMarkedGlobally();
Expand Down
3 changes: 1 addition & 2 deletions tools/api-gen/rendering/marked/configuration.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import {marked} from 'marked';
//@ts-ignore
import {renderer} from './renderer.js';
import {renderer} from './renderer.ts';

/** Globally configures marked for rendering JsDoc content to HTML. */
export function configureMarkedGlobally() {
Expand Down
13 changes: 1 addition & 12 deletions tools/api-gen/rendering/marked/renderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,12 @@

import highlightJs from 'highlight.js';
import { Renderer as MarkedRenderer } from 'marked';
// @ts-ignore
// import { splitLines } from '../transforms/code-transforms.ts';
import { splitLines } from '../transforms/code-transforms.ts';

/**
* Custom renderer for marked that will be used to transform markdown files to HTML
* files that can be used in the Angular docs.
*/
/** Split generated code with syntax highlighting into single lines */

// TODO: temporarily added here
export function splitLines(text: string): string[] {
if (text.length === 0) {
return [];
}
return text.split(/\r\n|\r|\n/g);
}

export const renderer: Partial<MarkedRenderer> = {
code(code: string, language: string): string {
let highlightResult: HighlightResult;
Expand Down
2 changes: 1 addition & 1 deletion tools/api-gen/rendering/nunjucks-tags/highlight.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { highlightCodeBlock } from './highlight-code-block.js';
import { highlightCodeBlock } from './highlight-code-block.ts';

/**
* Nunjucks extension that supports rendering highlighted content. Content that is placed in
Expand Down
31 changes: 15 additions & 16 deletions tools/api-gen/rendering/processing.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
//@ts-ignore
import { DocEntryRenderable } from './entities/renderables.js';
import { DocEntryRenderable } from './entities/renderables.ts';
import {
isClassEntry,
isConstantEntry,
isEnumEntry,
isFunctionEntry,
isInterfaceEntry, isTypeAliasEntry//@ts-ignore
} from './entities/categorization.js';//@ts-ignore
import { getClassRenderable } from './transforms/class-transforms.js';
import { getConstantRenderable } from './transforms/constant-transforms.js';
import { getEnumRenderable } from './transforms/enum-transforms.js';
import { getInterfaceRenderable } from './transforms/interface-transforms.js';
import { getFunctionRenderable } from './transforms/function-transforms.js';
import { getTypeAliasRenderable } from './transforms/type-alias-transforms.js';
isInterfaceEntry,
isTypeAliasEntry
} from './entities/categorization.ts';

import { getClassRenderable } from './transforms/class-transforms.ts';
import { getConstantRenderable } from './transforms/constant-transforms.ts';
import { getEnumRenderable } from './transforms/enum-transforms.ts';
import { getInterfaceRenderable } from './transforms/interface-transforms.ts';
import { getFunctionRenderable } from './transforms/function-transforms.ts';
import { getTypeAliasRenderable } from './transforms/type-alias-transforms.ts';

import {
addHtmlAdditionalLinks,
addHtmlDescription, addHtmlJsDocTagComments,
addHtmlUsageNotes,
setEntryFlags//@ts-ignore
} from './transforms/jsdoc-transforms.js';
//@ts-ignore
import { addModuleName } from './transforms/module-name.js';
//@ts-ignore
import { DocEntry } from './entities.js';
setEntryFlags
} from './transforms/jsdoc-transforms.ts';
import { addModuleName } from './transforms/module-name.ts';
import { DocEntry } from './entities.ts';

export function getRenderable(entry: DocEntry, moduleName: string): DocEntryRenderable {
if (isClassEntry(entry)) {
Expand Down
7 changes: 4 additions & 3 deletions tools/api-gen/rendering/rendering.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import nunjucks from 'nunjucks';
import { HighlightNunjucksExtension } from './nunjucks-tags/highlight.js';
import path from 'node:path';
import { join } from 'path';

const TEMPLATE_DIR = path.join(process.cwd(), 'tools', 'api-gen', 'rendering', 'templates');
import { HighlightNunjucksExtension } from './nunjucks-tags/highlight.ts';

const TEMPLATE_DIR = join(process.cwd(), 'tools', 'api-gen', 'rendering', 'templates');
const env = nunjucks.configure(TEMPLATE_DIR, {
autoescape: false,
tags: {
Expand Down
12 changes: 6 additions & 6 deletions tools/api-gen/rendering/transforms/class-transforms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@
* found in the LICENSE file at https://angular.dev/license
*/

import {ClassEntry} from '../entities.js';
import {ClassEntryRenderable} from '../entities/renderables.js';
import {addRenderableCodeToc} from './code-transforms.js';
import {ClassEntry} from '../entities.ts';
import {ClassEntryRenderable} from '../entities/renderables.ts';
import {addRenderableCodeToc} from './code-transforms.ts';
import {
addHtmlAdditionalLinks,
addHtmlDescription,
addHtmlJsDocTagComments,
addHtmlUsageNotes,
setEntryFlags,
} from './jsdoc-transforms.js';
import {addRenderableGroupMembers} from './member-transforms.js';
import {addModuleName} from './module-name.js';
} from './jsdoc-transforms.ts';
import {addRenderableGroupMembers} from './member-transforms.ts';
import {addModuleName} from './module-name.ts';

/** Given an unprocessed class entry, get the fully renderable class entry. */
export function getClassRenderable(
Expand Down
21 changes: 9 additions & 12 deletions tools/api-gen/rendering/transforms/code-transforms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ import {
MemberEntry,
MemberTags,
ParameterEntry,
PropertyEntry,// @ts-ignore
} from '../entities.js';
PropertyEntry,
} from '../entities.ts';
import highlightJs from 'highlight.js';

// @ts-ignore
import {
isClassEntry,
isClassMethodEntry,
Expand All @@ -20,14 +19,11 @@ import {
// isInitializerApiFunctionEntry,
isInterfaceEntry,
isSetterEntry,
isTypeAliasEntry,// @ts-ignore
} from '../entities/categorization.js';
// @ts-ignore
import {CodeLineRenderable} from '../entities/renderables.js';
// @ts-ignore
import {HasModuleName, HasRenderableToc} from '../entities/traits.js';
// @ts-ignore
import {filterLifecycleMethods, mergeGettersAndSetters} from './member-transforms.js';
isTypeAliasEntry
} from '../entities/categorization.ts';
import {CodeLineRenderable} from '../entities/renderables.ts';
import {HasModuleName, HasRenderableToc} from '../entities/traits.ts';
import {filterLifecycleMethods, mergeGettersAndSetters} from './member-transforms.ts';

// Allows to generate links for code lines.
interface CodeTableOfContentsData {
Expand Down Expand Up @@ -71,7 +67,6 @@ export function addRenderableCodeToc<T extends DocEntry & HasModuleName>(
const groups = groupCodeLines(lines, metadata);

return {
// @ts-ignore
...entry,
codeLinesGroups: groups,
};
Expand Down Expand Up @@ -296,6 +291,7 @@ function getNumberOfLinesOfCode(contents: string): number {
}

/** Prints an initializer function signature into a single line. */
/*
export function printInitializerFunctionSignatureLine(
name: string,
signature: FunctionEntry,
Expand Down Expand Up @@ -337,6 +333,7 @@ export function printInitializerFunctionSignatureLine(
res += ';';
return res;
}
*/

function appendPrefixAndSuffix(entry: DocEntry, codeTocData: CodeTableOfContentsData): void {
const appendFirstAndLastLines = (
Expand Down
10 changes: 5 additions & 5 deletions tools/api-gen/rendering/transforms/constant-transforms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@
* found in the LICENSE file at https://angular.dev/license
*/

import {ConstantEntry} from '../entities.js';
import {ConstantEntryRenderable} from '../entities/renderables.js';
import {addRenderableCodeToc} from './code-transforms.js';
import {ConstantEntry} from '../entities.ts';
import {ConstantEntryRenderable} from '../entities/renderables.ts';
import {addRenderableCodeToc} from './code-transforms.ts';
import {
addHtmlAdditionalLinks,
addHtmlDescription,
addHtmlJsDocTagComments,
addHtmlUsageNotes,
setEntryFlags,
} from './jsdoc-transforms.js';
import {addModuleName} from './module-name.js';
} from './jsdoc-transforms.ts';
import {addModuleName} from './module-name.ts';

/** Given an unprocessed constant entry, get the fully renderable constant entry. */
export function getConstantRenderable(
Expand Down
Loading
Loading