blob: 5374ebd13eb564b1bbfef6ee5807744d50da8718 [file] [log] [blame]
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.typeScriptTags = exports.closureTags = exports.jsdocTags = void 0;
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
const jsdocTagsUndocumented = {
// Undocumented but present; see
// https://github.com/jsdoc/jsdoc/issues/1283#issuecomment-516816802
// https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594
modifies: []
};
const jsdocTags = _objectSpread({}, jsdocTagsUndocumented, {
abstract: ['virtual'],
access: [],
alias: [],
async: [],
augments: ['extends'],
author: [],
borrows: [],
callback: [],
class: ['constructor'],
classdesc: [],
constant: ['const'],
constructs: [],
copyright: [],
default: ['defaultvalue'],
deprecated: [],
description: ['desc'],
enum: [],
event: [],
example: [],
exports: [],
external: ['host'],
file: ['fileoverview', 'overview'],
fires: ['emits'],
function: ['func', 'method'],
generator: [],
global: [],
hideconstructor: [],
ignore: [],
implements: [],
inheritdoc: [],
inner: [],
instance: [],
interface: [],
kind: [],
lends: [],
license: [],
listens: [],
member: ['var'],
memberof: [],
'memberof!': [],
mixes: [],
mixin: [],
module: [],
name: [],
namespace: [],
override: [],
package: [],
param: ['arg', 'argument'],
private: [],
property: ['prop'],
protected: [],
public: [],
readonly: [],
requires: [],
returns: ['return'],
see: [],
since: [],
static: [],
summary: [],
this: [],
throws: ['exception'],
todo: [],
tutorial: [],
type: [],
typedef: [],
variation: [],
version: [],
yields: ['yield']
});
exports.jsdocTags = jsdocTags;
const typeScriptTags = _objectSpread({}, jsdocTags, {
// `@template` is also in TypeScript per:
// https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc
template: []
});
exports.typeScriptTags = typeScriptTags;
const undocumentedClosureTags = {
// These are in Closure source but not in jsdoc source nor in the Closure
// docs: https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java
closurePrimitive: [],
customElement: [],
expose: [],
hidden: [],
idGenerator: [],
meaning: [],
mixinClass: [],
mixinFunction: [],
ngInject: [],
owner: [],
typeSummary: [],
wizaction: []
};
const closureTags = _objectSpread({}, typeScriptTags, {}, undocumentedClosureTags, {
// From https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler
// These are all recognized in https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js
// except for the experimental `noinline` and the casing differences noted below
// Defined as a synonym of `const` in jsdoc `definitions.js`
define: [],
dict: [],
export: [],
externs: [],
final: [],
// With casing distinct from jsdoc `definitions.js`
implicitCast: [],
// With casing distinct from jsdoc `definitions.js`
inheritDoc: [],
noalias: [],
nocollapse: [],
nocompile: [],
noinline: [],
nosideeffects: [],
polymer: [],
polymerBehavior: [],
preserve: [],
// Defined as a synonym of `interface` in jsdoc `definitions.js`
record: [],
struct: [],
suppress: [],
unrestricted: []
});
exports.closureTags = closureTags;
//# sourceMappingURL=tagNames.js.map