New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@travetto/transformer

Package Overview
Dependencies
Maintainers
1
Versions
153
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@travetto/transformer - npm Package Compare versions

Comparing version 1.1.1 to 2.0.0-alpha.1

test-support/util.ts

10

package.json

@@ -10,3 +10,3 @@ {

"dependencies": {
"@travetto/base": "^1.1.1"
"@travetto/base": "^2.0.0-alpha.1"
},

@@ -26,4 +26,4 @@ "title": "Transformation",

"src",
"support",
"tsconfig.json"
"test-support",
"support"
],

@@ -35,4 +35,4 @@ "name": "@travetto/transformer",

},
"version": "1.1.1",
"gitHead": "6c99d86d8962c547025235b56e7c28ac2604c0fb"
"version": "2.0.0-alpha.1",
"gitHead": "a3b2c1e550fdc551138c1e1f396718760cd18007"
}
<!-- This file was generated by the framweork and should not be modified directly -->
<!-- Please modify https://github.com/travetto/travetto/tree/master/module/transformer/DOCS.js and execute "npm run docs" to rebuild -->
<!-- Please modify https://github.com/travetto/travetto/tree/master/module/transformer/doc.ts and execute "npm run docs" to rebuild -->
# Transformation

@@ -25,7 +25,7 @@ ## Functionality for AST transformations, with transformer registration, and general utils

import { OnProperty, TransformerState, OnMethod, OnClass } from '@travetto/transformer';
import { OnProperty, TransformerState, OnMethod, OnClass, TransformerId } from '@travetto/transformer';
export class MakeUpper {
static key = '@trv:transformer-test';
static [TransformerId] = '@trv:transformer-test';

@@ -32,0 +32,0 @@ @OnProperty()

@@ -5,2 +5,3 @@ import * as ts from 'typescript';

import { FsUtil } from '@travetto/boot';
import { SystemUtil } from '@travetto/base/src/internal/system';

@@ -17,3 +18,2 @@ import { AnyType, ExternalType } from './resolver/types';

private newImports = new Map<string, Import>();

@@ -42,3 +42,5 @@ private imports: Map<string, Import>;

*/
importFile(file: string) {
importFile(file: string, base?: string) {
file = SystemUtil.convertFileToModule(file, base);
if (!file.endsWith('.d.ts') && !this.newImports.has(file)) {

@@ -65,3 +67,3 @@ const id = this.getId(file);

if (type.key === 'external' && type.source && type.source !== this.source.fileName) {
this.importFile(type.source);
this.importFile(type.source, this.source.fileName);
}

@@ -91,3 +93,3 @@ switch (type.key) {

this.factory.createImportClause(false, undefined, this.factory.createNamespaceImport(ident)),
this.factory.createStringLiteral(path.replace(/^.*node_modules\//, '').replace(FsUtil.cwd, '@app'))
this.factory.createStringLiteral(path)
);

@@ -102,3 +104,3 @@ return imptStmt;

} catch (err) { // Missing import
const out = new Error(`${err.message} in ${file.fileName.replace(`${FsUtil.cwd}/`, '')}`);
const out = new Error(`${err.message} in ${file.fileName.replace(FsUtil.cwd, '.')}`);
out.stack = err.stack;

@@ -123,3 +125,3 @@ throw out;

} else {
const { ident } = this.imports.get(type.source) ?? this.importFile(type.source);
const { ident } = this.imports.get(type.source) ?? this.importFile(type.source, this.source.fileName);
return factory.createPropertyAccessExpression(ident, type.name!);

@@ -126,0 +128,0 @@ }

import * as ts from 'typescript';
import { DecoratorMeta, NodeTransformer, State, TransformPhase, TransformerType, Transformer } from './types/visitor';
import { DecoratorMeta, NodeTransformer, State, TransformPhase, TransformerType, Transformer, TransformerId } from './types/visitor';
const HANDLERS = Symbol.for('@trv:transformer/handlers');
const HandlersProp = Symbol.for('@trv:transformer/handlers');
type TransformerWithHandlers = Transformer & { [HANDLERS]?: NodeTransformer[] };
type TransformerWithHandlers = Transformer & { [HandlersProp]?: NodeTransformer[] };

@@ -12,4 +12,4 @@ /**

*/
export function getAllTransformers(obj: any) {
return Object.values(obj).flatMap((x: any) => x[HANDLERS] as NodeTransformer[] ?? []);
export function getAllTransformers(obj: Record<string, { [HandlersProp]?: NodeTransformer[] }>) {
return Object.values(obj).flatMap(x => x[HandlersProp] ?? []);
}

@@ -20,6 +20,7 @@

if (target) {
target = target.map(x => x.startsWith('@') ? x : `${cls.key}/${x}`);
const ns = cls[TransformerId].split('/')[0]; // Everything before the '/'
target = target.map(x => x.startsWith('@') ? x : `${ns}/${x}`);
}
cls[HANDLERS] = cls[HANDLERS] ?? [];
cls[HANDLERS]!.push({ key: `${cls.key}/${fn.name}`, [phase]: fn.bind(cls), type, target });
cls[HandlersProp] = cls[HandlersProp] ?? [];
cls[HandlersProp]!.push({ key: `${cls[TransformerId]}/${fn.name}`, [phase]: fn.bind(cls), type, target });
}

@@ -32,3 +33,3 @@

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.CallExpression) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.CallExpression) => R>
) => storeHandler(inst, d.value!, 'before', 'call', target);

@@ -42,3 +43,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.FunctionDeclaration) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.FunctionDeclaration | ts.FunctionExpression) => R>
) => storeHandler(inst, d.value!, 'before', 'function', target);

@@ -52,3 +53,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.ParameterDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.ParameterDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'before', 'parameter', target);

@@ -62,3 +63,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.PropertyDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.PropertyDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'before', 'property', target);

@@ -72,3 +73,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.MethodDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.MethodDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'before', 'method', target);

@@ -82,3 +83,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.MethodDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.MethodDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'before', 'static-method', target);

@@ -92,3 +93,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.ClassDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.ClassDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'before', 'class', target);

@@ -102,3 +103,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.CallExpression, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.CallExpression, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'after', 'call', target);

@@ -112,3 +113,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.FunctionDeclaration) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.FunctionDeclaration | ts.FunctionExpression) => R>
) => storeHandler(inst, d.value!, 'after', 'function', target);

@@ -122,3 +123,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.ParameterDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.ParameterDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'after', 'parameter', target);

@@ -132,3 +133,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.PropertyDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.PropertyDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'after', 'property', target);

@@ -142,3 +143,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.MethodDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.MethodDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'after', 'method', target);

@@ -152,3 +153,3 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.MethodDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.MethodDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'after', 'static-method', target);

@@ -162,4 +163,4 @@ }

return <S extends State = State, R extends ts.Node = ts.Node>(
inst: Transformer, __: any, d: TypedPropertyDescriptor<(state: S, node: ts.ClassDeclaration, dm?: DecoratorMeta) => R>
inst: Transformer, __: unknown, d: TypedPropertyDescriptor<(state: S, node: ts.ClassDeclaration, dm?: DecoratorMeta) => R>
) => storeHandler(inst, d.value!, 'after', 'class', target);
}

@@ -206,3 +206,3 @@ /* eslint-disable no-bitwise */

const sourceFile = DeclarationUtil.getDeclarations(type)
?.find(x => ts.getAllJSDocTags(x, (t): t is any => t.tagName.getText() === 'concrete').length)
?.find(x => ts.getAllJSDocTags(x, (t): t is ts.JSDocTag => t.tagName.getText() === 'concrete').length)
?.getSourceFile().fileName as string;

@@ -209,0 +209,0 @@

import * as ts from 'typescript';
import { SystemUtil } from '@travetto/base/src/internal/system';
import { Util } from '@travetto/base';
import { ExternalType, AnyType } from './resolver/types';
import { State, DecoratorMeta, Transformer } from './types/visitor';
import { State, DecoratorMeta, Transformer, TransformerId } from './types/visitor';
import { TypeResolver } from './resolver/service';

@@ -14,2 +16,10 @@ import { ImportManager } from './importer';

function hasOriginal(n: unknown): n is { original: ts.Node } {
return !!n && !(n as { parent?: unknown }).parent && !!(n as { original: unknown }).original;
}
function hasEscapedName(n: unknown): n is { name: { escapedText: string } } {
return !!n && !!(n as { name?: { escapedText?: string } }).name?.escapedText;
}
/**

@@ -19,6 +29,10 @@ * Transformer runtime state

export class TransformerState implements State {
static SYNTHETIC_EXT = 'ᚕsyn';
private resolver: TypeResolver;
private imports: ImportManager;
private syntheticIdentifiers = new Map<string, ts.Identifier>();
private decorators = new Map<string, ts.PropertyAccessExpression>();
added = new Map<number, ts.Statement[]>();
module: string;

@@ -28,2 +42,3 @@ constructor(public source: ts.SourceFile, public factory: ts.NodeFactory, checker: ts.TypeChecker) {

this.resolver = new TypeResolver(checker);
this.module = SystemUtil.convertFileToModule(this.source.fileName);
}

@@ -60,3 +75,3 @@

if (resolved.key !== 'external') {
throw new Error(`Unable to import non-external type: ${node.getText()} ${resolved.key}`);
throw new Error(`Unable to import non-external type: ${node.getText()} ${resolved.key}: ${node.getSourceFile().fileName}`);
}

@@ -125,2 +140,3 @@ return resolved;

file: decl?.getSourceFile().fileName,
module: SystemUtil.convertFileToModule(decl?.getSourceFile().fileName), // All decorators will be absolute
targets: DocUtil.readAugments(this.resolver.getType(ident)),

@@ -158,4 +174,4 @@ name: ident ?

let n = before;
if (n && !n.parent && (n as any).original) {
n = (n as any).original;
if (hasOriginal(n)) {
n = n.original;
}

@@ -198,6 +214,6 @@ while (n && !ts.isSourceFile(n.parent)) {

fromLiteral(val: object): ts.ObjectLiteralExpression;
fromLiteral(val: any[]): ts.ArrayLiteralExpression;
fromLiteral(val: unknown[]): ts.ArrayLiteralExpression;
fromLiteral(val: string | boolean | number): ts.LiteralExpression;
fromLiteral(val: any) {
return LiteralUtil.fromLiteral(this.factory, val);
fromLiteral(val: unknown): ts.Node {
return LiteralUtil.fromLiteral(this.factory, val as object);
}

@@ -226,2 +242,6 @@

/**
* Ceate identifier from node or text
* @param name
*/
createIdentifier(name: string | { getText(): string }) {

@@ -231,3 +251,2 @@ return this.factory.createIdentifier(typeof name === 'string' ? name : name.getText());

/**

@@ -238,9 +257,48 @@ * Find decorator, relative to registered key

* @param name
* @param file
* @param module
*/
findDecorator(cls: Transformer, node: ts.Node, name: string, file?: string) {
const target = `${cls.key}/${name}`;
findDecorator(cls: Transformer, node: ts.Node, name: string, module?: string) {
const target = `${cls[TransformerId]}/${name}`;
return this.getDecoratorList(node)
.find(x => x.targets?.includes(target) && (file ? x.name === name && x.file === file : true))?.dec;
.find(x => x.targets?.includes(target) && (!module || x.name === name && x.module === module))?.dec;
}
/**
* Generate unique identifier for node
* @param node
* @param type
*/
generateUniqueIdentifier(node: ts.Node, type: AnyType) {
let unique: string;
try {
// Tie to source location if possible
const tgt = DeclarationUtil.getPrimaryDeclarationNode(type.original!);
unique = `${ts.getLineAndCharacterOfPosition(tgt.getSourceFile(), tgt.getStart()).line}_${tgt.getEnd() - tgt.getStart()}`;
if (tgt.getSourceFile().fileName !== this.source.fileName) { // if in same file
unique = `${SystemUtil.naiveHash(tgt.getSourceFile().fileName)}_${unique}`;
}
} catch {
// Determine type unique ident
unique = Util.uuid(type.name ? 5 : 10);
}
// Otherwise read name with uuid
let name = type.name && !type.name.startsWith('_') ? type.name : '';
if (!name && hasEscapedName(node)) {
name = `${node.name.escapedText}`;
}
return `${name}_${unique}`;
}
/**
* Register synthetic idetnifier
*/
createSyntheticIdentifier(id: string) {
id = `${id}${TransformerState.SYNTHETIC_EXT}`;
let exists = true;
if (!this.syntheticIdentifiers.has(id)) {
this.syntheticIdentifiers.set(id, this.factory.createIdentifier(id));
exists = false;
}
return [this.syntheticIdentifiers.get(id), exists] as [id: ts.Identifier, exists: boolean];
}
}

@@ -9,2 +9,3 @@ import * as ts from 'typescript';

ident: ts.Identifier;
module?: string;
file?: string;

@@ -17,2 +18,3 @@ targets?: string[];

source: ts.SourceFile;
module: string;
added: Map<number, ts.Statement[]>;

@@ -27,4 +29,6 @@ getDecoratorList(node: ts.Node): DecoratorMeta[];

export const TransformerId = Symbol.for('@trv:transformer/id');
export type Transformer = {
key: string;
[TransformerId]: string;
name: string;

@@ -31,0 +35,0 @@ };

@@ -20,3 +20,3 @@ import * as ts from 'typescript';

if (o) {
const start = ts.getLineAndCharacterOfPosition(source, o.getStart());
const start = ts.getLineAndCharacterOfPosition(source, o.getStart(source));
const end = ts.getLineAndCharacterOfPosition(source, o.getEnd());

@@ -33,5 +33,5 @@ return {

*/
static getPrimaryArgument<T extends ts.Expression = ts.Expression>(node: ts.CallExpression | undefined): T | undefined {
if (node && node!.arguments && node!.arguments.length) {
return node.arguments[0] as T;
static getArgument<T extends ts.Expression = ts.Expression>(node: ts.CallExpression | undefined, position = 0): T | undefined {
if (node && node!.arguments && node!.arguments.length >= position + 1) {
return node.arguments[position] as T;
}

@@ -38,0 +38,0 @@ return;

@@ -56,3 +56,2 @@ import * as ts from 'typescript';

/**

@@ -59,0 +58,0 @@ * Resolve the `ts.ObjectFlags`

@@ -42,4 +42,4 @@ import * as ts from 'typescript';

static getPrimaryArgument<T extends ts.Expression = ts.Expression>(node: ts.Decorator | undefined): T | undefined {
return CoreUtil.getPrimaryArgument(node && ts.isCallExpression(node.expression) ? node.expression : undefined);
return CoreUtil.getArgument(node && ts.isCallExpression(node.expression) ? node.expression : undefined);
}
}

@@ -5,3 +5,2 @@ import * as ts from 'typescript';

import { FsUtil } from '@travetto/boot';
import { FrameworkUtil } from '@travetto/boot/src/framework';

@@ -37,4 +36,3 @@ import { Import } from '../types/shared';

if (ts.isImportDeclaration(stmt) && ts.isStringLiteral(stmt.moduleSpecifier)) {
let path = this.optionalResolve(stmt.moduleSpecifier.text, base);
path = FrameworkUtil.resolvePath(path);
const path = this.optionalResolve(stmt.moduleSpecifier.text, base);

@@ -41,0 +39,0 @@ if (stmt.importClause) {

@@ -25,7 +25,7 @@ import * as ts from 'typescript';

static fromLiteral(factory: ts.NodeFactory, val: object): ts.ObjectLiteralExpression;
static fromLiteral(factory: ts.NodeFactory, val: any[]): ts.ArrayLiteralExpression;
static fromLiteral(factory: ts.NodeFactory, val: unknown[]): ts.ArrayLiteralExpression;
static fromLiteral(factory: ts.NodeFactory, val: string | boolean | number): ts.LiteralExpression;
static fromLiteral(factory: ts.NodeFactory, val: any) {
if (val && val.kind) { // If already a node
return val;
static fromLiteral(factory: ts.NodeFactory, val: unknown): ts.Node {
if (val && (val as ts.Expression).kind) { // If already a node
return val as ts.Node;
} else if (Array.isArray(val)) {

@@ -44,9 +44,10 @@ val = factory.createArrayLiteralExpression(val.map(v => this.fromLiteral(factory, v)));

} else if (val === String || val === Number || val === Boolean || val === Date || val === RegExp) {
val = factory.createIdentifier(val.name);
val = factory.createIdentifier((val as Function).name);
} else {
const ov = val as object;
const pairs: ts.PropertyAssignment[] = [];
for (const k of Object.keys(val)) {
if (val[k] !== undefined) {
for (const k of Object.keys(ov) as (keyof typeof ov)[]) {
if (ov[k] !== undefined) {
pairs.push(
factory.createPropertyAssignment(k, this.fromLiteral(factory, val[k]))
factory.createPropertyAssignment(k, this.fromLiteral(factory, ov[k]))
);

@@ -57,3 +58,3 @@ }

}
return val;
return val as ts.Expression;
}

@@ -64,3 +65,3 @@

*/
static toLiteral(val: ts.Node, strict = true): any {
static toLiteral(val: ts.Node, strict = true): unknown {
if (!val) {

@@ -79,5 +80,5 @@ throw new Error('Val is not defined');

} else if (ts.isStringLiteral(val)) {
return val.getText().substring(1, val.getText().length - 1);
return val.text;
} else if (ts.isNumericLiteral(val)) {
const txt = val.getText();
const txt = val.text;
if (txt.includes('.')) {

@@ -93,3 +94,3 @@ return parseFloat(txt);

} else if (ts.isObjectLiteralExpression(val)) {
const out: Record<string, any> = {};
const out: Record<string, unknown> = {};
for (const pair of val.properties) {

@@ -121,3 +122,2 @@ if (ts.isPropertyAssignment(pair)) {

/**

@@ -124,0 +124,0 @@ * Get a value from the an object expression

@@ -17,3 +17,3 @@ import { Util } from '@travetto/base';

*/
static collapseNodes(all: any[]) {
static collapseNodes(all: unknown[]) {
return all.map(x => this.collapseNode(x));

@@ -25,3 +25,3 @@ }

*/
static collapseNode(x: any, cache: Set<string> = new Set()): any {
static collapseNode(x: unknown, cache: Set<unknown> = new Set()): unknown {
if (!x || Util.isPrimitive(x)) {

@@ -40,9 +40,10 @@ return x;

} else {
const out: Record<string, any> = {};
for (const key of Object.keys(x)) {
if (Util.isFunction(x[key]) || exclude.has(key) || x[key] === undefined) {
const ox = x as object;
const out: Record<string, unknown> = {};
for (const key of Object.keys(ox) as (keyof typeof x)[]) {
if (Util.isFunction(ox[key]) || exclude.has(key) || ox[key] === undefined) {
continue;
}
try {
out[key] = this.collapseNode(x[key], cache);
out[key] = this.collapseNode(ox[key], cache);
} catch (err) {

@@ -49,0 +50,0 @@ return undefined;

import * as ts from 'typescript';
import * as fs from 'fs';
import { ConsoleManager } from '@travetto/base/src/console';
import { AppCache } from '@travetto/boot';

@@ -29,3 +31,3 @@ import { DecoratorMeta, TransformerType, NodeTransformer, TransformerSet, State, TransformPhase } from './types/visitor';

return 'parameter';
} else if (ts.isFunctionDeclaration(node)) {
} else if (ts.isFunctionDeclaration(node) || (ts.isFunctionExpression(node) && !ts.isArrowFunction(node))) {
return 'function';

@@ -39,4 +41,4 @@ }

private getState: (context: ts.TransformationContext, src: ts.SourceFile) => S,
transformers: NodeTransformer<S, any, any>[],
private logTarget = '!compiler.log'
transformers: NodeTransformer<S, TransformerType, ts.Node>[],
private logTarget = 'compiler.log'
) {

@@ -49,3 +51,3 @@ this.init(transformers);

*/
private init(transformers: NodeTransformer<S, any, any>[]) {
private init(transformers: NodeTransformer<S, TransformerType, ts.Node>[]) {
for (const trn of transformers) {

@@ -80,4 +82,12 @@ if (!this.transformers.has(trn.type)) {

try {
ConsoleManager.setFile(this.logTarget, { processArgs: (__, args) => LogUtil.collapseNodes(args) }); // Suppress logging into an output file
console.debug(process.pid, 'Processing', file.fileName);
const c = new console.Console({
stdout: fs.createWriteStream(AppCache.toEntryName(this.logTarget), { flags: 'a' }),
inspectOptions: { depth: 4 },
});
ConsoleManager.set({
onLog: (level, ctx, args) => c[level](level, ctx, ...LogUtil.collapseNodes(args))
});
console.debug('Processing', { file: file.fileName, pid: process.pid });
const state = this.getState(context, file);

@@ -106,3 +116,3 @@ let ret = this.visit(state, context, file);

} catch (e) {
console.error(e.stack);
console.error('Failed transforming', { error: e });
throw e;

@@ -109,0 +119,0 @@ } finally {

import { TranspileUtil } from '@travetto/boot';
declare const global: { ts: any }; // Used for transformers
declare const global: { ts: unknown }; // Used for transformers

@@ -5,0 +5,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