@no22/dison 1.3.0 → 1.5.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/README.md CHANGED
@@ -110,6 +110,25 @@ To activate a configuration defined in another file:
110
110
  activate TestConfig from "./configs";
111
111
  ```
112
112
 
113
+ #### Forward references (new in 1.5.0)
114
+
115
+ A configuration may reference classes declared **later in the same
116
+ file** — key evaluation is deferred until the wiring is first consulted,
117
+ so the natural "declarative header" style just works:
118
+
119
+ ```dison
120
+ configuration { bind Repo = MockRepo; } // at the top of the file
121
+
122
+ class Repo { ... }
123
+ class MockRepo extends Repo { ... }
124
+ class Service { injectable repo: Repo; }
125
+ ```
126
+
127
+ This applies to `bind`, `override`, class-body configurations, and
128
+ `activate` alike. Registration *order* is still respected: if the same
129
+ type is bound twice, the registration that executes later wins, exactly
130
+ as if everything had been applied in place.
131
+
113
132
  #### Scoped configuration (new in 1.2.0)
114
133
 
115
134
  Where you write a `configuration` decides how far it reaches. An
@@ -143,6 +162,18 @@ A dependency is wired according to the scope active where its *root*
143
162
  object was constructed, and the whole lazily-built object graph follows
144
163
  that same scope consistently.
145
164
 
165
+ In an `async` function body, entering a local scope is an **implicit
166
+ suspension point** (one microtask; new in 1.4.0). The configuration and
167
+ the code after it run in the function's own async context, so the scope
168
+ can never leak into the caller's code while the function is suspended
169
+ at an `await`. Everything else behaves as before: the scope stays
170
+ active across `await`s inside the function, concurrent async calls
171
+ remain isolated, and instances constructed inside the scope keep it.
172
+ Local configurations are rejected at transpile time inside **generator**
173
+ function bodies (sync or async), because the scope cannot be kept
174
+ across `yield` — put the configuration in the function that drives the
175
+ generator instead.
176
+
146
177
  > Local scopes desugar to `using` + `AsyncLocalStorage`, so generated
147
178
  > code that uses them needs `Symbol.dispose` (TypeScript 5.2+ / Node 20+)
148
179
  > and `node:async_hooks` at runtime. See [Requirements](#requirements).
@@ -23,9 +23,11 @@ export declare function identityKeyableClassNames(kinds: DeclaredTypeKinds): Set
23
23
  export declare function isSimpleTypeShape(typeName: string): boolean;
24
24
  export declare function baseIdentifierOf(typeName: string): string;
25
25
  export declare function isRiskyInjectableType(typeKey: string, typeKinds: DeclaredTypeKinds): boolean;
26
+ export type EnclosingFunctionKind = "none" | "sync" | "async" | "generator" | "async-generator";
26
27
  export interface BlockContext {
27
28
  isTopLevel(idx: number): boolean;
28
29
  isDirectClassBodyChild(idx: number): boolean;
30
+ enclosingFunctionKind(idx: number): EnclosingFunctionKind;
29
31
  }
30
32
  export declare function collectBlockContext(tokens: Token[]): BlockContext;
31
33
  //# sourceMappingURL=analysis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAInF;AAKD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAInF;AAOD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAcjE;AAOD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAatE;AAcD,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAyB9E;AAYD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA6DzE;AAaD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CA8EtE;AAeD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAMjC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAgC3E;AAKD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,CAM/E;AAID,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,CAE/E;AAOD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzD;AAUD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAI5F;AAwBD,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9C;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CA8BjE"}
1
+ {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAInF;AAKD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAInF;AAOD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAcjE;AAOD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAatE;AAcD,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAyB9E;AAYD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA6DzE;AAaD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CA8EtE;AAeD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAMjC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAgC3E;AAKD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,CAM/E;AAID,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,CAE/E;AAOD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzD;AAUD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAI5F;AA4BD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEhG,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7C,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;CAC3D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CA0LjE"}
package/dist/analysis.js CHANGED
@@ -343,12 +343,157 @@ export function isRiskyInjectableType(typeKey, typeKinds) {
343
343
  export function collectBlockContext(tokens) {
344
344
  const depthAt = new Array(tokens.length);
345
345
  const isClassBodyAt = new Array(tokens.length);
346
+ const funcKindAt = new Array(tokens.length);
346
347
  const blockStack = []; // 各要素: そのブロックがクラス本体ならtrue
348
+ // 各ブロック内で有効な「直近の囲み関数の種別」。関数本体の "{" で新しい種別を
349
+ // 積み、それ以外のブロックは外側の種別を継承する。
350
+ const funcStack = [];
347
351
  let sawClassKeyword = false;
352
+ // --- "{"の直前トークン列から、そのブロックが関数本体かどうかを判定するヘルパ群 ---
353
+ // トークンレベルのヒューリスティック(class本体判定と同水準)。既知の限界:
354
+ // 戻り値型注釈に関数型やオブジェクト型リテラルを含む場合、計算プロパティ名
355
+ // ([Symbol.iterator]() 等)、セミコロン省略スタイルでの「呼び出し式の直後の
356
+ // 裸ブロック」などは誤判定しうる(docs/async-local-scope.md §6)。
357
+ const prevSigIdx = (from) => {
358
+ let j = from;
359
+ while (j >= 0 && (tokens[j].type === "whitespace" || tokens[j].type === "comment"))
360
+ j--;
361
+ return j;
362
+ };
363
+ const isPunct = (i, text) => i >= 0 && tokens[i].type === "punct" && tokens[i].text === text;
364
+ const isWord = (i, text) => i >= 0 && (tokens[i].type === "ident" || tokens[i].type === "keyword") && tokens[i].text === text;
365
+ // ")" の位置から対応する "(" の位置へ正確に遡る(括弧の数を数える)。
366
+ const matchParenBack = (closeIdx) => {
367
+ let depth = 0;
368
+ for (let j = closeIdx; j >= 0; j--) {
369
+ if (tokens[j].type !== "punct")
370
+ continue;
371
+ if (tokens[j].text === ")")
372
+ depth++;
373
+ else if (tokens[j].text === "(") {
374
+ depth--;
375
+ if (depth === 0)
376
+ return j;
377
+ }
378
+ }
379
+ return -1;
380
+ };
381
+ // "{"の直前が戻り値型注釈("): 型 {")である場合、型部分を後方へ読み飛ばして
382
+ // パラメータリストの ")" の位置を返す。型注釈として現れうるトークン
383
+ // (識別子・文字列リテラル型・: < > | & [ ] , . ?)だけを許容し、それ以外に
384
+ // 当たったら関数頭部ではないと判断して -1 を返す。
385
+ const TYPE_PUNCTS = new Set([":", "<", ">", "|", "&", "[", "]", ",", ".", "?"]);
386
+ const skipReturnTypeBack = (from) => {
387
+ let j = from;
388
+ while (j >= 0) {
389
+ j = prevSigIdx(j);
390
+ if (j < 0)
391
+ return -1;
392
+ const t = tokens[j];
393
+ if (t.type === "punct" && t.text === ")") {
394
+ // ") : 型... {" の形か確認(")"の直後の有意トークンが ":")
395
+ const after = nextSignificantToken(tokens, j + 1);
396
+ return after !== null && after.type === "punct" && after.text === ":" ? j : -1;
397
+ }
398
+ const typeish = t.type === "ident" || t.type === "string" || (t.type === "punct" && TYPE_PUNCTS.has(t.text));
399
+ if (!typeish)
400
+ return -1;
401
+ j--;
402
+ }
403
+ return -1;
404
+ };
405
+ // braceIdx の "{" が関数本体なら、その関数の種別を返す。関数本体でなければ
406
+ // null(呼び出し側で囲み種別を継承する)。
407
+ const classifyFunctionBody = (braceIdx) => {
408
+ const p1 = prevSigIdx(braceIdx - 1);
409
+ if (p1 < 0)
410
+ return null;
411
+ // --- アロー関数本体: "=> {"("="と">"は1文字ずつのpunctトークン) ---
412
+ if (isPunct(p1, ">")) {
413
+ const pEq = prevSigIdx(p1 - 1);
414
+ if (isPunct(pEq, "=")) {
415
+ let q = prevSigIdx(pEq - 1);
416
+ // "(params): 型 => {" の戻り値型注釈を読み飛ばす
417
+ if (!isPunct(q, ")")) {
418
+ const r = skipReturnTypeBack(q);
419
+ if (r >= 0)
420
+ q = r;
421
+ }
422
+ if (isPunct(q, ")")) {
423
+ const open = matchParenBack(q);
424
+ const h = open >= 0 ? prevSigIdx(open - 1) : -1;
425
+ return isWord(h, "async") ? "async" : "sync";
426
+ }
427
+ if (q >= 0 && tokens[q].type === "ident") {
428
+ // 単一パラメータ形式 "x => {" / "async x => {"
429
+ const h = prevSigIdx(q - 1);
430
+ return isWord(h, "async") ? "async" : "sync";
431
+ }
432
+ return "sync";
433
+ }
434
+ // ">"だが"=>"ではない(例: 戻り値型 "Promise<void> {")→ 下の型スキップへ
435
+ }
436
+ // --- 関数/メソッド/制御文の本体: "( ... ) {" または "( ... ): 型 {" ---
437
+ let close = -1;
438
+ if (isPunct(p1, ")"))
439
+ close = p1;
440
+ else
441
+ close = skipReturnTypeBack(p1);
442
+ if (close < 0)
443
+ return null; // 関数頭部ではない(オブジェクトリテラル・裸ブロック等)
444
+ const open = matchParenBack(close);
445
+ if (open < 0)
446
+ return null;
447
+ const h = prevSigIdx(open - 1);
448
+ if (h < 0)
449
+ return null;
450
+ const ht = tokens[h];
451
+ // 制御ブロックは関数ではない(囲み種別を継承)
452
+ if (isWord(h, "if") || isWord(h, "for") || isWord(h, "while") ||
453
+ isWord(h, "switch") || isWord(h, "catch")) {
454
+ return null;
455
+ }
456
+ if (isWord(h, "await") && isWord(prevSigIdx(h - 1), "for"))
457
+ return null; // for await ( ... )
458
+ // 無名関数式: "function () {}" / "function* () {}" / "async function () {}"
459
+ if (isWord(h, "function")) {
460
+ return isWord(prevSigIdx(h - 1), "async") ? "async" : "sync";
461
+ }
462
+ if (isPunct(h, "*")) {
463
+ const f = prevSigIdx(h - 1);
464
+ if (isWord(f, "function")) {
465
+ return isWord(prevSigIdx(f - 1), "async") ? "async-generator" : "generator";
466
+ }
467
+ return "generator"; // オブジェクトリテラルの "*() {}" 等
468
+ }
469
+ // 名前付き関数・メソッド: "name() {}" の name の手前を見る
470
+ if (ht.type === "ident" || ht.type === "keyword") {
471
+ const b = prevSigIdx(h - 1);
472
+ if (isWord(b, "function")) {
473
+ return isWord(prevSigIdx(b - 1), "async") ? "async" : "sync";
474
+ }
475
+ if (isPunct(b, "*")) {
476
+ const f = prevSigIdx(b - 1);
477
+ if (isWord(f, "function")) {
478
+ return isWord(prevSigIdx(f - 1), "async") ? "async-generator" : "generator";
479
+ }
480
+ return isWord(f, "async") ? "async-generator" : "generator"; // "*name() {}" メソッド
481
+ }
482
+ if (isWord(b, "async"))
483
+ return "async"; // "async name() {}" メソッド
484
+ if (isWord(b, "get") || isWord(b, "set"))
485
+ return "sync";
486
+ if (b >= 0 && tokens[b].type === "keyword")
487
+ return null; // Dison構文の一部(念のため)
488
+ return "sync"; // メソッド短縮形 "name() {}" とみなす
489
+ }
490
+ return null;
491
+ };
348
492
  for (let idx = 0; idx < tokens.length; idx++) {
349
493
  const t = tokens[idx];
350
494
  depthAt[idx] = blockStack.length;
351
495
  isClassBodyAt[idx] = blockStack.length > 0 ? blockStack[blockStack.length - 1] : false;
496
+ funcKindAt[idx] = funcStack.length > 0 ? funcStack[funcStack.length - 1] : "none";
352
497
  if (t.type === "ident" && t.text === "class") {
353
498
  const next = nextSignificantToken(tokens, idx + 1);
354
499
  const isObjectKeyShorthand = next !== null && next.type === "punct" && next.text === ":";
@@ -357,16 +502,27 @@ export function collectBlockContext(tokens) {
357
502
  }
358
503
  }
359
504
  else if (t.type === "punct" && t.text === "{") {
360
- blockStack.push(sawClassKeyword);
505
+ const isClassBody = sawClassKeyword;
506
+ blockStack.push(isClassBody);
507
+ if (isClassBody) {
508
+ // クラス本体自体は関数ではない(メソッド本体は各自の頭部で再分類される)
509
+ funcStack.push("none");
510
+ }
511
+ else {
512
+ const kind = classifyFunctionBody(idx);
513
+ funcStack.push(kind ?? (funcStack.length > 0 ? funcStack[funcStack.length - 1] : "none"));
514
+ }
361
515
  sawClassKeyword = false;
362
516
  }
363
517
  else if (t.type === "punct" && t.text === "}") {
364
518
  blockStack.pop();
519
+ funcStack.pop();
365
520
  }
366
521
  }
367
522
  return {
368
523
  isTopLevel: (idx) => (depthAt[idx] ?? 0) === 0,
369
524
  isDirectClassBodyChild: (idx) => isClassBodyAt[idx] ?? false,
525
+ enclosingFunctionKind: (idx) => funcKindAt[idx] ?? "none",
370
526
  };
371
527
  }
372
528
  //# sourceMappingURL=analysis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"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"}
package/dist/ast.d.ts CHANGED
@@ -23,6 +23,7 @@ export type Node = {
23
23
  kind: "configuration";
24
24
  name?: string;
25
25
  scope: "global" | "local" | "class";
26
+ asyncScope?: boolean;
26
27
  entries: ConfigEntry[];
27
28
  } | {
28
29
  kind: "injectable";
package/dist/ast.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IAKb,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAM3B,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAEpD,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAQ7B;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,GAErG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAGjH;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAI/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAGrD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IAKb,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAM3B,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAEpD,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAW7B;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,GAE3H;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAGjH;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAI/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAGrD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAA4B,MAAM,UAAU,CAAC;AAI/D,MAAM,WAAW,WAAW;IAK1B,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAKzC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACpD;AAID,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AA+LD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAqB3F;AAOD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,MAAM,CAO/F;AAOD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAMrE;AAQD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CASpF;AAOD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAajE;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,IAAI,EAAE,EACb,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,WAAW,GACpB,MAAM,CA4CR"}
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAA4B,MAAM,UAAU,CAAC;AAI/D,MAAM,WAAW,WAAW;IAK1B,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAKzC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACpD;AAID,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAyMD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAqB3F;AAOD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,MAAM,CAO/F;AAOD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAMrE;AAQD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CASpF;AAOD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAajE;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,IAAI,EAAE,EACb,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,WAAW,GACpB,MAAM,CA4CR"}
package/dist/codegen.js CHANGED
@@ -37,15 +37,17 @@ function keyExprFor(typeKey, token, strategy) {
37
37
  // override 1件分のDI_REGISTRY代入文を生成する。configuration内(関数本体に
38
38
  // 収集される場合)と、configurationで包まない単独のoverride(その場に直接
39
39
  // 出力される場合)の両方から共有される。
40
- // local=false: グローバルレジストリへ登録(registerOverride)。local=true: ローカル
41
- // スコープフレームへ登録(__disonOverride。__disonEnterScope の setup 内で使う)。
40
+ // local=false: グローバルレジストリへ登録(registerOverrideLazy)。local=true: ローカル
41
+ // スコープフレームへ登録(__disonOverride。__disonEnterScopeLazy の setup 内で使う)。
42
+ // 対象クラスはサンク(() => Class)で渡し、評価を初回参照時まで遅延する
43
+ // (後方宣言クラスへの前方参照を可能にする。docs/config-forward-reference.md)。
42
44
  function generateOverrideEntryLines(entry, local) {
43
45
  // entry.className はクラスの実体を指す識別子としてそのまま埋め込む
44
46
  // (文字列リテラルにはしない)。キーがクラスの実体そのものなので、className が
45
47
  // スコープ内に存在しない(タイプミス・importし忘れ)場合は tsc が "Cannot find name"
46
- // として検出する。
47
- const fn = local ? "__disonOverride" : "registerOverride";
48
- return entry.assignments.map((a) => ` ${fn}(${entry.className}, "${a.prop}", () => (${a.valueExpr}));`);
48
+ // として検出する(サンク内でも同様に検出される)。
49
+ const fn = local ? "__disonOverride" : "registerOverrideLazy";
50
+ return entry.assignments.map((a) => ` ${fn}(() => ${entry.className}, "${a.prop}", () => (${a.valueExpr}));`);
49
51
  }
50
52
  // bind 1件分のbindType呼び出し文を生成する(generateOverrideEntryLinesと同様、
51
53
  // configuration内・単独bindの両方から共有される)。
@@ -73,11 +75,14 @@ function generateOverrideEntryLines(entry, local) {
73
75
  // 連鎖: 差し替え先クラス自身がさらに bind されている可能性があるので、
74
76
  // 直接 new せず resolveType を介して再帰的に解決する。
75
77
  // (bind A = B; bind B = C; と書けば、Aの解決は最終的にCまで辿る)
76
- // local=false: グローバル TYPE_BINDINGS へ登録(bindType<T>)。local=true: ローカル
77
- // スコープフレームへ登録(__disonBind。__disonEnterScope の setup 内で使う)。
78
- // bindType<T> は型引数で差し替え先の型互換を tsc に検査させるが、__disonBind は
78
+ // local=false: グローバル TYPE_BINDINGS へ登録(bindTypeLazy<T>)。local=true: ローカル
79
+ // スコープフレームへ登録(__disonBind。__disonEnterScopeLazy の setup 内で使う)。
80
+ // bindTypeLazy<T> は型引数で差し替え先の型互換を tsc に検査させるが、__disonBind は
79
81
  // 型引数を取れないため、代わりに factory の返り値型注釈 `(): OrigType =>` で同じ検査を
80
82
  // 得る(差し替え先が OrigType と非互換なら tsc がエラーにする)。
83
+ // 左辺キーはサンク(() => Key)で渡し、評価を初回参照時まで遅延する
84
+ // (後方宣言クラスへの前方参照を可能にする。docs/config-forward-reference.md)。
85
+ // 差し替え先キーは factory 内にあり元々遅延評価される。
81
86
  function generateBindEntryLines(entry, strategy, local) {
82
87
  const originalKeyExpr = keyExprFor(entry.originalTypeKey, entry.token, strategy);
83
88
  // 差し替え先(replacement)は `new` で実体化される具象クラスなので、それ自身が
@@ -90,8 +95,8 @@ function generateBindEntryLines(entry, strategy, local) {
90
95
  const factory = `resolveType(${replacementKeyExpr}, () => new ${entry.replacementTypeName}(${args}))`;
91
96
  return [
92
97
  local
93
- ? ` __disonBind(${originalKeyExpr}, (): ${entry.originalTypeName} => ${factory});`
94
- : ` bindType<${entry.originalTypeName}>(${originalKeyExpr}, () => ${factory});`,
98
+ ? ` __disonBind(() => ${originalKeyExpr}, (): ${entry.originalTypeName} => ${factory});`
99
+ : ` bindTypeLazy<${entry.originalTypeName}>(() => ${originalKeyExpr}, () => ${factory});`,
95
100
  ];
96
101
  }
97
102
  // configuration を構文位置に応じて生成する(docs/scoped-configuration.md):
@@ -118,13 +123,19 @@ function generateConfiguration(node, strategy, scopeId) {
118
123
  if (node.scope === "local") {
119
124
  // 無名ローカル configuration。__disonEnterScope の setup で __disonBind/__disonOverride を
120
125
  // 使ってフレームへ差分を積む。`using` で受けるのでブロック終端で自動的に戻る。
121
- return (`using __dison_scope_${scopeId} = __disonEnterScope((__disonBind, __disonOverride) => {\n` +
122
- `${lines.join("\n")}\n});`);
126
+ // async関数内では (await null, ...) で一度中断してから enterWith することで、
127
+ // スコープを関数専有のマイクロタスク実行に隔離し呼び出し元への漏れを防ぐ
128
+ // (暗黙のサスペンションポイント。docs/async-local-scope.md §2)。
129
+ const enter = `__disonEnterScopeLazy((__disonBind, __disonOverride) => {\n` +
130
+ `${lines.join("\n")}\n})`;
131
+ return node.asyncScope === true
132
+ ? `using __dison_scope_${scopeId} = (await null, ${enter});`
133
+ : `using __dison_scope_${scopeId} = ${enter};`;
123
134
  }
124
135
  if (node.scope === "class") {
125
136
  // 無名クラス configuration。クラス本体の static フィールドとしてフレームを構築する。
126
137
  // __disonClassScopes が this.constructor のプロトタイプ鎖からこの static を集める。
127
- return (`static __dison_classScope_${scopeId} = __disonBuildFrame((__disonBind, __disonOverride) => {\n` +
138
+ return (`static __dison_classScope_${scopeId} = __disonBuildFrameLazy((__disonBind, __disonOverride) => {\n` +
128
139
  `${lines.join("\n")}\n});`);
129
140
  }
130
141
  if (node.name !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
package/dist/core.js CHANGED
@@ -298,8 +298,8 @@ export function transpileDisonToTS(sourceCode, options = {}) {
298
298
  const header = `// --- Auto-generated TypeScript code ---\n\n`;
299
299
  const prelude = options.runtimeModulePath
300
300
  ? `${header}${DISON_RUNTIME_IMPORTS}import {\n` +
301
- ` bindType,\n resolveType,\n registerOverride,\n` +
302
- ` __disonCurrentScope,\n __disonResolveInjectable,\n __disonEnterScope,\n __disonBuildFrame,\n` +
301
+ ` bindTypeLazy,\n resolveType,\n registerOverrideLazy,\n` +
302
+ ` __disonCurrentScope,\n __disonResolveInjectable,\n __disonEnterScopeLazy,\n __disonBuildFrameLazy,\n` +
303
303
  `} from ${JSON.stringify(options.runtimeModulePath)};\n\n`
304
304
  : `${header}${DISON_RUNTIME_IMPORTS}\n${generateRuntimeDeclarations("")}\n`;
305
305
  // ES Modules の import はファイル先頭にしか書けないため、import 系(companion import、
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,46 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
2
  type __DisonFactory = () => any;
3
3
  type __DisonKey = string | symbol | Function;
4
- interface __DisonFrame {
5
- binds: Map<__DisonKey, __DisonFactory>;
6
- overrides: WeakMap<Function, Record<string, __DisonFactory>>;
4
+ type __DisonSlot = {
5
+ f: __DisonFactory;
6
+ seq: number;
7
+ };
8
+ type __DisonPendingEntry = {
9
+ kind: "bind";
10
+ key: () => __DisonKey;
11
+ f: __DisonFactory;
12
+ seq: number;
13
+ } | {
14
+ kind: "override";
15
+ cls: () => Function;
16
+ prop: string;
17
+ f: __DisonFactory;
18
+ seq: number;
19
+ };
20
+ interface __DisonStore {
21
+ binds: Map<__DisonKey, __DisonSlot>;
22
+ overrides: WeakMap<Function, Record<string, __DisonSlot>>;
23
+ pending: __DisonPendingEntry[];
24
+ }
25
+ interface __DisonFrame extends __DisonStore {
7
26
  parent: __DisonFrame | undefined;
8
27
  }
9
28
  export declare const __dison_als: AsyncLocalStorage<__DisonFrame | undefined>;
10
29
  export declare function __disonCurrentScope(): __DisonFrame | undefined;
30
+ export declare function __disonBuildFrameLazy(setup: (bind: (key: () => __DisonKey, factory: __DisonFactory) => void, override: (cls: () => Function, prop: string, factory: __DisonFactory) => void) => void): __DisonFrame;
11
31
  export declare function __disonBuildFrame(setup: (bind: (key: __DisonKey, factory: __DisonFactory) => void, override: (cls: Function, prop: string, factory: __DisonFactory) => void) => void): __DisonFrame;
12
- export declare const DI_REGISTRY: WeakMap<Function, Record<string, __DisonFactory>>;
32
+ export declare const DI_REGISTRY: WeakMap<Function, Record<string, __DisonSlot>>;
33
+ export declare const TYPE_BINDINGS: Map<__DisonKey, __DisonSlot>;
34
+ export declare function bindTypeLazy<T>(key: () => __DisonKey, factory: () => T): void;
35
+ export declare function bindType<T>(typeKey: __DisonKey, factory: () => T): void;
36
+ export declare function registerOverrideLazy(cls: () => Function, prop: string, factory: __DisonFactory): void;
13
37
  export declare function registerOverride(cls: Function, prop: string, factory: __DisonFactory): void;
14
38
  export declare function getOverride(cls: Function, prop: string): __DisonFactory | undefined;
15
- export declare const TYPE_BINDINGS: Map<__DisonKey, __DisonFactory>;
16
- export declare function bindType<T>(typeKey: __DisonKey, factory: () => T): void;
17
39
  export declare function resolveType<T>(typeKey: __DisonKey, defaultFactory: () => T): T;
18
40
  export declare function __disonResolveInjectable<T>(scope: __DisonFrame | undefined, cls: Function, prop: string, fallback: () => T): T;
41
+ export declare function __disonEnterScopeLazy(setup: (bind: (key: () => __DisonKey, factory: __DisonFactory) => void, override: (cls: () => Function, prop: string, factory: __DisonFactory) => void) => void): {
42
+ [Symbol.dispose](): void;
43
+ };
19
44
  export declare function __disonEnterScope(setup: (bind: (key: __DisonKey, factory: __DisonFactory) => void, override: (cls: Function, prop: string, factory: __DisonFactory) => void) => void): {
20
45
  [Symbol.dispose](): void;
21
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generated-runtime.d.ts","sourceRoot":"","sources":["../src/generated-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,KAAK,cAAc,GAAG,MAAM,GAAG,CAAC;AAChC,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC7C,UAAU,YAAY;IACpB,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7D,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;CAClC;AACD,eAAO,MAAM,WAAW,6CAAoD,CAAC;AAE7E,wBAAgB,mBAAmB,IAAI,YAAY,GAAG,SAAS,CAAmC;AAwBlG,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,KAAK,IAAI,GAClJ,YAAY,CAWd;AAKD,eAAO,MAAM,WAAW,mDAA0D,CAAC;AAEnF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAI3F;AA2BD,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAWnF;AAID,eAAO,MAAM,aAAa,iCAAwC,CAAC;AAKnE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAEvE;AAoBD,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAS9E;AASD,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAY9H;AAMD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,KAAK,IAAI,GAClJ;IAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;CAAE,CAa9B"}
1
+ {"version":3,"file":"generated-runtime.d.ts","sourceRoot":"","sources":["../src/generated-runtime.ts"],"names":[],"mappings":"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"}