@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 +31 -0
- package/dist/analysis.d.ts +2 -0
- package/dist/analysis.d.ts.map +1 -1
- package/dist/analysis.js +157 -1
- package/dist/analysis.js.map +1 -1
- package/dist/ast.d.ts +1 -0
- package/dist/ast.d.ts.map +1 -1
- package/dist/codegen.d.ts.map +1 -1
- package/dist/codegen.js +24 -13
- package/dist/codegen.js.map +1 -1
- package/dist/core.js +2 -2
- package/dist/core.js.map +1 -1
- package/dist/generated-runtime.d.ts +31 -6
- package/dist/generated-runtime.d.ts.map +1 -1
- package/dist/generated-runtime.js +100 -38
- package/dist/generated-runtime.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +15 -1
- package/dist/parser.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +131 -39
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/dist/runtime.js
CHANGED
|
@@ -18,20 +18,75 @@
|
|
|
18
18
|
// 現在のフレームを捕捉し、解決時にそのフレームへ再突入する(遅延構築される依存グラフ
|
|
19
19
|
// 全体が root の構築スコープに一貫して従う)。ローカルスコープは `using` 宣言で入り、
|
|
20
20
|
// 囲みブロックの終端で自動的に元に戻る(Symbol.dispose)。
|
|
21
|
+
//
|
|
22
|
+
// 前方参照対応(docs/config-forward-reference.md): 登録はFIFOキューに積まれ、
|
|
23
|
+
// レジストリを読むたびにドレインされる。キー式はサンクで渡され初回参照時まで
|
|
24
|
+
// 評価が遅延されるため、同一ファイル内で後方宣言されたクラスをconfigurationが
|
|
25
|
+
// 前方参照できる(TDZを踏まない)。seq比較により同一キーへの複数登録の最終状態は
|
|
26
|
+
// 常にソース実行順どおりになる。旧シグネチャ(bindType/registerOverride/
|
|
27
|
+
// __disonEnterScope/__disonBuildFrame)は互換のため残し、内部でキュー経由になる。
|
|
21
28
|
// スコープ対応に必要な import(AsyncLocalStorage)。生成物のファイル先頭に置く必要が
|
|
22
29
|
// あるため、宣言本体(generateRuntimeDeclarations)とは分けて提供する。単一ファイル
|
|
23
30
|
// モードでは core.ts が、複数ファイルモードでは共有ランタイムモジュールが先頭に付ける。
|
|
24
31
|
export const DISON_RUNTIME_IMPORTS = `import { AsyncLocalStorage } from "node:async_hooks";\n`;
|
|
25
32
|
export function generateRuntimeDeclarations(exportKeyword) {
|
|
26
33
|
const E = exportKeyword;
|
|
27
|
-
return (`// ---
|
|
34
|
+
return (`// --- registration queue (docs/config-forward-reference.md) ---\n` +
|
|
35
|
+
`// Registrations are queued (with a global sequence number) and applied lazily the\n` +
|
|
36
|
+
`// first time a registry is read. Key expressions are passed as thunks, so a\n` +
|
|
37
|
+
`// configuration may forward-reference a class declared later in the same file\n` +
|
|
38
|
+
`// without hitting the temporal dead zone. A thunk that still throws ReferenceError\n` +
|
|
39
|
+
`// stays queued and is retried on the next read; seq comparison guarantees that the\n` +
|
|
40
|
+
`// final state for a key always follows source execution order, and that a blocked\n` +
|
|
41
|
+
`// entry never delays unrelated keys.\n` +
|
|
28
42
|
`type __DisonFactory = () => any;\n` +
|
|
29
43
|
`type __DisonKey = string | symbol | Function;\n` +
|
|
30
|
-
`
|
|
31
|
-
`
|
|
32
|
-
`
|
|
44
|
+
`type __DisonSlot = { f: __DisonFactory; seq: number };\n` +
|
|
45
|
+
`type __DisonPendingEntry =\n` +
|
|
46
|
+
` | { kind: "bind"; key: () => __DisonKey; f: __DisonFactory; seq: number }\n` +
|
|
47
|
+
` | { kind: "override"; cls: () => Function; prop: string; f: __DisonFactory; seq: number };\n` +
|
|
48
|
+
`// One store shape shared by the global registries and every scope frame.\n` +
|
|
49
|
+
`interface __DisonStore {\n` +
|
|
50
|
+
` binds: Map<__DisonKey, __DisonSlot>;\n` +
|
|
51
|
+
` overrides: WeakMap<Function, Record<string, __DisonSlot>>;\n` +
|
|
52
|
+
` pending: __DisonPendingEntry[];\n` +
|
|
53
|
+
`}\n` +
|
|
54
|
+
`interface __DisonFrame extends __DisonStore {\n` +
|
|
33
55
|
` parent: __DisonFrame | undefined;\n` +
|
|
34
56
|
`}\n` +
|
|
57
|
+
`let __dison_seq = 0;\n` +
|
|
58
|
+
`function __disonPendBind(store: __DisonStore, key: () => __DisonKey, f: __DisonFactory): void {\n` +
|
|
59
|
+
` store.pending.push({ kind: "bind", key, f, seq: __dison_seq++ });\n` +
|
|
60
|
+
`}\n` +
|
|
61
|
+
`function __disonPendOverride(store: __DisonStore, cls: () => Function, prop: string, f: __DisonFactory): void {\n` +
|
|
62
|
+
` store.pending.push({ kind: "override", cls, prop, f, seq: __dison_seq++ });\n` +
|
|
63
|
+
`}\n` +
|
|
64
|
+
`// Drain a store's queue. Entries whose key thunk still hits the TDZ are kept and\n` +
|
|
65
|
+
`// retried later; everything else is applied, newest-seq-wins per key.\n` +
|
|
66
|
+
`function __disonApplyPending(store: __DisonStore): void {\n` +
|
|
67
|
+
` if (store.pending.length === 0) return;\n` +
|
|
68
|
+
` const remaining: __DisonPendingEntry[] = [];\n` +
|
|
69
|
+
` for (const e of store.pending) {\n` +
|
|
70
|
+
` let key: any;\n` +
|
|
71
|
+
` try {\n` +
|
|
72
|
+
` key = e.kind === "bind" ? e.key() : e.cls();\n` +
|
|
73
|
+
` } catch (err) {\n` +
|
|
74
|
+
` if (err instanceof ReferenceError) { remaining.push(e); continue; }\n` +
|
|
75
|
+
` throw err;\n` +
|
|
76
|
+
` }\n` +
|
|
77
|
+
` if (e.kind === "bind") {\n` +
|
|
78
|
+
` const cur = store.binds.get(key);\n` +
|
|
79
|
+
` if (cur === undefined || cur.seq < e.seq) store.binds.set(key, { f: e.f, seq: e.seq });\n` +
|
|
80
|
+
` } else {\n` +
|
|
81
|
+
` let rec = store.overrides.get(key);\n` +
|
|
82
|
+
` if (rec === undefined) { rec = {}; store.overrides.set(key, rec); }\n` +
|
|
83
|
+
` const cur = rec[e.prop];\n` +
|
|
84
|
+
` if (cur === undefined || cur.seq < e.seq) rec[e.prop] = { f: e.f, seq: e.seq };\n` +
|
|
85
|
+
` }\n` +
|
|
86
|
+
` }\n` +
|
|
87
|
+
` store.pending = remaining;\n` +
|
|
88
|
+
`}\n\n` +
|
|
89
|
+
`// --- scope infrastructure (docs/scoped-configuration.md) ---\n` +
|
|
35
90
|
`${E}const __dison_als = new AsyncLocalStorage<__DisonFrame | undefined>();\n` +
|
|
36
91
|
`// Current scope frame (undefined = global only). Captured by injectable at construction.\n` +
|
|
37
92
|
`${E}function __disonCurrentScope(): __DisonFrame | undefined { return __dison_als.getStore(); }\n\n` +
|
|
@@ -56,29 +111,56 @@ export function generateRuntimeDeclarations(exportKeyword) {
|
|
|
56
111
|
` }\n` +
|
|
57
112
|
` return out;\n` +
|
|
58
113
|
`}\n` +
|
|
114
|
+
`function __disonNewFrame(parent: __DisonFrame | undefined): __DisonFrame {\n` +
|
|
115
|
+
` return { binds: new Map(), overrides: new WeakMap(), pending: [], parent };\n` +
|
|
116
|
+
`}\n` +
|
|
59
117
|
`// Build a frame without entering it (used to initialize a class body static field).\n` +
|
|
118
|
+
`// The setup callback receives key THUNKS, so a class-body configuration may reference\n` +
|
|
119
|
+
`// classes declared later in the file (evaluated at the first lookup on the frame).\n` +
|
|
120
|
+
`${E}function __disonBuildFrameLazy(\n` +
|
|
121
|
+
` setup: (bind: (key: () => __DisonKey, factory: __DisonFactory) => void, override: (cls: () => Function, prop: string, factory: __DisonFactory) => void) => void\n` +
|
|
122
|
+
`): __DisonFrame {\n` +
|
|
123
|
+
` const frame = __disonNewFrame(undefined);\n` +
|
|
124
|
+
` setup(\n` +
|
|
125
|
+
` (key, factory) => { __disonPendBind(frame, key, factory); },\n` +
|
|
126
|
+
` (cls, prop, factory) => { __disonPendOverride(frame, cls, prop, factory); }\n` +
|
|
127
|
+
` );\n` +
|
|
128
|
+
` return frame;\n` +
|
|
129
|
+
`}\n` +
|
|
130
|
+
`// Backward-compatible variant taking eager key values (generated by older CLI versions).\n` +
|
|
60
131
|
`${E}function __disonBuildFrame(\n` +
|
|
61
132
|
` setup: (bind: (key: __DisonKey, factory: __DisonFactory) => void, override: (cls: Function, prop: string, factory: __DisonFactory) => void) => void\n` +
|
|
62
133
|
`): __DisonFrame {\n` +
|
|
63
|
-
` const frame
|
|
134
|
+
` const frame = __disonNewFrame(undefined);\n` +
|
|
64
135
|
` setup(\n` +
|
|
65
|
-
` (key, factory) => { frame
|
|
66
|
-
` (cls, prop, factory) => {\n` +
|
|
67
|
-
` let e = frame.overrides.get(cls);\n` +
|
|
68
|
-
` if (!e) { e = {}; frame.overrides.set(cls, e); }\n` +
|
|
69
|
-
` e[prop] = factory;\n` +
|
|
70
|
-
` }\n` +
|
|
136
|
+
` (key, factory) => { __disonPendBind(frame, () => key, factory); },\n` +
|
|
137
|
+
` (cls, prop, factory) => { __disonPendOverride(frame, () => cls, prop, factory); }\n` +
|
|
71
138
|
` );\n` +
|
|
72
139
|
` return frame;\n` +
|
|
73
140
|
`}\n\n` +
|
|
74
141
|
`// --- global registries ---\n` +
|
|
75
142
|
`// Global dependency registry (per-property override). Keyed by the class itself\n` +
|
|
76
143
|
`// so tsc catches a typo in the override target class name.\n` +
|
|
77
|
-
`${E}const DI_REGISTRY = new WeakMap<Function, Record<string,
|
|
144
|
+
`${E}const DI_REGISTRY = new WeakMap<Function, Record<string, __DisonSlot>>();\n` +
|
|
145
|
+
`// Global type-replacement registry (bind). Key: class value (concrete class),\n` +
|
|
146
|
+
`// companion/token Symbol, or type-name string. See docs/type-identity-matching.md.\n` +
|
|
147
|
+
`${E}const TYPE_BINDINGS = new Map<__DisonKey, __DisonSlot>();\n` +
|
|
148
|
+
`const __DISON_GLOBAL: __DisonStore = { binds: TYPE_BINDINGS, overrides: DI_REGISTRY, pending: [] };\n\n` +
|
|
149
|
+
`// The Lazy variants take the key as a thunk (forward-reference safe); the plain\n` +
|
|
150
|
+
`// variants keep the old eager-key signature for code generated by older CLI versions.\n` +
|
|
151
|
+
`// bindTypeLazy<T> takes T as an explicit type argument, so tsc raises a compile error\n` +
|
|
152
|
+
`// if the replacement factory isn't compatible with the original type.\n` +
|
|
153
|
+
`${E}function bindTypeLazy<T>(key: () => __DisonKey, factory: () => T): void {\n` +
|
|
154
|
+
` __disonPendBind(__DISON_GLOBAL, key, factory);\n` +
|
|
155
|
+
`}\n` +
|
|
156
|
+
`${E}function bindType<T>(typeKey: __DisonKey, factory: () => T): void {\n` +
|
|
157
|
+
` __disonPendBind(__DISON_GLOBAL, () => typeKey, factory);\n` +
|
|
158
|
+
`}\n` +
|
|
159
|
+
`${E}function registerOverrideLazy(cls: () => Function, prop: string, factory: __DisonFactory): void {\n` +
|
|
160
|
+
` __disonPendOverride(__DISON_GLOBAL, cls, prop, factory);\n` +
|
|
161
|
+
`}\n` +
|
|
78
162
|
`${E}function registerOverride(cls: Function, prop: string, factory: __DisonFactory): void {\n` +
|
|
79
|
-
`
|
|
80
|
-
` if (!entry) { entry = {}; DI_REGISTRY.set(cls, entry); }\n` +
|
|
81
|
-
` entry[prop] = factory;\n` +
|
|
163
|
+
` __disonPendOverride(__DISON_GLOBAL, () => cls, prop, factory);\n` +
|
|
82
164
|
`}\n\n` +
|
|
83
165
|
`// Override target matching walks the prototype chain of the receiver's class\n` +
|
|
84
166
|
`// (child -> parent, child-wins): an override targeting a base class applies to\n` +
|
|
@@ -92,53 +174,52 @@ export function generateRuntimeDeclarations(exportKeyword) {
|
|
|
92
174
|
`}\n` +
|
|
93
175
|
`// Match one override table against the class chain (child-wins).\n` +
|
|
94
176
|
`function __disonChainLookup(\n` +
|
|
95
|
-
` map: { get(k: Function): Record<string,
|
|
177
|
+
` map: { get(k: Function): Record<string, __DisonSlot> | undefined },\n` +
|
|
96
178
|
` chain: Function[], prop: string\n` +
|
|
97
179
|
`): __DisonFactory | undefined {\n` +
|
|
98
180
|
` for (const c of chain) {\n` +
|
|
99
181
|
` const o = map.get(c);\n` +
|
|
100
|
-
` if (o && Object.prototype.hasOwnProperty.call(o, prop)) return o[prop];\n` +
|
|
182
|
+
` if (o && Object.prototype.hasOwnProperty.call(o, prop)) return o[prop].f;\n` +
|
|
101
183
|
` }\n` +
|
|
102
184
|
` return undefined;\n` +
|
|
103
185
|
`}\n` +
|
|
104
186
|
`// Look up an override in order: local frame chain (inner->outer) -> class scopes\n` +
|
|
105
187
|
`// (child->parent) -> global (priority: local > class > global). Scope-major: each\n` +
|
|
106
188
|
`// layer checks the whole class chain, so a nearer scope targeting a base class\n` +
|
|
107
|
-
`// beats a farther scope targeting the subclass.\n` +
|
|
189
|
+
`// beats a farther scope targeting the subclass. Each store drains its queue first.\n` +
|
|
108
190
|
`${E}function getOverride(cls: Function, prop: string): __DisonFactory | undefined {\n` +
|
|
109
191
|
` const chain = __disonClassChain(cls);\n` +
|
|
110
192
|
` for (let f = __dison_als.getStore(); f; f = f.parent) {\n` +
|
|
193
|
+
` __disonApplyPending(f);\n` +
|
|
111
194
|
` const hit = __disonChainLookup(f.overrides, chain, prop);\n` +
|
|
112
195
|
` if (hit) return hit;\n` +
|
|
113
196
|
` }\n` +
|
|
114
197
|
` if (__dison_classScopeCtx) for (const f of __dison_classScopeCtx) {\n` +
|
|
198
|
+
` __disonApplyPending(f);\n` +
|
|
115
199
|
` const hit = __disonChainLookup(f.overrides, chain, prop);\n` +
|
|
116
200
|
` if (hit) return hit;\n` +
|
|
117
201
|
` }\n` +
|
|
202
|
+
` __disonApplyPending(__DISON_GLOBAL);\n` +
|
|
118
203
|
` return __disonChainLookup(DI_REGISTRY, chain, prop);\n` +
|
|
119
204
|
`}\n\n` +
|
|
120
|
-
`// Global type-replacement registry (bind). Key: class value (concrete class),\n` +
|
|
121
|
-
`// companion/token Symbol, or type-name string. See docs/type-identity-matching.md.\n` +
|
|
122
|
-
`${E}const TYPE_BINDINGS = new Map<__DisonKey, __DisonFactory>();\n` +
|
|
123
205
|
`const _resolvingTypeBindings = new Set<__DisonKey>();\n\n` +
|
|
124
|
-
`// bindType<T> takes T as an explicit type argument, so tsc raises a compile error\n` +
|
|
125
|
-
`// if the replacement factory isn't compatible with the original type.\n` +
|
|
126
|
-
`${E}function bindType<T>(typeKey: __DisonKey, factory: () => T): void {\n` +
|
|
127
|
-
` TYPE_BINDINGS.set(typeKey, factory);\n` +
|
|
128
|
-
`}\n\n` +
|
|
129
206
|
`// Look up a bind in order: local frame chain (inner->outer) -> class scopes (child->parent)\n` +
|
|
130
207
|
`// -> global. __dison_classScopeCtx stays set throughout a resolution, so a bind chain inside\n` +
|
|
131
208
|
`// a class scope (the recursion in resolveType) follows the class scope too.\n` +
|
|
209
|
+
`// Each store drains its queue first.\n` +
|
|
132
210
|
`function __disonLookupBind(typeKey: __DisonKey): __DisonFactory | undefined {\n` +
|
|
133
211
|
` for (let f = __dison_als.getStore(); f; f = f.parent) {\n` +
|
|
212
|
+
` __disonApplyPending(f);\n` +
|
|
134
213
|
` const b = f.binds.get(typeKey);\n` +
|
|
135
|
-
` if (b) return b;\n` +
|
|
214
|
+
` if (b) return b.f;\n` +
|
|
136
215
|
` }\n` +
|
|
137
216
|
` if (__dison_classScopeCtx) for (const f of __dison_classScopeCtx) {\n` +
|
|
217
|
+
` __disonApplyPending(f);\n` +
|
|
138
218
|
` const b = f.binds.get(typeKey);\n` +
|
|
139
|
-
` if (b) return b;\n` +
|
|
219
|
+
` if (b) return b.f;\n` +
|
|
140
220
|
` }\n` +
|
|
141
|
-
`
|
|
221
|
+
` __disonApplyPending(__DISON_GLOBAL);\n` +
|
|
222
|
+
` return TYPE_BINDINGS.get(typeKey)?.f;\n` +
|
|
142
223
|
`}\n\n` +
|
|
143
224
|
`// Scope-aware bind resolution. bind chains (bind A = B; bind B = C; resolves A to C).\n` +
|
|
144
225
|
`// Each hop of the chain also consults the current frame chain -> class -> global.\n` +
|
|
@@ -177,21 +258,32 @@ export function generateRuntimeDeclarations(exportKeyword) {
|
|
|
177
258
|
`// current frame, populate its bind/override via setup, and enter it (enterWith). The return\n` +
|
|
178
259
|
`// value has Symbol.dispose, so a \`using\` declaration restores the previous frame at the end\n` +
|
|
179
260
|
`// of the enclosing block. setup uses the bind/override helpers to add the deltas.\n` +
|
|
261
|
+
`function __disonEnterFrame(frame: __DisonFrame): { [Symbol.dispose](): void } {\n` +
|
|
262
|
+
` const prev = __dison_als.getStore();\n` +
|
|
263
|
+
` __dison_als.enterWith(frame);\n` +
|
|
264
|
+
` return { [Symbol.dispose]() { __dison_als.enterWith(prev); } };\n` +
|
|
265
|
+
`}\n` +
|
|
266
|
+
`// The setup callback receives key THUNKS (forward-reference safe within the block).\n` +
|
|
267
|
+
`${E}function __disonEnterScopeLazy(\n` +
|
|
268
|
+
` setup: (bind: (key: () => __DisonKey, factory: __DisonFactory) => void, override: (cls: () => Function, prop: string, factory: __DisonFactory) => void) => void\n` +
|
|
269
|
+
`): { [Symbol.dispose](): void } {\n` +
|
|
270
|
+
` const frame = __disonNewFrame(__dison_als.getStore());\n` +
|
|
271
|
+
` setup(\n` +
|
|
272
|
+
` (key, factory) => { __disonPendBind(frame, key, factory); },\n` +
|
|
273
|
+
` (cls, prop, factory) => { __disonPendOverride(frame, cls, prop, factory); }\n` +
|
|
274
|
+
` );\n` +
|
|
275
|
+
` return __disonEnterFrame(frame);\n` +
|
|
276
|
+
`}\n` +
|
|
277
|
+
`// Backward-compatible variant taking eager key values (generated by older CLI versions).\n` +
|
|
180
278
|
`${E}function __disonEnterScope(\n` +
|
|
181
279
|
` setup: (bind: (key: __DisonKey, factory: __DisonFactory) => void, override: (cls: Function, prop: string, factory: __DisonFactory) => void) => void\n` +
|
|
182
280
|
`): { [Symbol.dispose](): void } {\n` +
|
|
183
|
-
` const frame
|
|
281
|
+
` const frame = __disonNewFrame(__dison_als.getStore());\n` +
|
|
184
282
|
` setup(\n` +
|
|
185
|
-
` (key, factory) => { frame
|
|
186
|
-
` (cls, prop, factory) => {\n` +
|
|
187
|
-
` let e = frame.overrides.get(cls);\n` +
|
|
188
|
-
` if (!e) { e = {}; frame.overrides.set(cls, e); }\n` +
|
|
189
|
-
` e[prop] = factory;\n` +
|
|
190
|
-
` }\n` +
|
|
283
|
+
` (key, factory) => { __disonPendBind(frame, () => key, factory); },\n` +
|
|
284
|
+
` (cls, prop, factory) => { __disonPendOverride(frame, () => cls, prop, factory); }\n` +
|
|
191
285
|
` );\n` +
|
|
192
|
-
`
|
|
193
|
-
` __dison_als.enterWith(frame);\n` +
|
|
194
|
-
` return { [Symbol.dispose]() { __dison_als.enterWith(prev); } };\n` +
|
|
286
|
+
` return __disonEnterFrame(frame);\n` +
|
|
195
287
|
`}\n`);
|
|
196
288
|
}
|
|
197
289
|
// 複数ファイルでランタイム状態を共有するための共有ランタイムモジュールのソース。
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,gBAAgB;AAChB,wEAAwE;AACxE,EAAE;AACF,qDAAqD;AACrD,2CAA2C;AAC3C,kCAAkC;AAClC,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,iCAAiC;AACjC,EAAE;AACF,uDAAuD;AACvD,4DAA4D;AAC5D,yDAAyD;AACzD,iDAAiD;AACjD,4CAA4C;AAC5C,oDAAoD;AACpD,sCAAsC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED