@clayroach/effect-unplugin 4.0.0-source-tracing.6 → 4.0.0-source-tracing.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"sourceTrace.d.ts","sourceRoot":"","sources":["../src/sourceTrace.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAwB,kBAAkB,EAA8B,MAAM,YAAY,CAAA;AA4CtG;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAuND;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,kBAAuB,GAC/B,eAAe,CAyKjB"}
1
+ {"version":3,"file":"sourceTrace.d.ts","sourceRoot":"","sources":["../src/sourceTrace.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAwB,kBAAkB,EAA8B,MAAM,YAAY,CAAA;AAmDtG;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAsOD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,kBAAuB,GAC/B,eAAe,CAgLjB"}
@@ -79,19 +79,19 @@ function getAssignedVariableName(path) {
79
79
  return null;
80
80
  }
81
81
  /**
82
- * Creates a span name from variable name or location.
82
+ * Creates a span name from variable name, combinator, or location.
83
83
  */
84
- function createSpanName(variableName, fileName, line) {
85
- if (variableName) {
86
- return `${variableName} (${fileName}:${line})`;
87
- }
88
- return `${fileName}:${line}`;
84
+ function createSpanName(variableName, combinatorName, fileName, line) {
85
+ const identifier = variableName ?? `effect.${combinatorName}`;
86
+ return `${identifier} (${fileName}:${line})`;
89
87
  }
90
88
  /**
91
- * Wraps an expression with Effect.withSpan().
89
+ * Wraps an expression with Effect.withSpan() and attributes.
92
90
  */
93
- function wrapWithSpan(expr, spanName, effectImportName) {
94
- return t.callExpression(t.memberExpression(t.identifier(effectImportName), t.identifier("withSpan")), [expr, t.stringLiteral(spanName)]);
91
+ function wrapWithSpan(expr, spanName, effectImportName, attrs) {
92
+ const attributesObject = t.objectExpression([t.objectProperty(t.stringLiteral("code.filepath"), t.stringLiteral(attrs.filepath)), t.objectProperty(t.stringLiteral("code.lineno"), t.numericLiteral(attrs.line)), t.objectProperty(t.stringLiteral("code.column"), t.numericLiteral(attrs.column)), t.objectProperty(t.stringLiteral("code.function"), t.stringLiteral(attrs.functionName))]);
93
+ const optionsObject = t.objectExpression([t.objectProperty(t.identifier("attributes"), attributesObject)]);
94
+ return t.callExpression(t.memberExpression(t.identifier(effectImportName), t.identifier("withSpan")), [expr, t.stringLiteral(spanName), optionsObject]);
95
95
  }
96
96
  /**
97
97
  * Finds or creates the Effect namespace import name.
@@ -205,8 +205,15 @@ export function transform(code, id, options = {}) {
205
205
  const loc = path.node.loc;
206
206
  if (!loc) return;
207
207
  const variableName = getAssignedVariableName(path);
208
- const spanName = createSpanName(variableName, fileName, loc.start.line);
209
- const wrapped = wrapWithSpan(path.node, spanName, effectName);
208
+ const functionName = variableName ?? `effect.${methodName}`;
209
+ const spanName = createSpanName(variableName, methodName, fileName, loc.start.line);
210
+ const attrs = {
211
+ filepath: id,
212
+ line: loc.start.line,
213
+ column: loc.start.column,
214
+ functionName
215
+ };
216
+ const wrapped = wrapWithSpan(path.node, spanName, effectName, attrs);
210
217
  wrappedNodes.add(path.node);
211
218
  path.replaceWith(wrapped);
212
219
  hasTransformed = true;
@@ -1 +1 @@
1
- {"version":3,"file":"sourceTrace.js","names":["parse","_traverse","_generate","t","traverseModule","traverse","default","generateModule","generate","ALL_INSTRUMENTABLE","resolveInstrumentable","options","include","exclude","Set","filter","name","has","isEffectGenCall","node","effectImportName","genImportName","callee","isMemberExpression","isIdentifier","object","property","extractFunctionName","isCallExpression","createStackFrameDeclaration","info","variableDeclaration","variableDeclarator","identifier","varName","objectExpression","objectProperty","stringLiteral","arrowFunctionExpression","location","wrapWithUpdateService","argument","frameVarName","referencesImportName","callExpression","memberExpression","spreadElement","getAssignedVariableName","path","parent","isVariableDeclarator","id","createSpanName","variableName","fileName","line","wrapWithSpan","expr","spanName","findOrGetEffectImport","ast","effectName","genName","program","body","isImportDeclaration","source","value","specifier","specifiers","isImportNamespaceSpecifier","local","isImportSpecifier","imported","ensureReferencesImport","push","importSpecifier","importDecl","importDeclaration","unshift","getFileName","filePath","parts","split","length","transform","code","enableSourceTrace","sourceTrace","extractFnName","spanOptions","spans","enableSpans","enabled","sourceType","plugins","sourceFilename","transformed","hasTransformed","instrumentable","wrappedNodes","WeakSet","CallExpression","methodName","loc","start","wrapped","add","replaceWith","framesByLocation","Map","frameCounter","generatorArg","arguments","isFunctionExpression","generator","nestedPath","skip","YieldExpression","yieldPath","delegate","column","set","size","referencesName","frame","get","frameDeclarations","Array","from","values","map","insertIndex","i","splice","result","sourceMaps","sourceFileName"],"sources":["../src/sourceTrace.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,SAASA,KAAK,QAAQ,eAAe;AACrC,OAAO,KAAKC,SAAS,MAAM,iBAAiB;AAC5C,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,CAAC,MAAM,cAAc;AAWjC;AACA;AACA,MAAMC,cAAc,GAAGH,SAAgB;AACvC,MAAMI,QAAQ,GACZ,OAAOD,cAAc,KAAK,UAAU,GAAGA,cAAc,GACnD,OAAOA,cAAc,CAACE,OAAO,KAAK,UAAU,GAAGF,cAAc,CAACE,OAAO,GACnEF,cAAc,CAACE,OAAO,EAAEA,OAAO,IAAIF,cAAc;AAEvD;AACA,MAAMG,cAAc,GAAGL,SAAgB;AACvC,MAAMM,QAAQ,GACZ,OAAOD,cAAc,KAAK,UAAU,GAAGA,cAAc,GACnD,OAAOA,cAAc,CAACD,OAAO,KAAK,UAAU,GAAGC,cAAc,CAACD,OAAO,GACnEC,cAAc,CAACD,OAAO,EAAEA,OAAO,IAAIC,cAAc;AAQvD,MAAME,kBAAkB,GAAwC,CAC9D,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CACnG;AAED;;;AAGA,SAASC,qBAAqBA,CAACC,OAAmC;EAChE,MAAMC,OAAO,GAAGD,OAAO,CAACC,OAAO,IAAIH,kBAAkB;EACrD,MAAMI,OAAO,GAAG,IAAIC,GAAG,CAACH,OAAO,CAACE,OAAO,IAAI,EAAE,CAAC;EAC9C,OAAO,IAAIC,GAAG,CAACF,OAAO,CAACG,MAAM,CAAEC,IAAI,IAAK,CAACH,OAAO,CAACI,GAAG,CAACD,IAAI,CAAC,CAAC,CAAC;AAC9D;AAYA;;;AAGA,SAASE,eAAeA,CACtBC,IAAsB,EACtBC,gBAA+B,EAC/BC,aAA4B;EAE5B,MAAMC,MAAM,GAAGH,IAAI,CAACG,MAAM;EAE1B;EACA,IACEnB,CAAC,CAACoB,kBAAkB,CAACD,MAAM,CAAC,IAC5BnB,CAAC,CAACqB,YAAY,CAACF,MAAM,CAACG,MAAM,CAAC,IAC7BH,MAAM,CAACG,MAAM,CAACT,IAAI,KAAKI,gBAAgB,IACvCjB,CAAC,CAACqB,YAAY,CAACF,MAAM,CAACI,QAAQ,CAAC,IAC/BJ,MAAM,CAACI,QAAQ,CAACV,IAAI,KAAK,KAAK,EAC9B;IACA,OAAO,IAAI;EACb;EAEA;EACA,IAAIb,CAAC,CAACqB,YAAY,CAACF,MAAM,CAAC,IAAIA,MAAM,CAACN,IAAI,KAAKK,aAAa,EAAE;IAC3D,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd;AAEA;;;AAGA,SAASM,mBAAmBA,CAACR,IAAkB;EAC7C;EACA,IAAIhB,CAAC,CAACyB,gBAAgB,CAACT,IAAI,CAAC,IAAIhB,CAAC,CAACqB,YAAY,CAACL,IAAI,CAACG,MAAM,CAAC,EAAE;IAC3D,OAAOH,IAAI,CAACG,MAAM,CAACN,IAAI;EACzB;EAEA;EACA,IACEb,CAAC,CAACyB,gBAAgB,CAACT,IAAI,CAAC,IACxBhB,CAAC,CAACoB,kBAAkB,CAACJ,IAAI,CAACG,MAAM,CAAC,IACjCnB,CAAC,CAACqB,YAAY,CAACL,IAAI,CAACG,MAAM,CAACI,QAAQ,CAAC,EACpC;IACA,OAAOP,IAAI,CAACG,MAAM,CAACI,QAAQ,CAACV,IAAI;EAClC;EAEA;EACA,IACEb,CAAC,CAACyB,gBAAgB,CAACT,IAAI,CAAC,IACxBhB,CAAC,CAACoB,kBAAkB,CAACJ,IAAI,CAACG,MAAM,CAAC,IACjCnB,CAAC,CAACqB,YAAY,CAACL,IAAI,CAACG,MAAM,CAACG,MAAM,CAAC,IAClCtB,CAAC,CAACqB,YAAY,CAACL,IAAI,CAACG,MAAM,CAACI,QAAQ,CAAC,EACpC;IACA,OAAO,GAAGP,IAAI,CAACG,MAAM,CAACG,MAAM,CAACT,IAAI,IAAIG,IAAI,CAACG,MAAM,CAACI,QAAQ,CAACV,IAAI,EAAE;EAClE;EAEA,OAAO,SAAS;AAClB;AAEA;;;AAGA,SAASa,2BAA2BA,CAACC,IAAoB;EACvD,OAAO3B,CAAC,CAAC4B,mBAAmB,CAAC,OAAO,EAAE,CACpC5B,CAAC,CAAC6B,kBAAkB,CAClB7B,CAAC,CAAC8B,UAAU,CAACH,IAAI,CAACI,OAAO,CAAC,EAC1B/B,CAAC,CAACgC,gBAAgB,CAAC,CACjBhC,CAAC,CAACiC,cAAc,CAACjC,CAAC,CAAC8B,UAAU,CAAC,MAAM,CAAC,EAAE9B,CAAC,CAACkC,aAAa,CAACP,IAAI,CAACd,IAAI,CAAC,CAAC,EAClEb,CAAC,CAACiC,cAAc,CACdjC,CAAC,CAAC8B,UAAU,CAAC,OAAO,CAAC,EACrB9B,CAAC,CAACmC,uBAAuB,CAAC,EAAE,EAAEnC,CAAC,CAACkC,aAAa,CAACP,IAAI,CAACS,QAAQ,CAAC,CAAC,CAC9D,EACDpC,CAAC,CAACiC,cAAc,CAACjC,CAAC,CAAC8B,UAAU,CAAC,QAAQ,CAAC,EAAE9B,CAAC,CAAC8B,UAAU,CAAC,WAAW,CAAC,CAAC,CACpE,CAAC,CACH,CACF,CAAC;AACJ;AAEA;;;AAGA,SAASO,qBAAqBA,CAC5BC,QAAsB,EACtBC,YAAoB,EACpBtB,gBAAwB,EACxBuB,oBAA4B;EAE5B,OAAOxC,CAAC,CAACyC,cAAc,CACrBzC,CAAC,CAAC0C,gBAAgB,CAAC1C,CAAC,CAAC8B,UAAU,CAACb,gBAAgB,CAAC,EAAEjB,CAAC,CAAC8B,UAAU,CAAC,eAAe,CAAC,CAAC,EACjF,CACEQ,QAAQ,EACRtC,CAAC,CAAC0C,gBAAgB,CAAC1C,CAAC,CAAC8B,UAAU,CAACU,oBAAoB,CAAC,EAAExC,CAAC,CAAC8B,UAAU,CAAC,mBAAmB,CAAC,CAAC,EACzF9B,CAAC,CAACmC,uBAAuB,CACvB,CAACnC,CAAC,CAAC8B,UAAU,CAAC,QAAQ,CAAC,CAAC,EACxB9B,CAAC,CAACgC,gBAAgB,CAAC,CACjBhC,CAAC,CAAC2C,aAAa,CAAC3C,CAAC,CAAC8B,UAAU,CAACS,YAAY,CAAC,CAAC,EAC3CvC,CAAC,CAACiC,cAAc,CAACjC,CAAC,CAAC8B,UAAU,CAAC,QAAQ,CAAC,EAAE9B,CAAC,CAAC8B,UAAU,CAAC,QAAQ,CAAC,CAAC,CACjE,CAAC,CACH,CACF,CACF;AACH;AAEA;;;AAGA,SAASc,uBAAuBA,CAACC,IAAgC;EAC/D,MAAMC,MAAM,GAAGD,IAAI,CAACC,MAAM;EAC1B,IAAI9C,CAAC,CAAC+C,oBAAoB,CAACD,MAAM,CAAC,IAAI9C,CAAC,CAACqB,YAAY,CAACyB,MAAM,CAACE,EAAE,CAAC,EAAE;IAC/D,OAAOF,MAAM,CAACE,EAAE,CAACnC,IAAI;EACvB;EACA,OAAO,IAAI;AACb;AAEA;;;AAGA,SAASoC,cAAcA,CAACC,YAA2B,EAAEC,QAAgB,EAAEC,IAAY;EACjF,IAAIF,YAAY,EAAE;IAChB,OAAO,GAAGA,YAAY,KAAKC,QAAQ,IAAIC,IAAI,GAAG;EAChD;EACA,OAAO,GAAGD,QAAQ,IAAIC,IAAI,EAAE;AAC9B;AAEA;;;AAGA,SAASC,YAAYA,CACnBC,IAAkB,EAClBC,QAAgB,EAChBtC,gBAAwB;EAExB,OAAOjB,CAAC,CAACyC,cAAc,CACrBzC,CAAC,CAAC0C,gBAAgB,CAAC1C,CAAC,CAAC8B,UAAU,CAACb,gBAAgB,CAAC,EAAEjB,CAAC,CAAC8B,UAAU,CAAC,UAAU,CAAC,CAAC,EAC5E,CAACwB,IAAI,EAAEtD,CAAC,CAACkC,aAAa,CAACqB,QAAQ,CAAC,CAAC,CAClC;AACH;AAEA;;;AAGA,SAASC,qBAAqBA,CAACC,GAAW;EACxC,IAAIC,UAAU,GAAkB,IAAI;EACpC,IAAIC,OAAO,GAAkB,IAAI;EAEjC,KAAK,MAAM3C,IAAI,IAAIyC,GAAG,CAACG,OAAO,CAACC,IAAI,EAAE;IACnC,IAAI,CAAC7D,CAAC,CAAC8D,mBAAmB,CAAC9C,IAAI,CAAC,EAAE;IAClC,IAAIA,IAAI,CAAC+C,MAAM,CAACC,KAAK,KAAK,QAAQ,EAAE;IAEpC,KAAK,MAAMC,SAAS,IAAIjD,IAAI,CAACkD,UAAU,EAAE;MACvC;MACA,IAAIlE,CAAC,CAACmE,0BAA0B,CAACF,SAAS,CAAC,EAAE;QAC3CP,UAAU,GAAGO,SAAS,CAACG,KAAK,CAACvD,IAAI;MACnC,CAAC,MAAM,IAAIb,CAAC,CAACqE,iBAAiB,CAACJ,SAAS,CAAC,EAAE;QACzC,MAAMK,QAAQ,GAAGtE,CAAC,CAACqB,YAAY,CAAC4C,SAAS,CAACK,QAAQ,CAAC,GAC/CL,SAAS,CAACK,QAAQ,CAACzD,IAAI,GACvBoD,SAAS,CAACK,QAAQ,CAACN,KAAK;QAC5B,IAAIM,QAAQ,KAAK,QAAQ,EAAE;UACzBZ,UAAU,GAAGO,SAAS,CAACG,KAAK,CAACvD,IAAI;QACnC,CAAC,MAAM,IAAIyD,QAAQ,KAAK,KAAK,EAAE;UAC7BX,OAAO,GAAGM,SAAS,CAACG,KAAK,CAACvD,IAAI;QAChC;MACF;IACF;EACF;EAEA,OAAO;IAAE6C,UAAU,EAAEA,UAAU,IAAI,QAAQ;IAAEC;EAAO,CAAE;AACxD;AAEA;;;AAGA,SAASY,sBAAsBA,CAACd,GAAW;EACzC,KAAK,MAAMzC,IAAI,IAAIyC,GAAG,CAACG,OAAO,CAACC,IAAI,EAAE;IACnC,IAAI,CAAC7D,CAAC,CAAC8D,mBAAmB,CAAC9C,IAAI,CAAC,EAAE;IAClC,IAAIA,IAAI,CAAC+C,MAAM,CAACC,KAAK,KAAK,QAAQ,EAAE;IAEpC,KAAK,MAAMC,SAAS,IAAIjD,IAAI,CAACkD,UAAU,EAAE;MACvC,IAAIlE,CAAC,CAACqE,iBAAiB,CAACJ,SAAS,CAAC,EAAE;QAClC,MAAMK,QAAQ,GAAGtE,CAAC,CAACqB,YAAY,CAAC4C,SAAS,CAACK,QAAQ,CAAC,GAC/CL,SAAS,CAACK,QAAQ,CAACzD,IAAI,GACvBoD,SAAS,CAACK,QAAQ,CAACN,KAAK;QAC5B,IAAIM,QAAQ,KAAK,YAAY,EAAE;UAC7B,OAAOL,SAAS,CAACG,KAAK,CAACvD,IAAI;QAC7B;MACF;IACF;IAEA;IACAG,IAAI,CAACkD,UAAU,CAACM,IAAI,CAClBxE,CAAC,CAACyE,eAAe,CAACzE,CAAC,CAAC8B,UAAU,CAAC,YAAY,CAAC,EAAE9B,CAAC,CAAC8B,UAAU,CAAC,YAAY,CAAC,CAAC,CAC1E;IACD,OAAO,YAAY;EACrB;EAEA;EACA,MAAM4C,UAAU,GAAG1E,CAAC,CAAC2E,iBAAiB,CACpC,CAAC3E,CAAC,CAACyE,eAAe,CAACzE,CAAC,CAAC8B,UAAU,CAAC,YAAY,CAAC,EAAE9B,CAAC,CAAC8B,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAC3E9B,CAAC,CAACkC,aAAa,CAAC,QAAQ,CAAC,CAC1B;EACDuB,GAAG,CAACG,OAAO,CAACC,IAAI,CAACe,OAAO,CAACF,UAAU,CAAC;EACpC,OAAO,YAAY;AACrB;AAEA;;;AAGA,SAASG,WAAWA,CAACC,QAAgB;EACnC,MAAMC,KAAK,GAAGD,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC;EACjC,OAAOD,KAAK,CAACA,KAAK,CAACE,MAAM,GAAG,CAAC,CAAC,IAAIH,QAAQ;AAC5C;AAEA;;;;;;AAMA,OAAM,SAAUI,SAASA,CACvBC,IAAY,EACZnC,EAAU,EACVxC,OAAA,GAA8B,EAAE;EAEhC,MAAM4E,iBAAiB,GAAG5E,OAAO,CAAC6E,WAAW,KAAK,KAAK;EACvD,MAAMC,aAAa,GAAG9E,OAAO,CAACgB,mBAAmB,KAAK,KAAK;EAC3D,MAAM+D,WAAW,GAAG/E,OAAO,CAACgF,KAAK;EACjC,MAAMC,WAAW,GAAGF,WAAW,EAAEG,OAAO,KAAK,IAAI;EAEjD,IAAIjC,GAAW;EACf,IAAI;IACFA,GAAG,GAAG5D,KAAK,CAACsF,IAAI,EAAE;MAChBQ,UAAU,EAAE,QAAQ;MACpBC,OAAO,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC;MAC9BC,cAAc,EAAE7C;KACjB,CAAC;EACJ,CAAC,CAAC,MAAM;IACN,OAAO;MAAEmC,IAAI;MAAEW,WAAW,EAAE;IAAK,CAAE;EACrC;EAEA,MAAM;IAAEpC,UAAU;IAAEC;EAAO,CAAE,GAAGH,qBAAqB,CAACC,GAAG,CAAC;EAE1D;EACA,IAAI,CAACC,UAAU,IAAI,CAACC,OAAO,EAAE;IAC3B,OAAO;MAAEwB,IAAI;MAAEW,WAAW,EAAE;IAAK,CAAE;EACrC;EAEA,IAAIC,cAAc,GAAG,KAAK;EAC1B,MAAM5C,QAAQ,GAAG0B,WAAW,CAAC7B,EAAE,CAAC;EAEhC;EACA,IAAIyC,WAAW,IAAI/B,UAAU,EAAE;IAC7B,MAAMsC,cAAc,GAAGzF,qBAAqB,CAACgF,WAAY,CAAC;IAC1D,MAAMU,YAAY,GAAG,IAAIC,OAAO,EAAoB;IAEpDhG,QAAQ,CAACuD,GAAG,EAAE;MACZ0C,cAAcA,CAACtD,IAAgC;QAC7C,IAAIoD,YAAY,CAACnF,GAAG,CAAC+B,IAAI,CAAC7B,IAAI,CAAC,EAAE;QAEjC,MAAMG,MAAM,GAAG0B,IAAI,CAAC7B,IAAI,CAACG,MAAM;QAC/B,IAAI,CAACnB,CAAC,CAACoB,kBAAkB,CAACD,MAAM,CAAC,EAAE;QACnC,IAAI,CAACnB,CAAC,CAACqB,YAAY,CAACF,MAAM,CAACG,MAAM,CAAC,IAAIH,MAAM,CAACG,MAAM,CAACT,IAAI,KAAK6C,UAAU,EAAE;QACzE,IAAI,CAAC1D,CAAC,CAACqB,YAAY,CAACF,MAAM,CAACI,QAAQ,CAAC,EAAE;QAEtC,MAAM6E,UAAU,GAAGjF,MAAM,CAACI,QAAQ,CAACV,IAAI;QACvC,IAAI,CAACmF,cAAc,CAAClF,GAAG,CAACsF,UAAU,CAAC,EAAE;QAErC,MAAMC,GAAG,GAAGxD,IAAI,CAAC7B,IAAI,CAACqF,GAAG;QACzB,IAAI,CAACA,GAAG,EAAE;QAEV,MAAMnD,YAAY,GAAGN,uBAAuB,CAACC,IAAI,CAAC;QAClD,MAAMU,QAAQ,GAAGN,cAAc,CAACC,YAAY,EAAEC,QAAQ,EAAEkD,GAAG,CAACC,KAAK,CAAClD,IAAI,CAAC;QAEvE,MAAMmD,OAAO,GAAGlD,YAAY,CAACR,IAAI,CAAC7B,IAAI,EAAEuC,QAAQ,EAAEG,UAAU,CAAC;QAC7DuC,YAAY,CAACO,GAAG,CAAC3D,IAAI,CAAC7B,IAAI,CAAC;QAC3B6B,IAAI,CAAC4D,WAAW,CAACF,OAAO,CAAC;QACzBR,cAAc,GAAG,IAAI;MACvB;KACD,CAAC;EACJ;EAEA;EACA,IAAIX,iBAAiB,EAAE;IACrB,MAAMsB,gBAAgB,GAAG,IAAIC,GAAG,EAA0B;IAC1D,IAAIC,YAAY,GAAG,CAAC;IAEpB;IACA1G,QAAQ,CAACuD,GAAG,EAAE;MACZ0C,cAAcA,CAACtD,IAAgC;QAC7C,IAAI,CAAC9B,eAAe,CAAC8B,IAAI,CAAC7B,IAAI,EAAE0C,UAAU,EAAEC,OAAO,CAAC,EAAE;QAEtD,MAAMkD,YAAY,GAAGhE,IAAI,CAAC7B,IAAI,CAAC8F,SAAS,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC9G,CAAC,CAAC+G,oBAAoB,CAACF,YAAY,CAAC,IAAI,CAACA,YAAY,CAACG,SAAS,EAAE;QAEtEnE,IAAI,CAAC3C,QAAQ,CAAC;UACZ;UACAiG,cAAcA,CAACc,UAAsC;YACnD,IAAIlG,eAAe,CAACkG,UAAU,CAACjG,IAAI,EAAE0C,UAAU,EAAEC,OAAO,CAAC,EAAE;cACzDsD,UAAU,CAACC,IAAI,EAAE;YACnB;UACF,CAAC;UACDC,eAAeA,CAACC,SAAsC;YACpD;YACA,IAAI,CAACA,SAAS,CAACpG,IAAI,CAACqG,QAAQ,IAAI,CAACD,SAAS,CAACpG,IAAI,CAACsB,QAAQ,EAAE;YAE1D,MAAM+D,GAAG,GAAGe,SAAS,CAACpG,IAAI,CAACqF,GAAG;YAC9B,IAAI,CAACA,GAAG,EAAE;YAEV,MAAMjE,QAAQ,GAAG,GAAGY,EAAE,IAAIqD,GAAG,CAACC,KAAK,CAAClD,IAAI,IAAIiD,GAAG,CAACC,KAAK,CAACgB,MAAM,EAAE;YAE9D,IAAI,CAACZ,gBAAgB,CAAC5F,GAAG,CAACsB,QAAQ,CAAC,EAAE;cACnC,MAAMvB,IAAI,GAAGyE,aAAa,GACtB9D,mBAAmB,CAAC4F,SAAS,CAACpG,IAAI,CAACsB,QAAQ,CAAC,GAC5C,QAAQ;cACZ,MAAMP,OAAO,GAAG,MAAM6E,YAAY,EAAE,EAAE;cACtC,MAAMjF,IAAI,GAAmB;gBAAEd,IAAI;gBAAEuB,QAAQ;gBAAEL;cAAO,CAAE;cACxD2E,gBAAgB,CAACa,GAAG,CAACnF,QAAQ,EAAET,IAAI,CAAC;YACtC;UACF;SACD,CAAC;MACJ;KACD,CAAC;IAEF,IAAI+E,gBAAgB,CAACc,IAAI,GAAG,CAAC,EAAE;MAC7B,MAAMC,cAAc,GAAGlD,sBAAsB,CAACd,GAAG,CAAC;MAElD;MACAvD,QAAQ,CAACuD,GAAG,EAAE;QACZ0C,cAAcA,CAACtD,IAAgC;UAC7C,IAAI,CAAC9B,eAAe,CAAC8B,IAAI,CAAC7B,IAAI,EAAE0C,UAAU,EAAEC,OAAO,CAAC,EAAE;UAEtD,MAAMkD,YAAY,GAAGhE,IAAI,CAAC7B,IAAI,CAAC8F,SAAS,CAAC,CAAC,CAAC;UAC3C,IAAI,CAAC9G,CAAC,CAAC+G,oBAAoB,CAACF,YAAY,CAAC,IAAI,CAACA,YAAY,CAACG,SAAS,EAAE;UAEtEnE,IAAI,CAAC3C,QAAQ,CAAC;YACZ;YACAiG,cAAcA,CAACc,UAAsC;cACnD,IAAIlG,eAAe,CAACkG,UAAU,CAACjG,IAAI,EAAE0C,UAAU,EAAEC,OAAO,CAAC,EAAE;gBACzDsD,UAAU,CAACC,IAAI,EAAE;cACnB;YACF,CAAC;YACDC,eAAeA,CAACC,SAAsC;cACpD,IAAI,CAACA,SAAS,CAACpG,IAAI,CAACqG,QAAQ,IAAI,CAACD,SAAS,CAACpG,IAAI,CAACsB,QAAQ,EAAE;cAE1D,MAAM+D,GAAG,GAAGe,SAAS,CAACpG,IAAI,CAACqF,GAAG;cAC9B,IAAI,CAACA,GAAG,EAAE;cAEV,MAAMjE,QAAQ,GAAG,GAAGY,EAAE,IAAIqD,GAAG,CAACC,KAAK,CAAClD,IAAI,IAAIiD,GAAG,CAACC,KAAK,CAACgB,MAAM,EAAE;cAC9D,MAAMI,KAAK,GAAGhB,gBAAgB,CAACiB,GAAG,CAACvF,QAAQ,CAAC;cAC5C,IAAI,CAACsF,KAAK,EAAE;cAEZ,MAAMnB,OAAO,GAAGlE,qBAAqB,CACnC+E,SAAS,CAACpG,IAAI,CAACsB,QAAQ,EACvBoF,KAAK,CAAC3F,OAAO,EACb2B,UAAW,EACX+D,cAAc,CACf;cACDL,SAAS,CAACpG,IAAI,CAACsB,QAAQ,GAAGiE,OAAO;cACjCR,cAAc,GAAG,IAAI;YACvB;WACD,CAAC;QACJ;OACD,CAAC;MAEF;MACA,MAAM6B,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAACpB,gBAAgB,CAACqB,MAAM,EAAE,CAAC,CAACC,GAAG,CAACtG,2BAA2B,CAAC;MAChG,IAAIuG,WAAW,GAAG,CAAC;MACnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGzE,GAAG,CAACG,OAAO,CAACC,IAAI,CAACoB,MAAM,EAAEiD,CAAC,EAAE,EAAE;QAChD,IAAI,CAAClI,CAAC,CAAC8D,mBAAmB,CAACL,GAAG,CAACG,OAAO,CAACC,IAAI,CAACqE,CAAC,CAAC,CAAC,EAAE;UAC/CD,WAAW,GAAGC,CAAC;UACf;QACF;QACAD,WAAW,GAAGC,CAAC,GAAG,CAAC;MACrB;MACAzE,GAAG,CAACG,OAAO,CAACC,IAAI,CAACsE,MAAM,CAACF,WAAW,EAAE,CAAC,EAAE,GAAGL,iBAAiB,CAAC;IAC/D;EACF;EAEA,IAAI,CAAC7B,cAAc,EAAE;IACnB,OAAO;MAAEZ,IAAI;MAAEW,WAAW,EAAE;IAAK,CAAE;EACrC;EAEA,MAAMsC,MAAM,GAAG/H,QAAQ,CAACoD,GAAG,EAAE;IAC3B4E,UAAU,EAAE,IAAI;IAChBC,cAAc,EAAEtF;GACjB,EAAEmC,IAAI,CAAC;EAER,OAAO;IACLA,IAAI,EAAEiD,MAAM,CAACjD,IAAI;IACjB6C,GAAG,EAAEI,MAAM,CAACJ,GAAG;IACflC,WAAW,EAAE;GACd;AACH","ignoreList":[]}
1
+ {"version":3,"file":"sourceTrace.js","names":["parse","_traverse","_generate","t","traverseModule","traverse","default","generateModule","generate","ALL_INSTRUMENTABLE","resolveInstrumentable","options","include","exclude","Set","filter","name","has","isEffectGenCall","node","effectImportName","genImportName","callee","isMemberExpression","isIdentifier","object","property","extractFunctionName","isCallExpression","createStackFrameDeclaration","info","variableDeclaration","variableDeclarator","identifier","varName","objectExpression","objectProperty","stringLiteral","arrowFunctionExpression","location","wrapWithUpdateService","argument","frameVarName","referencesImportName","callExpression","memberExpression","spreadElement","getAssignedVariableName","path","parent","isVariableDeclarator","id","createSpanName","variableName","combinatorName","fileName","line","wrapWithSpan","expr","spanName","attrs","attributesObject","filepath","numericLiteral","column","functionName","optionsObject","findOrGetEffectImport","ast","effectName","genName","program","body","isImportDeclaration","source","value","specifier","specifiers","isImportNamespaceSpecifier","local","isImportSpecifier","imported","ensureReferencesImport","push","importSpecifier","importDecl","importDeclaration","unshift","getFileName","filePath","parts","split","length","transform","code","enableSourceTrace","sourceTrace","extractFnName","spanOptions","spans","enableSpans","enabled","sourceType","plugins","sourceFilename","transformed","hasTransformed","instrumentable","wrappedNodes","WeakSet","CallExpression","methodName","loc","start","wrapped","add","replaceWith","framesByLocation","Map","frameCounter","generatorArg","arguments","isFunctionExpression","generator","nestedPath","skip","YieldExpression","yieldPath","delegate","set","size","referencesName","frame","get","frameDeclarations","Array","from","values","map","insertIndex","i","splice","result","sourceMaps","sourceFileName"],"sources":["../src/sourceTrace.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@clayroach/effect-unplugin",
3
3
  "type": "module",
4
- "version": "4.0.0-source-tracing.6",
4
+ "version": "4.0.0-source-tracing.7",
5
5
  "license": "MIT",
6
6
  "description": "Build-time AST transformer for Effect source location tracing",
7
7
  "homepage": "https://github.com/clayroach/effect",
@@ -38,6 +38,13 @@ interface StackFrameInfo {
38
38
  readonly varName: string
39
39
  }
40
40
 
41
+ interface SpanAttributes {
42
+ readonly filepath: string
43
+ readonly line: number
44
+ readonly column: number
45
+ readonly functionName: string
46
+ }
47
+
41
48
  const ALL_INSTRUMENTABLE: ReadonlyArray<InstrumentableEffect> = [
42
49
  "gen", "fork", "forkDaemon", "forkScoped", "all", "forEach", "filter", "reduce", "iterate", "loop"
43
50
  ]
@@ -177,26 +184,41 @@ function getAssignedVariableName(path: NodePath<t.CallExpression>): string | nul
177
184
  }
178
185
 
179
186
  /**
180
- * Creates a span name from variable name or location.
187
+ * Creates a span name from variable name, combinator, or location.
181
188
  */
182
- function createSpanName(variableName: string | null, fileName: string, line: number): string {
183
- if (variableName) {
184
- return `${variableName} (${fileName}:${line})`
185
- }
186
- return `${fileName}:${line}`
189
+ function createSpanName(
190
+ variableName: string | null,
191
+ combinatorName: string,
192
+ fileName: string,
193
+ line: number
194
+ ): string {
195
+ const identifier = variableName ?? `effect.${combinatorName}`
196
+ return `${identifier} (${fileName}:${line})`
187
197
  }
188
198
 
189
199
  /**
190
- * Wraps an expression with Effect.withSpan().
200
+ * Wraps an expression with Effect.withSpan() and attributes.
191
201
  */
192
202
  function wrapWithSpan(
193
203
  expr: t.Expression,
194
204
  spanName: string,
195
- effectImportName: string
205
+ effectImportName: string,
206
+ attrs: SpanAttributes
196
207
  ): t.CallExpression {
208
+ const attributesObject = t.objectExpression([
209
+ t.objectProperty(t.stringLiteral("code.filepath"), t.stringLiteral(attrs.filepath)),
210
+ t.objectProperty(t.stringLiteral("code.lineno"), t.numericLiteral(attrs.line)),
211
+ t.objectProperty(t.stringLiteral("code.column"), t.numericLiteral(attrs.column)),
212
+ t.objectProperty(t.stringLiteral("code.function"), t.stringLiteral(attrs.functionName))
213
+ ])
214
+
215
+ const optionsObject = t.objectExpression([
216
+ t.objectProperty(t.identifier("attributes"), attributesObject)
217
+ ])
218
+
197
219
  return t.callExpression(
198
220
  t.memberExpression(t.identifier(effectImportName), t.identifier("withSpan")),
199
- [expr, t.stringLiteral(spanName)]
221
+ [expr, t.stringLiteral(spanName), optionsObject]
200
222
  )
201
223
  }
202
224
 
@@ -332,9 +354,16 @@ export function transform(
332
354
  if (!loc) return
333
355
 
334
356
  const variableName = getAssignedVariableName(path)
335
- const spanName = createSpanName(variableName, fileName, loc.start.line)
357
+ const functionName = variableName ?? `effect.${methodName}`
358
+ const spanName = createSpanName(variableName, methodName, fileName, loc.start.line)
359
+ const attrs: SpanAttributes = {
360
+ filepath: id,
361
+ line: loc.start.line,
362
+ column: loc.start.column,
363
+ functionName
364
+ }
336
365
 
337
- const wrapped = wrapWithSpan(path.node, spanName, effectName)
366
+ const wrapped = wrapWithSpan(path.node, spanName, effectName, attrs)
338
367
  wrappedNodes.add(path.node)
339
368
  path.replaceWith(wrapped)
340
369
  hasTransformed = true