@travetto/transformer 3.1.0-rc.4 → 3.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@travetto/transformer",
3
- "version": "3.1.0-rc.4",
3
+ "version": "3.1.0",
4
4
  "description": "Functionality for AST transformations, with transformer registration, and general utils",
5
5
  "keywords": [
6
6
  "typescript",
@@ -24,7 +24,7 @@
24
24
  "directory": "module/transformer"
25
25
  },
26
26
  "dependencies": {
27
- "@travetto/manifest": "^3.1.0-rc.3",
27
+ "@travetto/manifest": "^3.1.0",
28
28
  "tslib": "^2.5.0",
29
29
  "typescript": "^5.0.2"
30
30
  },
@@ -53,13 +53,14 @@ export function TypeCategorize(resolver: TransformResolver, type: ts.Type): { ca
53
53
  } else if (objectFlags & ts.ObjectFlags.Reference && !CoreUtil.getSymbol(type)) { // Tuple type?
54
54
  return { category: 'tuple', type };
55
55
  } else if (objectFlags & ts.ObjectFlags.Anonymous) {
56
- const source = DeclarationUtil.getPrimaryDeclarationNode(type).getSourceFile();
57
- const sourceFile = source.fileName;
58
- if (sourceFile?.endsWith('.d.ts') && !resolver.isKnownFile(sourceFile)) {
59
- return { category: 'foreign', type };
60
- } else {
61
- return { category: 'shape', type };
62
- }
56
+ try {
57
+ const source = DeclarationUtil.getPrimaryDeclarationNode(type).getSourceFile();
58
+ const sourceFile = source.fileName;
59
+ if (sourceFile?.endsWith('.d.ts') && !resolver.isKnownFile(sourceFile)) {
60
+ return { category: 'foreign', type };
61
+ }
62
+ } catch { }
63
+ return { category: 'shape', type };
63
64
  } else if (objectFlags & (ts.ObjectFlags.Reference | ts.ObjectFlags.Class | ts.ObjectFlags.Interface)) {
64
65
  let resolvedType = type;
65
66
  if (CoreUtil.hasTarget(resolvedType)) {
package/src/state.ts CHANGED
@@ -2,7 +2,7 @@ import ts from 'typescript';
2
2
 
3
3
  import { ManifestIndex, path } from '@travetto/manifest';
4
4
 
5
- import { ManagedType, AnyType } from './resolver/types';
5
+ import { ManagedType, AnyType, ForeignType } from './resolver/types';
6
6
  import { State, DecoratorMeta, Transformer, ModuleNameⲐ } from './types/visitor';
7
7
  import { SimpleResolver } from './resolver/service';
8
8
  import { ImportManager } from './importer';
@@ -356,4 +356,13 @@ export class TransformerState implements State {
356
356
  getFileImportName(file: string): string {
357
357
  return this.#resolver.getFileImportName(file);
358
358
  }
359
+
360
+ /**
361
+ * Get foreign target
362
+ */
363
+ getForeignTarget(state: TransformerState, ret: ForeignType): ts.Expression {
364
+ return state.fromLiteral({
365
+ Ⲑid: `${ret.source.split('node_modules/')[1]}+${ret.name}`
366
+ });
367
+ }
359
368
  }