Socket
Socket
Sign inDemoInstall

rollup-plugin-dts

Package Overview
Dependencies
Maintainers
1
Versions
74
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rollup-plugin-dts - npm Package Compare versions

Comparing version 0.5.0 to 0.6.0

146

dist/rollup-plugin-dts.cjs.js
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }

@@ -180,2 +182,3 @@

for (const param of node.parameters) {
// istanbul ignore else
if (param.type) {

@@ -211,5 +214,6 @@ this.convertTypeNode(param.type);

}
continue;
}
// istanbul ignore else
else if (ts.isMethodDeclaration(node) ||
if (ts.isMethodDeclaration(node) ||
ts.isMethodSignature(node) ||

@@ -253,2 +257,3 @@ ts.isConstructorDeclaration(node) ||

const { typeParameter, type } = node;
// istanbul ignore else
if (typeParameter.constraint) {

@@ -259,2 +264,3 @@ this.convertTypeNode(typeParameter.constraint);

// node.typeParameter.name
// istanbul ignore else
if (type) {

@@ -283,2 +289,3 @@ this.convertTypeNode(type);

else {
console.log(node.getSourceFile().getFullText());
console.log({ kind: node.kind, code: node.getFullText() });

@@ -338,2 +345,5 @@ throw new Error(`Unknown TypeNode`);

convertStatement(node) {
if (ts.isEnumDeclaration(node)) {
return this.convertEnumDeclaration(node);
}
if (ts.isFunctionDeclaration(node)) {

@@ -363,2 +373,8 @@ return this.convertFunctionDeclaration(node);

}
convertEnumDeclaration(node) {
this.maybeMarkAsExported(node, node.name);
const scope = this.createDeclaration(node.name, node);
scope.removeModifier(node);
scope.pushIdentifierReference(node.name);
}
convertFunctionDeclaration(node) {

@@ -496,2 +512,19 @@ // istanbul ignore if

const SOURCEMAPPING_URL_RE = new RegExp(`^//#\\s+${SOURCEMAPPING_URL}=.+\\n?`, "m");
(function (CompileMode) {
CompileMode["Types"] = "dts";
CompileMode["Js"] = "js";
})(exports.CompileMode || (exports.CompileMode = {}));
const OPTIONS_OVERRIDES = {
module: ts.ModuleKind.ES2015,
noEmitOnError: false,
noEmit: false,
skipLibCheck: true,
declaration: true,
allowJs: true,
checkJs: true,
resolveJsonModule: true,
sourceMap: true,
inlineSourceMap: false,
declarationMap: true,
};
const COMPILERCACHE = new Map();

@@ -505,6 +538,3 @@ function createCompiler(options) {

}
const compilerOptions = Object.assign({}, options.compilerOptions, { noEmitOnError: false, noEmit: false, skipLibCheck: true, declaration: true, allowJs: true, checkJs: true, resolveJsonModule: true,
// hm, there are still issues with this, I couldn’t get it to work locally
// See https://github.com/Microsoft/TypeScript/issues/25662
declarationMap: false });
const compilerOptions = Object.assign({}, options.compilerOptions, OPTIONS_OVERRIDES);
let diagnostic;

@@ -526,2 +556,34 @@ const configParseResult = ts.getParsedCommandLineOfConfigFile(configFileName, compilerOptions, Object.assign({}, ts.sys, { onUnRecoverableConfigFileDiagnostic(d) {

}
function getEmitFiles(compiler, fileName) {
const result = {
dts: "",
dtsMap: `{"mappings": ""}`,
js: "",
jsMap: `{"mappings": ""}`,
};
if (fileName.endsWith(".d.ts")) {
result.dts = ts.sys.readFile(fileName, "utf-8");
return result;
}
const sourceFile = compiler.getSourceFile(fileName);
// XXX(swatinem): maybe we should look at the diagnostics? :-D
compiler.emit(sourceFile, (fileName, data) => {
data = data.replace(SOURCEMAPPING_URL_RE, "").trim();
if (fileName.endsWith(".d.ts")) {
result.dts = data;
}
else if (fileName.endsWith(".js")) {
result.js = data;
// NOTE(swatinem): hm, there are still issues with this,
// I couldn’t get it to work locally
// See https://github.com/Microsoft/TypeScript/issues/25662
// } else if (fileName.endsWith(".d.ts.map")) {
// result.dtsMap = data;
}
else if (fileName.endsWith(".js.map")) {
result.jsMap = data;
}
});
return result;
}
function getCachedCompiler(options) {

@@ -549,22 +611,17 @@ const cacheKey = JSON.stringify(options);

},
transform(code, fileName) {
transform(_code, fileName) {
const { compiler } = lazyCreate();
const sourceFile = compiler.getSourceFile(fileName);
let dtsSource = sourceFile;
let dtsFilename = fileName;
let map = `{"mappings": ""}`;
const emitFiles = getEmitFiles(compiler, fileName);
if (options.mode === exports.CompileMode.Js) {
return {
code: emitFiles.js,
map: emitFiles.jsMap,
};
}
let code = emitFiles.dts;
let dtsFileName = fileName;
if (!fileName.endsWith(".d.ts")) {
code = "";
const baseFileName = fileName.slice(0, -path.extname(fileName).length);
compiler.emit(sourceFile, (fileName, data) => {
if (fileName === `${baseFileName}.d.ts`) {
dtsFilename = fileName;
code = data.replace(SOURCEMAPPING_URL_RE, "").trim();
}
// if (fileName === `${baseFileName}.d.ts.map`) {
// map = data;
// }
});
dtsSource = ts.createSourceFile(dtsFilename, code, ts.ScriptTarget.Latest, true);
dtsFileName = fileName.slice(0, -path.extname(fileName).length) + ".d.ts";
}
const dtsSource = ts.createSourceFile(dtsFileName, code, ts.ScriptTarget.Latest, true);
const converter = new Transformer(dtsSource);

@@ -578,3 +635,7 @@ const ast = converter.transform();

code = code.replace(/(export\s+)default(\s+(function|class))/m, "$1declare$2");
return { code, ast, map };
return {
code,
ast,
map: emitFiles.dtsMap,
};
},

@@ -584,12 +645,27 @@ };

// @ts-ignore
function dts(options = {}) {
const filter = rollupPluginutils.createFilter(options.include || ["*.ts+(|x)", "**/*.ts+(|x)", "*.json", "**/*.json"], options.exclude || []);
const version = "0.6.0";
const TSLIB_ID = "\0tslib";
const BANNER = `
// FILE GENERATED BY \`rollup-plugin-dts@${version}\`
// https://github.com/Swatinem/rollup-plugin-dts
`.trim() + "\n\n";
function plugin(options = {}) {
const filter = rollupPluginutils.createFilter(options.include || ["*.ts+(|x)", "**/*.ts+(|x)"], options.exclude || []);
const tslibFileName = require.resolve("tslib").replace("tslib.js", "tslib.es6.js");
const tslib = ts.sys.readFile(tslibFileName, "utf-8");
const mode = options.compileMode || exports.CompileMode.Types;
const compiler = getCachedCompiler({
tsconfig: options.tsconfig || process.cwd(),
compilerOptions: options.compilerOptions || {},
mode,
});
return {
name: "dts",
banner: mode === exports.CompileMode.Types ? BANNER : undefined,
resolveId(importee, importer) {
// istanbul ignore if
if (importee === "tslib") {
return TSLIB_ID;
}
if (!importer) {

@@ -601,2 +677,6 @@ return null;

},
load(id) {
// istanbul ignore next
return id === TSLIB_ID ? tslib : undefined;
},
async transform(code, id) {

@@ -611,3 +691,15 @@ // istanbul ignore if

}
function dts(options = {}) {
options.compileMode = options.compileMode || exports.CompileMode.Types;
return plugin(options);
}
function js(options = {}) {
options.compileMode = options.compileMode || exports.CompileMode.Js;
return plugin(options);
}
module.exports = dts;
exports.plugin = plugin;
exports.dts = dts;
exports.js = js;
exports.ts = js;
exports.default = plugin;

@@ -0,4 +1,14 @@

// FILE GENERATED BY `rollup-plugin-dts@0.6.0`
// https://github.com/Swatinem/rollup-plugin-dts
import { Plugin } from 'rollup';
import { CompilerOptions } from 'typescript';
import { Plugin } from 'rollup';
declare enum CompileMode {
Types = "dts",
Js = "js"
}
interface Options {

@@ -9,5 +19,9 @@ include?: Array<string>;

compilerOptions?: CompilerOptions;
compileMode?: CompileMode;
}
declare function plugin(options?: Options): Plugin;
declare function dts(options?: Options): Plugin;
declare function js(options?: Options): Plugin;
export default dts;
export default plugin;
export { CompileMode, plugin, dts, js, js as ts };
import { createFilter } from 'rollup-pluginutils';
import { findConfigFile, sys, getParsedCommandLineOfConfigFile, createProgram, nodeModuleNameResolver, createSourceFile, ScriptTarget, ModifierFlags, isFunctionDeclaration, isInterfaceDeclaration, isClassDeclaration, isTypeAliasDeclaration, isVariableStatement, isExportDeclaration, isExportAssignment, isImportDeclaration, SyntaxKind, isIdentifier, isNamedImports, idText, isLiteralExpression, getCombinedModifierFlags, getJSDocTags, isPropertyDeclaration, isPropertySignature, isIndexSignatureDeclaration, isMethodDeclaration, isMethodSignature, isConstructorDeclaration, isConstructSignatureDeclaration, isParenthesizedTypeNode, isTypeOperatorNode, isArrayTypeNode, isTupleTypeNode, isUnionTypeNode, isIntersectionTypeNode, isTypeLiteralNode, isMappedTypeNode, isConditionalTypeNode, isIndexedAccessTypeNode, isTypeReferenceNode } from 'typescript';
import { sys, ModuleKind, findConfigFile, getParsedCommandLineOfConfigFile, createProgram, nodeModuleNameResolver, createSourceFile, ScriptTarget, ModifierFlags, isEnumDeclaration, isFunctionDeclaration, isInterfaceDeclaration, isClassDeclaration, isTypeAliasDeclaration, isVariableStatement, isExportDeclaration, isExportAssignment, isImportDeclaration, SyntaxKind, isIdentifier, isNamedImports, idText, isLiteralExpression, getCombinedModifierFlags, getJSDocTags, isPropertyDeclaration, isPropertySignature, isIndexSignatureDeclaration, isMethodDeclaration, isMethodSignature, isConstructorDeclaration, isConstructSignatureDeclaration, isParenthesizedTypeNode, isTypeOperatorNode, isArrayTypeNode, isTupleTypeNode, isUnionTypeNode, isIntersectionTypeNode, isTypeLiteralNode, isMappedTypeNode, isConditionalTypeNode, isIndexedAccessTypeNode, isTypeReferenceNode } from 'typescript';
import path from 'path';

@@ -176,2 +176,3 @@

for (const param of node.parameters) {
// istanbul ignore else
if (param.type) {

@@ -207,5 +208,6 @@ this.convertTypeNode(param.type);

}
continue;
}
// istanbul ignore else
else if (isMethodDeclaration(node) ||
if (isMethodDeclaration(node) ||
isMethodSignature(node) ||

@@ -249,2 +251,3 @@ isConstructorDeclaration(node) ||

const { typeParameter, type } = node;
// istanbul ignore else
if (typeParameter.constraint) {

@@ -255,2 +258,3 @@ this.convertTypeNode(typeParameter.constraint);

// node.typeParameter.name
// istanbul ignore else
if (type) {

@@ -279,2 +283,3 @@ this.convertTypeNode(type);

else {
console.log(node.getSourceFile().getFullText());
console.log({ kind: node.kind, code: node.getFullText() });

@@ -334,2 +339,5 @@ throw new Error(`Unknown TypeNode`);

convertStatement(node) {
if (isEnumDeclaration(node)) {
return this.convertEnumDeclaration(node);
}
if (isFunctionDeclaration(node)) {

@@ -359,2 +367,8 @@ return this.convertFunctionDeclaration(node);

}
convertEnumDeclaration(node) {
this.maybeMarkAsExported(node, node.name);
const scope = this.createDeclaration(node.name, node);
scope.removeModifier(node);
scope.pushIdentifierReference(node.name);
}
convertFunctionDeclaration(node) {

@@ -492,2 +506,20 @@ // istanbul ignore if

const SOURCEMAPPING_URL_RE = new RegExp(`^//#\\s+${SOURCEMAPPING_URL}=.+\\n?`, "m");
var CompileMode;
(function (CompileMode) {
CompileMode["Types"] = "dts";
CompileMode["Js"] = "js";
})(CompileMode || (CompileMode = {}));
const OPTIONS_OVERRIDES = {
module: ModuleKind.ES2015,
noEmitOnError: false,
noEmit: false,
skipLibCheck: true,
declaration: true,
allowJs: true,
checkJs: true,
resolveJsonModule: true,
sourceMap: true,
inlineSourceMap: false,
declarationMap: true,
};
const COMPILERCACHE = new Map();

@@ -501,6 +533,3 @@ function createCompiler(options) {

}
const compilerOptions = Object.assign({}, options.compilerOptions, { noEmitOnError: false, noEmit: false, skipLibCheck: true, declaration: true, allowJs: true, checkJs: true, resolveJsonModule: true,
// hm, there are still issues with this, I couldn’t get it to work locally
// See https://github.com/Microsoft/TypeScript/issues/25662
declarationMap: false });
const compilerOptions = Object.assign({}, options.compilerOptions, OPTIONS_OVERRIDES);
let diagnostic;

@@ -522,2 +551,34 @@ const configParseResult = getParsedCommandLineOfConfigFile(configFileName, compilerOptions, Object.assign({}, sys, { onUnRecoverableConfigFileDiagnostic(d) {

}
function getEmitFiles(compiler, fileName) {
const result = {
dts: "",
dtsMap: `{"mappings": ""}`,
js: "",
jsMap: `{"mappings": ""}`,
};
if (fileName.endsWith(".d.ts")) {
result.dts = sys.readFile(fileName, "utf-8");
return result;
}
const sourceFile = compiler.getSourceFile(fileName);
// XXX(swatinem): maybe we should look at the diagnostics? :-D
compiler.emit(sourceFile, (fileName, data) => {
data = data.replace(SOURCEMAPPING_URL_RE, "").trim();
if (fileName.endsWith(".d.ts")) {
result.dts = data;
}
else if (fileName.endsWith(".js")) {
result.js = data;
// NOTE(swatinem): hm, there are still issues with this,
// I couldn’t get it to work locally
// See https://github.com/Microsoft/TypeScript/issues/25662
// } else if (fileName.endsWith(".d.ts.map")) {
// result.dtsMap = data;
}
else if (fileName.endsWith(".js.map")) {
result.jsMap = data;
}
});
return result;
}
function getCachedCompiler(options) {

@@ -545,22 +606,17 @@ const cacheKey = JSON.stringify(options);

},
transform(code, fileName) {
transform(_code, fileName) {
const { compiler } = lazyCreate();
const sourceFile = compiler.getSourceFile(fileName);
let dtsSource = sourceFile;
let dtsFilename = fileName;
let map = `{"mappings": ""}`;
const emitFiles = getEmitFiles(compiler, fileName);
if (options.mode === CompileMode.Js) {
return {
code: emitFiles.js,
map: emitFiles.jsMap,
};
}
let code = emitFiles.dts;
let dtsFileName = fileName;
if (!fileName.endsWith(".d.ts")) {
code = "";
const baseFileName = fileName.slice(0, -path.extname(fileName).length);
compiler.emit(sourceFile, (fileName, data) => {
if (fileName === `${baseFileName}.d.ts`) {
dtsFilename = fileName;
code = data.replace(SOURCEMAPPING_URL_RE, "").trim();
}
// if (fileName === `${baseFileName}.d.ts.map`) {
// map = data;
// }
});
dtsSource = createSourceFile(dtsFilename, code, ScriptTarget.Latest, true);
dtsFileName = fileName.slice(0, -path.extname(fileName).length) + ".d.ts";
}
const dtsSource = createSourceFile(dtsFileName, code, ScriptTarget.Latest, true);
const converter = new Transformer(dtsSource);

@@ -574,3 +630,7 @@ const ast = converter.transform();

code = code.replace(/(export\s+)default(\s+(function|class))/m, "$1declare$2");
return { code, ast, map };
return {
code,
ast,
map: emitFiles.dtsMap,
};
},

@@ -580,12 +640,27 @@ };

// @ts-ignore
function dts(options = {}) {
const filter = createFilter(options.include || ["*.ts+(|x)", "**/*.ts+(|x)", "*.json", "**/*.json"], options.exclude || []);
const version = "0.6.0";
const TSLIB_ID = "\0tslib";
const BANNER = `
// FILE GENERATED BY \`rollup-plugin-dts@${version}\`
// https://github.com/Swatinem/rollup-plugin-dts
`.trim() + "\n\n";
function plugin(options = {}) {
const filter = createFilter(options.include || ["*.ts+(|x)", "**/*.ts+(|x)"], options.exclude || []);
const tslibFileName = require.resolve("tslib").replace("tslib.js", "tslib.es6.js");
const tslib = sys.readFile(tslibFileName, "utf-8");
const mode = options.compileMode || CompileMode.Types;
const compiler = getCachedCompiler({
tsconfig: options.tsconfig || process.cwd(),
compilerOptions: options.compilerOptions || {},
mode,
});
return {
name: "dts",
banner: mode === CompileMode.Types ? BANNER : undefined,
resolveId(importee, importer) {
// istanbul ignore if
if (importee === "tslib") {
return TSLIB_ID;
}
if (!importer) {

@@ -597,2 +672,6 @@ return null;

},
load(id) {
// istanbul ignore next
return id === TSLIB_ID ? tslib : undefined;
},
async transform(code, id) {

@@ -607,3 +686,12 @@ // istanbul ignore if

}
function dts(options = {}) {
options.compileMode = options.compileMode || CompileMode.Types;
return plugin(options);
}
function js(options = {}) {
options.compileMode = options.compileMode || CompileMode.Js;
return plugin(options);
}
export default dts;
export default plugin;
export { CompileMode, plugin, dts, js, js as ts };

8

package.json
{
"name": "rollup-plugin-dts",
"version": "0.5.0",
"version": "0.6.0",
"description": "An experiment to generate .d.ts rollup files",

@@ -60,10 +60,9 @@ "keywords": [

"@types/jest": "^23.3.9",
"@types/node": "^10.12.7",
"@types/node": "^10.12.10",
"fs-extra": "^7.0.1",
"jest": "^23.6.0",
"prettier": "^1.15.2",
"rollup": "^0.67.1",
"rollup": "^0.67.3",
"rollup-plugin-json": "^3.1.0",
"rollup-plugin-node-resolve": "^3.4.0",
"rollup-plugin-typescript": "^1.0.0",
"ts-jest": "^23.10.4",

@@ -75,2 +74,3 @@ "ts-node": "^7.0.1",

"peerDependencies": {
"tslib": "*",
"typescript": ">= 3.1.6"

@@ -77,0 +77,0 @@ },

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