@breadstone-tools/cem-core 0.0.12-beta.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/Ast/Ast.d.ts +224 -0
- package/Ast/Ast.d.ts.map +1 -0
- package/Ast/Ast.js +557 -0
- package/Ast/Ast.js.map +1 -0
- package/Ast/Builder/BuildArrowFunction.d.ts +14 -0
- package/Ast/Builder/BuildArrowFunction.d.ts.map +1 -0
- package/Ast/Builder/BuildArrowFunction.js +29 -0
- package/Ast/Builder/BuildArrowFunction.js.map +1 -0
- package/Ast/Builder/BuildAttribute.d.ts +16 -0
- package/Ast/Builder/BuildAttribute.d.ts.map +1 -0
- package/Ast/Builder/BuildAttribute.js +36 -0
- package/Ast/Builder/BuildAttribute.js.map +1 -0
- package/Ast/Builder/BuildClass.d.ts +24 -0
- package/Ast/Builder/BuildClass.d.ts.map +1 -0
- package/Ast/Builder/BuildClass.js +251 -0
- package/Ast/Builder/BuildClass.js.map +1 -0
- package/Ast/Builder/BuildClassField.d.ts +14 -0
- package/Ast/Builder/BuildClassField.d.ts.map +1 -0
- package/Ast/Builder/BuildClassField.js +34 -0
- package/Ast/Builder/BuildClassField.js.map +1 -0
- package/Ast/Builder/BuildFunctionLike.d.ts +41 -0
- package/Ast/Builder/BuildFunctionLike.d.ts.map +1 -0
- package/Ast/Builder/BuildFunctionLike.js +80 -0
- package/Ast/Builder/BuildFunctionLike.js.map +1 -0
- package/Ast/Builder/BuildMixin.d.ts +19 -0
- package/Ast/Builder/BuildMixin.d.ts.map +1 -0
- package/Ast/Builder/BuildMixin.js +50 -0
- package/Ast/Builder/BuildMixin.js.map +1 -0
- package/Ast/Builder/BuildVariable.d.ts +15 -0
- package/Ast/Builder/BuildVariable.d.ts.map +1 -0
- package/Ast/Builder/BuildVariable.js +29 -0
- package/Ast/Builder/BuildVariable.js.map +1 -0
- package/Ast/Handler/HandleAttrJsDoc.d.ts +10 -0
- package/Ast/Handler/HandleAttrJsDoc.d.ts.map +1 -0
- package/Ast/Handler/HandleAttrJsDoc.js +43 -0
- package/Ast/Handler/HandleAttrJsDoc.js.map +1 -0
- package/Ast/Handler/HandleCollectMixins.d.ts +10 -0
- package/Ast/Handler/HandleCollectMixins.d.ts.map +1 -0
- package/Ast/Handler/HandleCollectMixins.js +27 -0
- package/Ast/Handler/HandleCollectMixins.js.map +1 -0
- package/Ast/Handler/HandleCreateClassDeclarationMixin.d.ts +9 -0
- package/Ast/Handler/HandleCreateClassDeclarationMixin.d.ts.map +1 -0
- package/Ast/Handler/HandleCreateClassDeclarationMixin.js +38 -0
- package/Ast/Handler/HandleCreateClassDeclarationMixin.js.map +1 -0
- package/Ast/Handler/HandleCustomJsDocTags.d.ts +8 -0
- package/Ast/Handler/HandleCustomJsDocTags.d.ts.map +1 -0
- package/Ast/Handler/HandleCustomJsDocTags.js +31 -0
- package/Ast/Handler/HandleCustomJsDocTags.js.map +1 -0
- package/Ast/Handler/HandleDefaultValue.d.ts +10 -0
- package/Ast/Handler/HandleDefaultValue.d.ts.map +1 -0
- package/Ast/Handler/HandleDefaultValue.js +48 -0
- package/Ast/Handler/HandleDefaultValue.js.map +1 -0
- package/Ast/Handler/HandleExplicitType.d.ts +10 -0
- package/Ast/Handler/HandleExplicitType.d.ts.map +1 -0
- package/Ast/Handler/HandleExplicitType.js +28 -0
- package/Ast/Handler/HandleExplicitType.js.map +1 -0
- package/Ast/Handler/HandleHeritage.d.ts +11 -0
- package/Ast/Handler/HandleHeritage.d.ts.map +1 -0
- package/Ast/Handler/HandleHeritage.js +67 -0
- package/Ast/Handler/HandleHeritage.js.map +1 -0
- package/Ast/Handler/HandleJsDoc.d.ts +9 -0
- package/Ast/Handler/HandleJsDoc.d.ts.map +1 -0
- package/Ast/Handler/HandleJsDoc.js +90 -0
- package/Ast/Handler/HandleJsDoc.js.map +1 -0
- package/Ast/Handler/HandleJsDocParameterTag.d.ts +8 -0
- package/Ast/Handler/HandleJsDocParameterTag.d.ts.map +1 -0
- package/Ast/Handler/HandleJsDocParameterTag.js +59 -0
- package/Ast/Handler/HandleJsDocParameterTag.js.map +1 -0
- package/Ast/Handler/HandleModifiers.d.ts +13 -0
- package/Ast/Handler/HandleModifiers.d.ts.map +1 -0
- package/Ast/Handler/HandleModifiers.js +49 -0
- package/Ast/Handler/HandleModifiers.js.map +1 -0
- package/Ast/Handler/HandlePrivateMember.d.ts +10 -0
- package/Ast/Handler/HandlePrivateMember.d.ts.map +1 -0
- package/Ast/Handler/HandlePrivateMember.js +25 -0
- package/Ast/Handler/HandlePrivateMember.js.map +1 -0
- package/Ast/Handler/HandleTypeInference.d.ts +9 -0
- package/Ast/Handler/HandleTypeInference.d.ts.map +1 -0
- package/Ast/Handler/HandleTypeInference.js +46 -0
- package/Ast/Handler/HandleTypeInference.js.map +1 -0
- package/Ast/Handler/HandleWellKnownTypes.d.ts +11 -0
- package/Ast/Handler/HandleWellKnownTypes.d.ts.map +1 -0
- package/Ast/Handler/HandleWellKnownTypes.js +28 -0
- package/Ast/Handler/HandleWellKnownTypes.js.map +1 -0
- package/Ast/Manifest.d.ts +47 -0
- package/Ast/Manifest.d.ts.map +1 -0
- package/Ast/Manifest.js +209 -0
- package/Ast/Manifest.js.map +1 -0
- package/Index.d.ts +9 -0
- package/Index.d.ts.map +1 -0
- package/Index.js +8 -0
- package/Index.js.map +1 -0
- package/LICENSE +21 -0
- package/Plugins/Analyse/ArrowFunctionPlugin.d.ts +13 -0
- package/Plugins/Analyse/ArrowFunctionPlugin.d.ts.map +1 -0
- package/Plugins/Analyse/ArrowFunctionPlugin.js +37 -0
- package/Plugins/Analyse/ArrowFunctionPlugin.js.map +1 -0
- package/Plugins/Analyse/ClassJsDocPlugin.d.ts +25 -0
- package/Plugins/Analyse/ClassJsDocPlugin.d.ts.map +1 -0
- package/Plugins/Analyse/ClassJsDocPlugin.js +200 -0
- package/Plugins/Analyse/ClassJsDocPlugin.js.map +1 -0
- package/Plugins/Analyse/ClassPlugin.d.ts +13 -0
- package/Plugins/Analyse/ClassPlugin.d.ts.map +1 -0
- package/Plugins/Analyse/ClassPlugin.js +32 -0
- package/Plugins/Analyse/ClassPlugin.js.map +1 -0
- package/Plugins/Analyse/CustomElementsDefineCallsPlugin.d.ts +15 -0
- package/Plugins/Analyse/CustomElementsDefineCallsPlugin.d.ts.map +1 -0
- package/Plugins/Analyse/CustomElementsDefineCallsPlugin.js +112 -0
- package/Plugins/Analyse/CustomElementsDefineCallsPlugin.js.map +1 -0
- package/Plugins/Analyse/ExportsPlugin.d.ts +18 -0
- package/Plugins/Analyse/ExportsPlugin.d.ts.map +1 -0
- package/Plugins/Analyse/ExportsPlugin.js +154 -0
- package/Plugins/Analyse/ExportsPlugin.js.map +1 -0
- package/Plugins/Analyse/FunctionLikePlugin.d.ts +14 -0
- package/Plugins/Analyse/FunctionLikePlugin.d.ts.map +1 -0
- package/Plugins/Analyse/FunctionLikePlugin.js +36 -0
- package/Plugins/Analyse/FunctionLikePlugin.js.map +1 -0
- package/Plugins/Analyse/MixinPlugin.d.ts +13 -0
- package/Plugins/Analyse/MixinPlugin.d.ts.map +1 -0
- package/Plugins/Analyse/MixinPlugin.js +36 -0
- package/Plugins/Analyse/MixinPlugin.js.map +1 -0
- package/Plugins/Analyse/ReexportedWrappedMixinExportsPlugin.d.ts +15 -0
- package/Plugins/Analyse/ReexportedWrappedMixinExportsPlugin.d.ts.map +1 -0
- package/Plugins/Analyse/ReexportedWrappedMixinExportsPlugin.js +56 -0
- package/Plugins/Analyse/ReexportedWrappedMixinExportsPlugin.js.map +1 -0
- package/Plugins/Analyse/VariablePlugin.d.ts +13 -0
- package/Plugins/Analyse/VariablePlugin.d.ts.map +1 -0
- package/Plugins/Analyse/VariablePlugin.js +40 -0
- package/Plugins/Analyse/VariablePlugin.js.map +1 -0
- package/Plugins/Collect/CollectImportsPlugin.d.ts +6 -0
- package/Plugins/Collect/CollectImportsPlugin.d.ts.map +1 -0
- package/Plugins/Collect/CollectImportsPlugin.js +100 -0
- package/Plugins/Collect/CollectImportsPlugin.js.map +1 -0
- package/Plugins/Framework/Catalyst/Catalyst.d.ts +3 -0
- package/Plugins/Framework/Catalyst/Catalyst.d.ts.map +1 -0
- package/Plugins/Framework/Catalyst/Catalyst.js +9 -0
- package/Plugins/Framework/Catalyst/Catalyst.js.map +1 -0
- package/Plugins/Framework/Fast/Fast.d.ts +3 -0
- package/Plugins/Framework/Fast/Fast.d.ts.map +1 -0
- package/Plugins/Framework/Fast/Fast.js +9 -0
- package/Plugins/Framework/Fast/Fast.js.map +1 -0
- package/Plugins/Framework/Lit/Lit.d.ts +8 -0
- package/Plugins/Framework/Lit/Lit.d.ts.map +1 -0
- package/Plugins/Framework/Lit/Lit.js +25 -0
- package/Plugins/Framework/Lit/Lit.js.map +1 -0
- package/Plugins/Framework/Lit/MemberDenyListPlugin.d.ts +16 -0
- package/Plugins/Framework/Lit/MemberDenyListPlugin.d.ts.map +1 -0
- package/Plugins/Framework/Lit/MemberDenyListPlugin.js +37 -0
- package/Plugins/Framework/Lit/MemberDenyListPlugin.js.map +1 -0
- package/Plugins/Framework/Lit/MethodDenyListPlugin.d.ts +24 -0
- package/Plugins/Framework/Lit/MethodDenyListPlugin.d.ts.map +1 -0
- package/Plugins/Framework/Lit/MethodDenyListPlugin.js +51 -0
- package/Plugins/Framework/Lit/MethodDenyListPlugin.js.map +1 -0
- package/Plugins/Framework/Lit/PropertyDecoratorPlugin.d.ts +16 -0
- package/Plugins/Framework/Lit/PropertyDecoratorPlugin.d.ts.map +1 -0
- package/Plugins/Framework/Lit/PropertyDecoratorPlugin.js +100 -0
- package/Plugins/Framework/Lit/PropertyDecoratorPlugin.js.map +1 -0
- package/Plugins/Framework/Lit/StaticPropertiesPlugin.d.ts +17 -0
- package/Plugins/Framework/Lit/StaticPropertiesPlugin.d.ts.map +1 -0
- package/Plugins/Framework/Lit/StaticPropertiesPlugin.js +126 -0
- package/Plugins/Framework/Lit/StaticPropertiesPlugin.js.map +1 -0
- package/Plugins/Framework/Lwc/Lwc.d.ts +3 -0
- package/Plugins/Framework/Lwc/Lwc.d.ts.map +1 -0
- package/Plugins/Framework/Lwc/Lwc.js +9 -0
- package/Plugins/Framework/Lwc/Lwc.js.map +1 -0
- package/Plugins/Framework/Shared/AttrDecoratorPlugin.d.ts +18 -0
- package/Plugins/Framework/Shared/AttrDecoratorPlugin.d.ts.map +1 -0
- package/Plugins/Framework/Shared/AttrDecoratorPlugin.js +80 -0
- package/Plugins/Framework/Shared/AttrDecoratorPlugin.js.map +1 -0
- package/Plugins/Framework/Shared/CustomElementDecoratorPlugin.d.ts +14 -0
- package/Plugins/Framework/Shared/CustomElementDecoratorPlugin.d.ts.map +1 -0
- package/Plugins/Framework/Shared/CustomElementDecoratorPlugin.js +67 -0
- package/Plugins/Framework/Shared/CustomElementDecoratorPlugin.js.map +1 -0
- package/Plugins/Framework/Stencil/Stencil.d.ts +3 -0
- package/Plugins/Framework/Stencil/Stencil.d.ts.map +1 -0
- package/Plugins/Framework/Stencil/Stencil.js +9 -0
- package/Plugins/Framework/Stencil/Stencil.js.map +1 -0
- package/Plugins/Link/CleanupClassesPlugin.d.ts +6 -0
- package/Plugins/Link/CleanupClassesPlugin.d.ts.map +1 -0
- package/Plugins/Link/CleanupClassesPlugin.js +24 -0
- package/Plugins/Link/CleanupClassesPlugin.js.map +1 -0
- package/Plugins/Link/FieldDenyListPlugin.d.ts +6 -0
- package/Plugins/Link/FieldDenyListPlugin.d.ts.map +1 -0
- package/Plugins/Link/FieldDenyListPlugin.js +23 -0
- package/Plugins/Link/FieldDenyListPlugin.js.map +1 -0
- package/Plugins/Link/MethodDenyListPlugin.d.ts +6 -0
- package/Plugins/Link/MethodDenyListPlugin.d.ts.map +1 -0
- package/Plugins/Link/MethodDenyListPlugin.js +26 -0
- package/Plugins/Link/MethodDenyListPlugin.js.map +1 -0
- package/Plugins/PostProcessing/ApplyInheritancePlugin.d.ts +6 -0
- package/Plugins/PostProcessing/ApplyInheritancePlugin.d.ts.map +1 -0
- package/Plugins/PostProcessing/ApplyInheritancePlugin.js +87 -0
- package/Plugins/PostProcessing/ApplyInheritancePlugin.js.map +1 -0
- package/Plugins/PostProcessing/IsCustomElementPlugin.d.ts +6 -0
- package/Plugins/PostProcessing/IsCustomElementPlugin.d.ts.map +1 -0
- package/Plugins/PostProcessing/IsCustomElementPlugin.js +35 -0
- package/Plugins/PostProcessing/IsCustomElementPlugin.js.map +1 -0
- package/Plugins/PostProcessing/LinkClassToTagnamePlugin.d.ts +6 -0
- package/Plugins/PostProcessing/LinkClassToTagnamePlugin.d.ts.map +1 -0
- package/Plugins/PostProcessing/LinkClassToTagnamePlugin.js +28 -0
- package/Plugins/PostProcessing/LinkClassToTagnamePlugin.js.map +1 -0
- package/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.d.ts +6 -0
- package/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.d.ts.map +1 -0
- package/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.js +21 -0
- package/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.js.map +1 -0
- package/Plugins/PostProcessing/ResolveInitializersPlugin.d.ts +6 -0
- package/Plugins/PostProcessing/ResolveInitializersPlugin.d.ts.map +1 -0
- package/Plugins/PostProcessing/ResolveInitializersPlugin.js +59 -0
- package/Plugins/PostProcessing/ResolveInitializersPlugin.js.map +1 -0
- package/Services/DependencyService.d.ts +1 -0
- package/Services/DependencyService.d.ts.map +1 -0
- package/Services/DependencyService.js +112 -0
- package/Services/DependencyService.js.map +1 -0
- package/Services/Interfaces/IDependencyService.d.ts +12 -0
- package/Services/Interfaces/IDependencyService.d.ts.map +1 -0
- package/Services/Interfaces/IDependencyService.js +4 -0
- package/Services/Interfaces/IDependencyService.js.map +1 -0
- package/Services/Interfaces/IManifestBuilder.d.ts +16 -0
- package/Services/Interfaces/IManifestBuilder.d.ts.map +1 -0
- package/Services/Interfaces/IManifestBuilder.js +4 -0
- package/Services/Interfaces/IManifestBuilder.js.map +1 -0
- package/Services/Interfaces/IManifestEngine.d.ts +16 -0
- package/Services/Interfaces/IManifestEngine.d.ts.map +1 -0
- package/Services/Interfaces/IManifestEngine.js +4 -0
- package/Services/Interfaces/IManifestEngine.js.map +1 -0
- package/Services/ManifestBuilder.d.ts +47 -0
- package/Services/ManifestBuilder.d.ts.map +1 -0
- package/Services/ManifestBuilder.js +49 -0
- package/Services/ManifestBuilder.js.map +1 -0
- package/Services/ManifestEngine.d.ts +62 -0
- package/Services/ManifestEngine.d.ts.map +1 -0
- package/Services/ManifestEngine.js +283 -0
- package/Services/ManifestEngine.js.map +1 -0
- package/Types/Framework.d.ts +2 -0
- package/Types/Framework.d.ts.map +1 -0
- package/Types/Framework.js +3 -0
- package/Types/Framework.js.map +1 -0
- package/Types.d.ts +1 -0
- package/Types.d.ts.map +1 -0
- package/Types.js +45 -0
- package/Types.js.map +1 -0
- package/Utils.d.ts +50 -0
- package/Utils.d.ts.map +1 -0
- package/Utils.js +147 -0
- package/Utils.js.map +1 -0
- package/package.json +23 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//#region Imports
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.createAttribute = createAttribute;
|
|
5
|
+
exports.createAttributeFromField = createAttributeFromField;
|
|
6
|
+
//#endregion
|
|
7
|
+
/**
|
|
8
|
+
* Creates an attribute representation from a node.
|
|
9
|
+
* @param node - The node to create the attribute from.
|
|
10
|
+
* @returns An object representing the attribute.
|
|
11
|
+
*/
|
|
12
|
+
function createAttribute(node) {
|
|
13
|
+
const attributeTemplate = {
|
|
14
|
+
name: node.getText() || ''
|
|
15
|
+
};
|
|
16
|
+
return attributeTemplate;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Creates an attribute from a field representation.
|
|
20
|
+
* @param field - The field to create the attribute from.
|
|
21
|
+
* @returns An object representing the attribute.
|
|
22
|
+
*/
|
|
23
|
+
function createAttributeFromField(field) {
|
|
24
|
+
const attribute = {
|
|
25
|
+
...field,
|
|
26
|
+
fieldName: field.name
|
|
27
|
+
};
|
|
28
|
+
// Delete the following properties because they don't exist on an attributeDoc
|
|
29
|
+
delete attribute.kind;
|
|
30
|
+
delete attribute.static;
|
|
31
|
+
delete attribute.privacy;
|
|
32
|
+
delete attribute.reflects;
|
|
33
|
+
delete attribute.resolveInitializer;
|
|
34
|
+
return attribute;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=BuildAttribute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildAttribute.js","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildAttribute.ts"],"names":[],"mappings":";AAAA,iBAAiB;;AAWjB,0CAKC;AAOD,4DAcC;AAjCD,YAAY;AAEZ;;;;GAIG;AACH,SAAgB,eAAe,CAAC,IAAa;IACzC,MAAM,iBAAiB,GAAG;QACtB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;KAC7B,CAAC;IACF,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,KAAU;IAC/C,MAAM,SAAS,GAAG;QACd,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,IAAI;KACxB,CAAC;IAEF,8EAA8E;IAC9E,OAAO,SAAS,CAAC,IAAI,CAAC;IACtB,OAAO,SAAS,CAAC,MAAM,CAAC;IACxB,OAAO,SAAS,CAAC,OAAO,CAAC;IACzB,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC1B,OAAO,SAAS,CAAC,kBAAkB,CAAC;IAEpC,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
interface IClassTemplate {
|
|
3
|
+
kind: string;
|
|
4
|
+
description: string;
|
|
5
|
+
name: string;
|
|
6
|
+
cssProperties: Array<any>;
|
|
7
|
+
cssParts: Array<any>;
|
|
8
|
+
slots: Array<any>;
|
|
9
|
+
members: Array<any>;
|
|
10
|
+
events: Array<any>;
|
|
11
|
+
attributes: Array<any>;
|
|
12
|
+
cssStates: Array<any>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Creates a class documentation object.
|
|
16
|
+
* @param node - The TypeScript class node.
|
|
17
|
+
* @param moduleDoc - The module documentation object.
|
|
18
|
+
* @param context - The context for the class creation.
|
|
19
|
+
* @returns The class documentation object.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createClass(node: ts.ClassDeclaration | ts.ClassExpression, moduleDoc: any, context: any): IClassTemplate;
|
|
22
|
+
export declare function getDefaultValuesFromConstructorVisitor(source: ts.ClassDeclaration | ts.ClassExpression, classTemplate: IClassTemplate, context: any): void;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=BuildClass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildClass.d.ts","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildClass.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAa5B,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,cAAc,CAmHxH;AAsCD,wBAAgB,sCAAsC,CAClD,MAAM,EAAE,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,eAAe,EAChD,aAAa,EAAE,cAAc,EAC7B,OAAO,EAAE,GAAG,GACb,IAAI,CAeN"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//#region Imports
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.createClass = createClass;
|
|
8
|
+
exports.getDefaultValuesFromConstructorVisitor = getDefaultValuesFromConstructorVisitor;
|
|
9
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
10
|
+
const Ast_js_1 = require("../Ast.js");
|
|
11
|
+
const HandleAttrJsDoc_js_1 = require("../Handler/HandleAttrJsDoc.js");
|
|
12
|
+
const HandleDefaultValue_js_1 = require("../Handler/HandleDefaultValue.js");
|
|
13
|
+
const HandleHeritage_js_1 = require("../Handler/HandleHeritage.js");
|
|
14
|
+
const HandleJsDoc_js_1 = require("../Handler/HandleJsDoc.js");
|
|
15
|
+
const HandleTypeInference_js_1 = require("../Handler/HandleTypeInference.js");
|
|
16
|
+
const BuildAttribute_js_1 = require("./BuildAttribute.js");
|
|
17
|
+
const BuildClassField_js_1 = require("./BuildClassField.js");
|
|
18
|
+
const BuildFunctionLike_js_1 = require("./BuildFunctionLike.js");
|
|
19
|
+
/**
|
|
20
|
+
* Creates a class documentation object.
|
|
21
|
+
* @param node - The TypeScript class node.
|
|
22
|
+
* @param moduleDoc - The module documentation object.
|
|
23
|
+
* @param context - The context for the class creation.
|
|
24
|
+
* @returns The class documentation object.
|
|
25
|
+
*/
|
|
26
|
+
function createClass(node, moduleDoc, context) {
|
|
27
|
+
let classTemplate = {
|
|
28
|
+
kind: 'class',
|
|
29
|
+
description: '',
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
name: (node.name?.getText() ?? node.parent.parent.name?.getText()) || '',
|
|
33
|
+
cssProperties: [],
|
|
34
|
+
cssParts: [],
|
|
35
|
+
slots: [],
|
|
36
|
+
members: [],
|
|
37
|
+
events: [],
|
|
38
|
+
attributes: [],
|
|
39
|
+
cssStates: [],
|
|
40
|
+
};
|
|
41
|
+
node.members.forEach(member => {
|
|
42
|
+
if ((0, Ast_js_1.isProperty)(member)) {
|
|
43
|
+
if (member.name?.getText() === 'observedAttributes') {
|
|
44
|
+
if (typescript_1.default.isPropertyDeclaration(member)) {
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
member.initializer?.elements?.forEach((element) => {
|
|
48
|
+
if (typescript_1.default.isStringLiteral(element)) {
|
|
49
|
+
const attribute = (0, BuildAttribute_js_1.createAttribute)(element);
|
|
50
|
+
classTemplate.attributes.push(attribute);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (typescript_1.default.isGetAccessor(member)) {
|
|
55
|
+
const returnStatement = member.body?.statements.find(Ast_js_1.isReturnStatement);
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
returnStatement?.expression?.elements?.forEach((element) => {
|
|
59
|
+
if (typescript_1.default.isStringLiteral(element)) {
|
|
60
|
+
const attribute = (0, BuildAttribute_js_1.createAttribute)(element);
|
|
61
|
+
classTemplate.attributes.push(attribute);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
node.members.forEach(member => {
|
|
69
|
+
if (typescript_1.default.isMethodDeclaration(member) && !(0, Ast_js_1.hasIgnoreJSDoc)(member)) {
|
|
70
|
+
const method = (0, BuildFunctionLike_js_1.createFunctionLike)(member);
|
|
71
|
+
classTemplate.members.push(method);
|
|
72
|
+
}
|
|
73
|
+
if ((0, Ast_js_1.isProperty)(member) && !(0, Ast_js_1.hasIgnoreJSDoc)(member)) {
|
|
74
|
+
const field = (0, BuildClassField_js_1.createField)(member);
|
|
75
|
+
if (typescript_1.default.isGetAccessor(member)) {
|
|
76
|
+
const hasSetter = node.members.some(m => typescript_1.default.isSetAccessor(m) && m.name.getText() === field.name);
|
|
77
|
+
if (!hasSetter) {
|
|
78
|
+
field.readonly = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
82
|
+
// @ts-ignore
|
|
83
|
+
if (member.initializer?.kind === typescript_1.default.SyntaxKind.Identifier) {
|
|
84
|
+
field.resolveInitializer = {
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
86
|
+
// @ts-ignore
|
|
87
|
+
...resolveModuleOrPackageSpecifier(moduleDoc, context, member.initializer?.getText()),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
if ((0, Ast_js_1.hasAttrAnnotation)(member)) {
|
|
91
|
+
let attribute = (0, BuildAttribute_js_1.createAttributeFromField)(field);
|
|
92
|
+
attribute = (0, HandleAttrJsDoc_js_1.handleAttrJsDoc)(member, attribute);
|
|
93
|
+
field.attribute = attribute.name;
|
|
94
|
+
const attrAlreadyExists = classTemplate.attributes.find(attr => attr.name === attribute.name);
|
|
95
|
+
if (attrAlreadyExists) {
|
|
96
|
+
classTemplate.attributes = classTemplate.attributes.map(attr => attr.name === attribute.name ? { ...attrAlreadyExists, ...attribute } : attr);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
classTemplate.attributes.push(attribute);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (field.static) {
|
|
103
|
+
classTemplate.members.push(field);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
const fieldExists = classTemplate.members
|
|
107
|
+
.filter(mem => !mem?.static)
|
|
108
|
+
.find(mem => mem?.name === member.name?.getText());
|
|
109
|
+
if (fieldExists) {
|
|
110
|
+
classTemplate.members = classTemplate.members.map(mem => mem?.name === member.name?.getText() && !mem?.static ? { ...mem, ...field } : mem);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
classTemplate.members.push(field);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (typescript_1.default.isMethodDeclaration(member)) {
|
|
118
|
+
eventsVisitor(member, classTemplate);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
getDefaultValuesFromConstructorVisitor(node, classTemplate, context);
|
|
122
|
+
classTemplate.members = classTemplate.members.filter(mem => !mem.ignore);
|
|
123
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
124
|
+
// @ts-ignore
|
|
125
|
+
classTemplate = (0, HandleHeritage_js_1.handleHeritage)(classTemplate, moduleDoc, context, node);
|
|
126
|
+
return classTemplate;
|
|
127
|
+
}
|
|
128
|
+
function eventsVisitor(source, classTemplate) {
|
|
129
|
+
visitNode(source);
|
|
130
|
+
function visitNode(node) {
|
|
131
|
+
switch (node.kind) {
|
|
132
|
+
case typescript_1.default.SyntaxKind.CallExpression:
|
|
133
|
+
if ((0, Ast_js_1.isDispatchEvent)(node) && !(0, Ast_js_1.hasIgnoreJSDoc)(node.parent)) {
|
|
134
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
135
|
+
// @ts-ignore
|
|
136
|
+
node.arguments?.forEach((arg) => {
|
|
137
|
+
if (arg.kind === typescript_1.default.SyntaxKind.NewExpression) {
|
|
138
|
+
const eventName = arg?.arguments?.[0]?.text;
|
|
139
|
+
const isExistingEvent = classTemplate.events.some((event) => event.name === eventName);
|
|
140
|
+
if (!isExistingEvent) {
|
|
141
|
+
let eventDoc = {
|
|
142
|
+
...(eventName ? { name: eventName } : {}),
|
|
143
|
+
type: {
|
|
144
|
+
text: arg.expression.text,
|
|
145
|
+
},
|
|
146
|
+
};
|
|
147
|
+
eventDoc = (0, HandleJsDoc_js_1.handleJsDoc)(eventDoc, node.parent);
|
|
148
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
149
|
+
// @ts-ignore
|
|
150
|
+
delete eventDoc.privacy;
|
|
151
|
+
classTemplate.events.push(eventDoc);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
typescript_1.default.forEachChild(node, visitNode);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function getDefaultValuesFromConstructorVisitor(source, classTemplate, context) {
|
|
161
|
+
visitNode(source);
|
|
162
|
+
function visitNode(node) {
|
|
163
|
+
switch (node.kind) {
|
|
164
|
+
case typescript_1.default.SyntaxKind.Constructor:
|
|
165
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
166
|
+
// @ts-ignore
|
|
167
|
+
node.body?.statements?.filter((statement) => statement.kind === typescript_1.default.SyntaxKind.ExpressionStatement)
|
|
168
|
+
.filter((statement) => statement.expression.kind === typescript_1.default.SyntaxKind.BinaryExpression)
|
|
169
|
+
.forEach((statement) => mapClassMember(source, classTemplate, context, node, statement, statement.expression));
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
typescript_1.default.forEachChild(node, visitNode);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function mapClassMember(source, classTemplate, context, node, statement, expression) {
|
|
176
|
+
let existingMember = classTemplate.members.find((member) => expression?.left?.name?.getText() === member.name && member.kind === 'field');
|
|
177
|
+
if (expression?.operatorToken?.kind === typescript_1.default.SyntaxKind.CommaToken) {
|
|
178
|
+
if (expression.left.kind === typescript_1.default.SyntaxKind.BinaryExpression) {
|
|
179
|
+
mapClassMember(source, classTemplate, context, node, statement, expression.left);
|
|
180
|
+
}
|
|
181
|
+
if (expression.right.kind === typescript_1.default.SyntaxKind.BinaryExpression) {
|
|
182
|
+
mapClassMember(source, classTemplate, context, node, statement, expression.right);
|
|
183
|
+
}
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (!existingMember) {
|
|
187
|
+
if ((0, Ast_js_1.hasIgnoreJSDoc)(statement)) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if ((0, Ast_js_1.isBindCall)(statement)) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
existingMember = {
|
|
194
|
+
kind: 'field',
|
|
195
|
+
name: expression?.left?.name?.getText(),
|
|
196
|
+
};
|
|
197
|
+
if (!classTemplate.members) {
|
|
198
|
+
classTemplate.members = [];
|
|
199
|
+
}
|
|
200
|
+
classTemplate.members.push(existingMember);
|
|
201
|
+
}
|
|
202
|
+
if (existingMember) {
|
|
203
|
+
if ((0, Ast_js_1.hasIgnoreJSDoc)(statement)) {
|
|
204
|
+
existingMember.ignore = true;
|
|
205
|
+
}
|
|
206
|
+
if (!existingMember?.type) {
|
|
207
|
+
existingMember = (0, HandleTypeInference_js_1.handleTypeInference)(existingMember, expression?.right);
|
|
208
|
+
}
|
|
209
|
+
existingMember = (0, HandleJsDoc_js_1.handleJsDoc)(existingMember, statement);
|
|
210
|
+
existingMember = (0, HandleDefaultValue_js_1.handleDefaultValue)(existingMember, statement, expression);
|
|
211
|
+
if (expression?.right?.kind === typescript_1.default.SyntaxKind.Identifier) {
|
|
212
|
+
existingMember.resolveInitializer = {
|
|
213
|
+
...resolveModuleOrPackageSpecifier({ path: source.getSourceFile().fileName }, context, expression?.right?.getText()),
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
if ((0, Ast_js_1.hasAttrAnnotation)(statement)) {
|
|
217
|
+
const field = existingMember;
|
|
218
|
+
let attribute = (0, BuildAttribute_js_1.createAttributeFromField)(field);
|
|
219
|
+
attribute = (0, HandleAttrJsDoc_js_1.handleAttrJsDoc)(statement, attribute);
|
|
220
|
+
field.attribute = attribute.name;
|
|
221
|
+
const attrAlreadyExists = classTemplate.attributes.find(attr => attr.name === attribute.name);
|
|
222
|
+
if (attrAlreadyExists) {
|
|
223
|
+
classTemplate.attributes = classTemplate.attributes.map(attr => attr.name === attribute.name ? { ...attrAlreadyExists, ...attribute } : attr);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
classTemplate.attributes.push(attribute);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Resolves the module or package specifier for a given name.
|
|
233
|
+
* @param moduleDoc - The module documentation object.
|
|
234
|
+
* @param context - The context object containing imports.
|
|
235
|
+
* @param name - The name to resolve the specifier for.
|
|
236
|
+
* @returns An object with the resolved module or package specifier.
|
|
237
|
+
*/
|
|
238
|
+
function resolveModuleOrPackageSpecifier(moduleDoc, context, name) {
|
|
239
|
+
const foundImport = context?.imports?.find((i) => i.name === name);
|
|
240
|
+
if (foundImport) {
|
|
241
|
+
if (foundImport.isBareModuleSpecifier) {
|
|
242
|
+
// Import is from a 3rd party package
|
|
243
|
+
return { package: foundImport.importPath };
|
|
244
|
+
}
|
|
245
|
+
// Import is from a local module
|
|
246
|
+
return { module: new URL(foundImport.importPath, `file:///${moduleDoc.path}`).pathname };
|
|
247
|
+
}
|
|
248
|
+
// Item is in the current module
|
|
249
|
+
return { module: moduleDoc.path };
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=BuildClass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildClass.js","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type ts from 'typescript';
|
|
2
|
+
interface IFieldTemplate {
|
|
3
|
+
kind: string;
|
|
4
|
+
name: string;
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Creates a field documentation object.
|
|
9
|
+
* @param node - The TypeScript node representing the field.
|
|
10
|
+
* @returns The field documentation object.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createField(node: ts.Node): IFieldTemplate;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=BuildClassField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildClassField.d.ts","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildClassField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AASjC,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,cAAc,CAmBzD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createField = createField;
|
|
4
|
+
const HandleDefaultValue_js_1 = require("../Handler/HandleDefaultValue.js");
|
|
5
|
+
const HandleExplicitType_js_1 = require("../Handler/HandleExplicitType.js");
|
|
6
|
+
const HandleJsDoc_js_1 = require("../Handler/HandleJsDoc.js");
|
|
7
|
+
const HandleModifiers_js_1 = require("../Handler/HandleModifiers.js");
|
|
8
|
+
const HandlePrivateMember_js_1 = require("../Handler/HandlePrivateMember.js");
|
|
9
|
+
const HandleTypeInference_js_1 = require("../Handler/HandleTypeInference.js");
|
|
10
|
+
const HandleWellKnownTypes_js_1 = require("../Handler/HandleWellKnownTypes.js");
|
|
11
|
+
/**
|
|
12
|
+
* Creates a field documentation object.
|
|
13
|
+
* @param node - The TypeScript node representing the field.
|
|
14
|
+
* @returns The field documentation object.
|
|
15
|
+
*/
|
|
16
|
+
function createField(node) {
|
|
17
|
+
let fieldTemplate = {
|
|
18
|
+
kind: 'field',
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
name: node.name?.getText() || '',
|
|
22
|
+
};
|
|
23
|
+
fieldTemplate = (0, HandlePrivateMember_js_1.handlePrivateMember)(fieldTemplate, node);
|
|
24
|
+
fieldTemplate = (0, HandleTypeInference_js_1.handleTypeInference)(fieldTemplate, node);
|
|
25
|
+
fieldTemplate = (0, HandleExplicitType_js_1.handleExplicitType)(fieldTemplate, node);
|
|
26
|
+
fieldTemplate = (0, HandleModifiers_js_1.handleModifiers)(fieldTemplate, node);
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
fieldTemplate = (0, HandleDefaultValue_js_1.handleDefaultValue)(fieldTemplate, node);
|
|
30
|
+
fieldTemplate = (0, HandleWellKnownTypes_js_1.handleWellKnownTypes)(fieldTemplate, node);
|
|
31
|
+
fieldTemplate = (0, HandleJsDoc_js_1.handleJsDoc)(fieldTemplate, node);
|
|
32
|
+
return fieldTemplate;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=BuildClassField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildClassField.js","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildClassField.ts"],"names":[],"mappings":";;AAoBA,kCAmBC;AAtCD,4EAAsE;AACtE,4EAAsE;AACtE,8DAAwD;AACxD,sEAAgE;AAChE,8EAAwE;AACxE,8EAAwE;AACxE,gFAA0E;AAQ1E;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAa;IACrC,IAAI,aAAa,GAAmB;QAChC,IAAI,EAAE,OAAO;QACb,6DAA6D;QAC7D,aAAa;QACb,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KACnC,CAAC;IAEF,aAAa,GAAG,IAAA,4CAAmB,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACzD,aAAa,GAAG,IAAA,4CAAmB,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACzD,aAAa,GAAG,IAAA,0CAAkB,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACxD,aAAa,GAAG,IAAA,oCAAe,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACrD,6DAA6D;IAC7D,aAAa;IACb,aAAa,GAAG,IAAA,0CAAkB,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACxD,aAAa,GAAG,IAAA,8CAAoB,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC1D,aAAa,GAAG,IAAA,4BAAW,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAEjD,OAAO,aAAa,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a function-like representation, does not handle arrow functions.
|
|
4
|
+
* @param node - The node to create the function-like representation from.
|
|
5
|
+
* @returns An object representing the function-like structure.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createFunctionLike(node: ts.FunctionLikeDeclaration): {
|
|
8
|
+
kind: string;
|
|
9
|
+
name: string;
|
|
10
|
+
parameters?: any;
|
|
11
|
+
return?: any;
|
|
12
|
+
modifiers?: any;
|
|
13
|
+
jsDoc?: any;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Determines the kind of the function-like, either 'function' or 'method'.
|
|
17
|
+
* @param functionLike - The function-like template to update.
|
|
18
|
+
* @param node - The node to determine the kind from.
|
|
19
|
+
* @returns The updated function-like template.
|
|
20
|
+
*/
|
|
21
|
+
export declare function handleKind(functionLike: {
|
|
22
|
+
kind: string;
|
|
23
|
+
name: string;
|
|
24
|
+
}, node: ts.Node): {
|
|
25
|
+
kind: string;
|
|
26
|
+
name: string;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Handles a function-like's return type and parameters/parameter types.
|
|
30
|
+
* @param functionLike - The function-like template to update.
|
|
31
|
+
* @param node - The node to extract parameters and return type from.
|
|
32
|
+
* @returns The updated function-like template.
|
|
33
|
+
*/
|
|
34
|
+
export declare function handleParametersAndReturnType(functionLike: {
|
|
35
|
+
parameters?: Array<any>;
|
|
36
|
+
return?: any;
|
|
37
|
+
}, node: ts.FunctionLikeDeclaration): {
|
|
38
|
+
parameters?: Array<any>;
|
|
39
|
+
return?: any;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=BuildFunctionLike.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildFunctionLike.d.ts","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildFunctionLike.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAcjK;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAUtH;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,EAAE,IAAI,EAAE,EAAE,CAAC,uBAAuB,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,CAiClL"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createFunctionLike = createFunctionLike;
|
|
7
|
+
exports.handleKind = handleKind;
|
|
8
|
+
exports.handleParametersAndReturnType = handleParametersAndReturnType;
|
|
9
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
10
|
+
const HandleJsDoc_js_1 = require("../Handler/HandleJsDoc.js");
|
|
11
|
+
const HandleModifiers_js_1 = require("../Handler/HandleModifiers.js");
|
|
12
|
+
/**
|
|
13
|
+
* Creates a function-like representation, does not handle arrow functions.
|
|
14
|
+
* @param node - The node to create the function-like representation from.
|
|
15
|
+
* @returns An object representing the function-like structure.
|
|
16
|
+
*/
|
|
17
|
+
function createFunctionLike(node) {
|
|
18
|
+
let functionLikeTemplate = {
|
|
19
|
+
kind: '',
|
|
20
|
+
name: node.name.getText() || ''
|
|
21
|
+
};
|
|
22
|
+
functionLikeTemplate = handleKind(functionLikeTemplate, node);
|
|
23
|
+
functionLikeTemplate = (0, HandleModifiers_js_1.handleModifiers)(functionLikeTemplate, node);
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
functionLikeTemplate = handleParametersAndReturnType(functionLikeTemplate, node);
|
|
27
|
+
functionLikeTemplate = (0, HandleJsDoc_js_1.handleJsDoc)(functionLikeTemplate, node);
|
|
28
|
+
return functionLikeTemplate;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Determines the kind of the function-like, either 'function' or 'method'.
|
|
32
|
+
* @param functionLike - The function-like template to update.
|
|
33
|
+
* @param node - The node to determine the kind from.
|
|
34
|
+
* @returns The updated function-like template.
|
|
35
|
+
*/
|
|
36
|
+
function handleKind(functionLike, node) {
|
|
37
|
+
switch (node.kind) {
|
|
38
|
+
case typescript_1.default.SyntaxKind.FunctionDeclaration:
|
|
39
|
+
functionLike.kind = 'function';
|
|
40
|
+
break;
|
|
41
|
+
case typescript_1.default.SyntaxKind.MethodDeclaration:
|
|
42
|
+
functionLike.kind = 'method';
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
return functionLike;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Handles a function-like's return type and parameters/parameter types.
|
|
49
|
+
* @param functionLike - The function-like template to update.
|
|
50
|
+
* @param node - The node to extract parameters and return type from.
|
|
51
|
+
* @returns The updated function-like template.
|
|
52
|
+
*/
|
|
53
|
+
function handleParametersAndReturnType(functionLike, node) {
|
|
54
|
+
if (node.type) {
|
|
55
|
+
functionLike.return = {
|
|
56
|
+
type: { text: node.type.getText() }
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const parameters = [];
|
|
60
|
+
node.parameters.forEach(param => {
|
|
61
|
+
const parameter = {
|
|
62
|
+
name: param.name.getText(),
|
|
63
|
+
};
|
|
64
|
+
if (param.initializer) {
|
|
65
|
+
parameter.default = param.initializer.getText();
|
|
66
|
+
}
|
|
67
|
+
if (param.questionToken) {
|
|
68
|
+
parameter.optional = true;
|
|
69
|
+
}
|
|
70
|
+
if (param.type) {
|
|
71
|
+
parameter.type = { text: param.type.getText() };
|
|
72
|
+
}
|
|
73
|
+
parameters.push(parameter);
|
|
74
|
+
});
|
|
75
|
+
if (Array.isArray(parameters) && parameters.length > 0) {
|
|
76
|
+
functionLike.parameters = parameters;
|
|
77
|
+
}
|
|
78
|
+
return functionLike;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=BuildFunctionLike.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildFunctionLike.js","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildFunctionLike.ts"],"names":[],"mappings":";;;;;AASA,gDAcC;AAQD,gCAUC;AAQD,sEAiCC;AAlFD,4DAA4B;AAC5B,8DAAwD;AACxD,sEAAgE;AAEhE;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAAgC;IAC/D,IAAI,oBAAoB,GAAG;QACvB,IAAI,EAAE,EAAE;QACR,IAAI,EAAG,IAAI,CAAC,IAAsB,CAAC,OAAO,EAAE,IAAI,EAAE;KACrD,CAAC;IAEF,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAC9D,oBAAoB,GAAG,IAAA,oCAAe,EAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACnE,6DAA6D;IAC7D,aAAa;IACb,oBAAoB,GAAG,6BAA6B,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACjF,oBAAoB,GAAG,IAAA,4BAAW,EAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAE/D,OAAO,oBAAoB,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,YAA4C,EAAE,IAAa;IAClF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,oBAAE,CAAC,UAAU,CAAC,mBAAmB;YAClC,YAAY,CAAC,IAAI,GAAG,UAAU,CAAC;YAC/B,MAAM;QACV,KAAK,oBAAE,CAAC,UAAU,CAAC,iBAAiB;YAChC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC7B,MAAM;IACd,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,6BAA6B,CAAC,YAAuD,EAAE,IAAgC;IACnI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,YAAY,CAAC,MAAM,GAAG;YAClB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;SACtC,CAAC;IACN,CAAC;IAED,MAAM,UAAU,GAAe,EAAE,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC5B,MAAM,SAAS,GAAQ;YACnB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;SAC7B,CAAC;QAEF,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,SAAS,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,YAAY,CAAC,UAAU,GAAG,UAAU,CAAC;IACzC,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type ts from 'typescript';
|
|
2
|
+
/**
|
|
3
|
+
* Takes a mixinFunctionNode, which is the function/arrow function containing the mixin class
|
|
4
|
+
* and the actual class node returned by the mixin declaration.
|
|
5
|
+
* @param mixinFunctionNode - The node representing the mixin function.
|
|
6
|
+
* @param mixinClassNode - The node representing the mixin class.
|
|
7
|
+
* @param moduleDoc - The module documentation object.
|
|
8
|
+
* @param context - The context for the mixin creation.
|
|
9
|
+
* @returns The mixin documentation object.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createMixin(mixinFunctionNode: ts.Node, mixinClassNode: ts.ClassDeclaration | ts.ClassExpression, moduleDoc: any, context: any): any;
|
|
12
|
+
/**
|
|
13
|
+
* Handles the name of the mixin.
|
|
14
|
+
* @param mixin - The mixin documentation object.
|
|
15
|
+
* @param node - The node representing the mixin.
|
|
16
|
+
* @returns The mixin documentation object with the name set.
|
|
17
|
+
*/
|
|
18
|
+
export declare function handleName(mixin: any, node: ts.Node): any;
|
|
19
|
+
//# sourceMappingURL=BuildMixin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildMixin.d.ts","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildMixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAKjC;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACvB,iBAAiB,EAAE,EAAE,CAAC,IAAI,EAC1B,cAAc,EAAE,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,eAAe,EACxD,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,GAAG,GACb,GAAG,CAWL;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAKzD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMixin = createMixin;
|
|
4
|
+
exports.handleName = handleName;
|
|
5
|
+
const HandleJsDoc_js_1 = require("../Handler/HandleJsDoc.js");
|
|
6
|
+
const BuildClass_js_1 = require("./BuildClass.js");
|
|
7
|
+
const BuildFunctionLike_js_1 = require("./BuildFunctionLike.js");
|
|
8
|
+
/**
|
|
9
|
+
* Takes a mixinFunctionNode, which is the function/arrow function containing the mixin class
|
|
10
|
+
* and the actual class node returned by the mixin declaration.
|
|
11
|
+
* @param mixinFunctionNode - The node representing the mixin function.
|
|
12
|
+
* @param mixinClassNode - The node representing the mixin class.
|
|
13
|
+
* @param moduleDoc - The module documentation object.
|
|
14
|
+
* @param context - The context for the mixin creation.
|
|
15
|
+
* @returns The mixin documentation object.
|
|
16
|
+
*/
|
|
17
|
+
function createMixin(mixinFunctionNode, mixinClassNode, moduleDoc, context) {
|
|
18
|
+
let mixinTemplate = (0, BuildClass_js_1.createClass)(mixinClassNode, moduleDoc, context);
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
mixinTemplate = (0, BuildFunctionLike_js_1.handleParametersAndReturnType)(mixinTemplate, mixinFunctionNode.declarationList?.declarations?.[0]?.initializer || mixinFunctionNode);
|
|
22
|
+
mixinTemplate = (0, HandleJsDoc_js_1.handleJsDoc)(mixinTemplate, mixinFunctionNode);
|
|
23
|
+
mixinTemplate = handleName(mixinTemplate, mixinFunctionNode);
|
|
24
|
+
mixinTemplate = turnClassDocIntoMixin(mixinTemplate);
|
|
25
|
+
return mixinTemplate;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Handles the name of the mixin.
|
|
29
|
+
* @param mixin - The mixin documentation object.
|
|
30
|
+
* @param node - The node representing the mixin.
|
|
31
|
+
* @returns The mixin documentation object with the name set.
|
|
32
|
+
*/
|
|
33
|
+
function handleName(mixin, node) {
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
35
|
+
// @ts-ignore
|
|
36
|
+
mixin.name = node.name?.getText() || node.parent.name?.getText() || node.declarationList?.declarations?.[0]?.name?.getText() || '';
|
|
37
|
+
return mixin;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Turns a class documentation object into a mixin documentation object.
|
|
41
|
+
* @param mixin - The class documentation object.
|
|
42
|
+
* @returns The mixin documentation object.
|
|
43
|
+
*/
|
|
44
|
+
function turnClassDocIntoMixin(mixin) {
|
|
45
|
+
mixin.kind = 'mixin';
|
|
46
|
+
delete mixin.superclass;
|
|
47
|
+
delete mixin.return;
|
|
48
|
+
return mixin;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=BuildMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildMixin.js","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildMixin.ts"],"names":[],"mappings":";;AAcA,kCAgBC;AAQD,gCAKC;AA1CD,8DAAwD;AACxD,mDAA8C;AAC9C,iEAAuE;AAEvE;;;;;;;;GAQG;AACH,SAAgB,WAAW,CACvB,iBAA0B,EAC1B,cAAwD,EACxD,SAAc,EACd,OAAY;IAEZ,IAAI,aAAa,GAAG,IAAA,2BAAW,EAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAEpE,6DAA6D;IAC7D,aAAa;IACb,aAAa,GAAG,IAAA,oDAA6B,EAAC,aAAa,EAAE,iBAAiB,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,iBAAiB,CAAC,CAAC;IACrJ,aAAa,GAAG,IAAA,4BAAW,EAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAC9D,aAAa,GAAG,UAAU,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAC7D,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAErD,OAAO,aAAa,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,KAAU,EAAE,IAAa;IAChD,6DAA6D;IAC7D,aAAa;IACb,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnI,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,KAAU;IACrC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;IACrB,OAAO,KAAK,CAAC,UAAU,CAAC;IACxB,OAAO,KAAK,CAAC,MAAM,CAAC;IACpB,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type ts from 'typescript';
|
|
2
|
+
interface IVariableTemplate {
|
|
3
|
+
kind: string;
|
|
4
|
+
name: string;
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Creates a variable documentation object.
|
|
9
|
+
* @param variableStatementNode - The node representing the variable statement.
|
|
10
|
+
* @param declarationNode - The node representing the variable declaration.
|
|
11
|
+
* @returns The variable documentation object.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createVariable(variableStatementNode: ts.VariableStatement, declarationNode: ts.VariableDeclaration): IVariableTemplate;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=BuildVariable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildVariable.d.ts","sourceRoot":"","sources":["../../../src/Ast/Builder/BuildVariable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAOjC,UAAU,iBAAiB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC1B,qBAAqB,EAAE,EAAE,CAAC,iBAAiB,EAC3C,eAAe,EAAE,EAAE,CAAC,mBAAmB,GACxC,iBAAiB,CAenB"}
|