Socket
Socket
Sign inDemoInstall

tsd-jsdoc

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tsd-jsdoc - npm Package Compare versions

Comparing version 2.3.1 to 2.4.0

42

dist/create_helpers.js

@@ -6,2 +6,3 @@ "use strict";

const type_resolve_helpers_1 = require("./type_resolve_helpers");
const PropTree_1 = require("./PropTree");
const declareModifier = ts.createModifier(ts.SyntaxKind.DeclareKeyword);

@@ -67,2 +68,16 @@ const constModifier = ts.createModifier(ts.SyntaxKind.ConstKeyword);

}
if (doclet.properties) {
const tree = new PropTree_1.PropTree(doclet.properties);
for (let i = 0; i < tree.roots.length; ++i) {
const node = tree.roots[i];
const opt = node.prop.optional ? ts.createToken(ts.SyntaxKind.QuestionToken) : undefined;
const t = node.children.length ? type_resolve_helpers_1.createTypeLiteral(node.children) : type_resolve_helpers_1.resolveType(node.prop.type);
const property = ts.createProperty(undefined, undefined, node.name, opt, t, undefined);
if (node.prop.description) {
let comment = `*\n * ${node.prop.description.split(/\r\s*/).join("\n * ")}\n`;
ts.addSyntheticLeadingComment(property, ts.SyntaxKind.MultiLineCommentTrivia, comment, true);
}
members.push(property);
}
}
return handleComment(doclet, ts.createClassDeclaration(undefined, mods, doclet.name, typeParams, heritageClauses, members));

@@ -109,3 +124,4 @@ }

doclet.name = doclet.name.replace('exports.', '');
return handleComment(doclet, ts.createMethod(undefined, mods, undefined, doclet.name, undefined, typeParams, params, type, undefined));
const [name, questionToken] = type_resolve_helpers_1.resolveOptionalFromName(doclet);
return handleComment(doclet, ts.createMethod(undefined, mods, undefined, name, questionToken, typeParams, params, type, undefined));
}

@@ -118,9 +134,6 @@ exports.createClassMethod = createClassMethod;

const typeParams = type_resolve_helpers_1.resolveTypeParameters(doclet);
if (!doclet.memberof)
mods.push(declareModifier);
if (doclet.scope === 'static')
mods.push(ts.createModifier(ts.SyntaxKind.StaticKeyword));
if (doclet.name.startsWith('exports.'))
doclet.name = doclet.name.replace('exports.', '');
return handleComment(doclet, ts.createMethodSignature(typeParams, params, type, doclet.name, undefined));
const [name, questionToken] = type_resolve_helpers_1.resolveOptionalFromName(doclet);
return handleComment(doclet, ts.createMethodSignature(typeParams, params, type, name, questionToken));
}

@@ -158,3 +171,4 @@ exports.createInterfaceMethod = createInterfaceMethod;

mods.push(readonlyModifier);
return handleComment(doclet, ts.createProperty(undefined, mods, doclet.name, undefined, type, undefined));
const [name, questionToken] = type_resolve_helpers_1.resolveOptionalFromName(doclet);
return handleComment(doclet, ts.createProperty(undefined, mods, name, questionToken, type, undefined));
}

@@ -169,3 +183,4 @@ exports.createClassMember = createClassMember;

mods.push(ts.createModifier(ts.SyntaxKind.StaticKeyword));
return handleComment(doclet, ts.createPropertySignature(mods, doclet.name, undefined, type, undefined));
const [name, questionToken] = type_resolve_helpers_1.resolveOptionalFromName(doclet);
return handleComment(doclet, ts.createPropertySignature(mods, name, questionToken, type, undefined));
}

@@ -175,6 +190,13 @@ exports.createInterfaceMember = createInterfaceMember;

const mods = doclet.memberof ? undefined : [declareModifier];
const type = type_resolve_helpers_1.resolveType(doclet.type, doclet);
const flags = (doclet.kind === 'constant' || doclet.readonly) ? ts.NodeFlags.Const : undefined;
const literalValue = doclet.defaultvalue !== undefined ? doclet.defaultvalue
: doclet.meta && doclet.meta.code.type === 'Literal' ? doclet.meta.code.value
: undefined;
const initializer = (flags === ts.NodeFlags.Const && literalValue !== undefined) ? ts.createLiteral(literalValue) : undefined;
const type = initializer ? undefined : type_resolve_helpers_1.resolveType(doclet.type, doclet);
if (doclet.name.startsWith('exports.'))
doclet.name = doclet.name.replace('exports.', '');
return handleComment(doclet, ts.createVariableStatement(mods, [ts.createVariableDeclaration(doclet.name, type, undefined)]));
return handleComment(doclet, ts.createVariableStatement(mods, ts.createVariableDeclarationList([
ts.createVariableDeclaration(doclet.name, type, initializer)
], flags)));
}

@@ -181,0 +203,0 @@ exports.createNamespaceMember = createNamespaceMember;

@@ -78,4 +78,4 @@ "use strict";

if (extras.length) {
const interfaceLongname = this._getInterfaceKey(doclet.longname);
interfaceMerge = this._treeNodes[interfaceLongname] = {
const longname = this._getInterfaceKey(doclet.longname);
interfaceMerge = this._treeNodes[longname] = {
doclet: {

@@ -85,3 +85,3 @@ kind: 'interface',

scope: doclet.scope,
longname: interfaceLongname,
longname: longname,
augments: extras,

@@ -94,2 +94,20 @@ memberof: doclet.memberof,

}
let namespaceMerge = null;
if (doclet.kind === 'interface' || doclet.kind === 'mixin') {
const staticChildren = docs.filter(d => d.memberof === doclet.longname && d.scope === 'static');
if (staticChildren.length) {
const longname = this._getNamespaceKey(doclet.longname);
namespaceMerge = this._treeNodes[longname] = {
doclet: {
kind: 'namespace',
name: doclet.name,
scope: doclet.scope,
longname: longname,
memberof: doclet.memberof,
},
children: [],
};
staticChildren.forEach(c => c.memberof = longname);
}
}
if (doclet.memberof) {

@@ -106,2 +124,4 @@ const parent = this._treeNodes[doclet.memberof];

mod.children.push(interfaceMerge);
if (namespaceMerge)
mod.children.push(namespaceMerge);
mod.children.push(obj);

@@ -118,2 +138,4 @@ }

parent.children.push(interfaceMerge);
if (namespaceMerge)
parent.children.push(namespaceMerge);
parent.children.push(obj);

@@ -126,2 +148,4 @@ }

this._treeRoots.push(interfaceMerge);
if (namespaceMerge)
this._treeRoots.push(namespaceMerge);
this._treeRoots.push(obj);

@@ -128,0 +152,0 @@ }

@@ -142,2 +142,4 @@ "use strict";

node.name = 'object';
else if (partUpper === 'ARRAY')
node.name = 'any[]';
if (!parent)

@@ -298,3 +300,3 @@ return node;

exports.toKeywordTypeKind = toKeywordTypeKind;
function resolveOptional(doclet) {
function resolveOptionalParameter(doclet) {
if (doclet.defaultvalue || doclet.optional)

@@ -304,4 +306,4 @@ return ts.createToken(ts.SyntaxKind.QuestionToken);

}
exports.resolveOptional = resolveOptional;
function resolveVariable(doclet) {
exports.resolveOptionalParameter = resolveOptionalParameter;
function resolveVariableParameter(doclet) {
if (doclet.variable)

@@ -311,3 +313,15 @@ return ts.createToken(ts.SyntaxKind.DotDotDotToken);

}
exports.resolveVariable = resolveVariable;
exports.resolveVariableParameter = resolveVariableParameter;
function resolveOptionalFromName(doclet) {
let name = doclet.name;
if (name.startsWith('[') && name.endsWith(']')) {
name = name.substring(1, name.length - 1);
return [name, ts.createToken(ts.SyntaxKind.QuestionToken)];
}
if (doclet.optional) {
return [name, ts.createToken(ts.SyntaxKind.QuestionToken)];
}
return [name, undefined];
}
exports.resolveOptionalFromName = resolveOptionalFromName;
function getExprWithTypeArgs(identifier) {

@@ -445,4 +459,4 @@ const expr = ts.createIdentifier(identifier);

const node = tree.roots[i];
const opt = resolveOptional(node.prop);
const dots = resolveVariable(node.prop);
const opt = resolveOptionalParameter(node.prop);
const dots = resolveVariableParameter(node.prop);
let type = node.children.length ? createTypeLiteral(node.children) : resolveType(node.prop.type);

@@ -449,0 +463,0 @@ if (dots) {

{
"name": "tsd-jsdoc",
"version": "2.3.1",
"version": "2.4.0",
"description": "Compiles JSDoc annotated javascript into a Typescript Declaration File (.d.ts).",

@@ -5,0 +5,0 @@ "main": "dist/publish.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc