@alloy-js/core 0.6.0 → 0.8.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/CHANGELOG.md +37 -0
- package/babel.config.cjs +1 -4
- package/dist/src/binder.d.ts +15 -13
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +34 -34
- package/dist/src/binder.js.map +1 -1
- package/dist/src/code.d.ts +11 -2
- package/dist/src/code.d.ts.map +1 -1
- package/dist/src/code.js +27 -2
- package/dist/src/code.js.map +1 -1
- package/dist/src/components/Block.d.ts +2 -2
- package/dist/src/components/Block.d.ts.map +1 -1
- package/dist/src/components/Block.js +6 -5
- package/dist/src/components/Block.js.map +1 -1
- package/dist/src/components/Declaration.d.ts +31 -7
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +15 -7
- package/dist/src/components/Declaration.js.map +1 -1
- package/dist/src/components/For.d.ts +6 -0
- package/dist/src/components/For.d.ts.map +1 -1
- package/dist/src/components/For.js +2 -3
- package/dist/src/components/For.js.map +1 -1
- package/dist/src/components/Indent.d.ts +29 -1
- package/dist/src/components/Indent.d.ts.map +1 -1
- package/dist/src/components/Indent.js +7 -2
- package/dist/src/components/Indent.js.map +1 -1
- package/dist/src/components/List.d.ts +7 -3
- package/dist/src/components/List.d.ts.map +1 -1
- package/dist/src/components/List.js +1 -16
- package/dist/src/components/List.js.map +1 -1
- package/dist/src/components/MemberDeclaration.d.ts +35 -5
- package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
- package/dist/src/components/MemberDeclaration.js +18 -7
- package/dist/src/components/MemberDeclaration.js.map +1 -1
- package/dist/src/components/MemberScope.d.ts +2 -0
- package/dist/src/components/MemberScope.d.ts.map +1 -1
- package/dist/src/components/MemberScope.js +2 -0
- package/dist/src/components/MemberScope.js.map +1 -1
- package/dist/src/components/Prose.d.ts +10 -0
- package/dist/src/components/Prose.d.ts.map +1 -0
- package/dist/src/components/Prose.js +23 -0
- package/dist/src/components/Prose.js.map +1 -0
- package/dist/src/components/Scope.d.ts +33 -2
- package/dist/src/components/Scope.d.ts.map +1 -1
- package/dist/src/components/Scope.js +20 -4
- package/dist/src/components/Scope.js.map +1 -1
- package/dist/src/components/SourceFile.d.ts +5 -0
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +10 -1
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +1 -0
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/components/stc/index.d.ts +19 -95
- package/dist/src/components/stc/index.d.ts.map +1 -1
- package/dist/src/components/stc/index.js +3 -6
- package/dist/src/components/stc/index.js.map +1 -1
- package/dist/src/components/stc/sti.d.ts +9 -0
- package/dist/src/components/stc/sti.d.ts.map +1 -0
- package/dist/src/components/stc/sti.js +10 -0
- package/dist/src/components/stc/sti.js.map +1 -0
- package/dist/src/context/assignment.d.ts +6 -0
- package/dist/src/context/assignment.d.ts.map +1 -1
- package/dist/src/context/assignment.js +7 -0
- package/dist/src/context/assignment.js.map +1 -1
- package/dist/src/context.d.ts +2 -0
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +12 -9
- package/dist/src/context.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/jsx-runtime.d.ts +98 -1
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +46 -1
- package/dist/src/jsx-runtime.js.map +1 -1
- package/dist/src/render.d.ts.map +1 -1
- package/dist/src/render.js +12 -0
- package/dist/src/render.js.map +1 -1
- package/dist/src/stc.d.ts +5 -7
- package/dist/src/stc.d.ts.map +1 -1
- package/dist/src/stc.js +11 -23
- package/dist/src/stc.js.map +1 -1
- package/dist/src/sti.d.ts +11 -0
- package/dist/src/sti.d.ts.map +1 -0
- package/dist/src/sti.js +31 -0
- package/dist/src/sti.js.map +1 -0
- package/dist/src/tap.d.ts +69 -6
- package/dist/src/tap.d.ts.map +1 -1
- package/dist/src/tap.js +70 -0
- package/dist/src/tap.js.map +1 -1
- package/dist/src/utils.d.ts +5 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +20 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/src/write-output.js +3 -3
- package/dist/src/write-output.js.map +1 -1
- package/dist/test/components/prose.test.d.ts +2 -0
- package/dist/test/components/prose.test.d.ts.map +1 -0
- package/dist/test/props-with-defaults.test.d.ts +2 -0
- package/dist/test/props-with-defaults.test.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/binder.ts +46 -40
- package/src/code.ts +37 -3
- package/src/components/Block.tsx +3 -6
- package/src/components/Declaration.tsx +43 -11
- package/src/components/For.tsx +10 -3
- package/src/components/Indent.tsx +38 -5
- package/src/components/List.tsx +14 -40
- package/src/components/MemberDeclaration.tsx +51 -12
- package/src/components/MemberScope.tsx +2 -0
- package/src/components/Prose.tsx +35 -0
- package/src/components/Scope.tsx +45 -5
- package/src/components/SourceFile.tsx +10 -0
- package/src/components/index.tsx +1 -0
- package/src/components/stc/index.ts +3 -6
- package/src/components/stc/sti.ts +10 -0
- package/src/context/assignment.ts +7 -1
- package/src/context.ts +15 -11
- package/src/index.ts +1 -0
- package/src/jsx-runtime.ts +162 -0
- package/src/render.ts +14 -0
- package/src/stc.ts +35 -56
- package/src/sti.ts +63 -0
- package/src/tap.ts +69 -6
- package/src/{utils.ts → utils.tsx} +45 -0
- package/src/write-output.ts +3 -3
- package/temp/api.json +1563 -393
- package/test/components/declaration.test.tsx +1 -1
- package/test/components/prose.test.tsx +36 -0
- package/test/components/source-file.test.tsx +17 -0
- package/test/props-with-defaults.test.ts +97 -0
- package/test/symbols.test.ts +14 -33
- package/vitest.config.ts +2 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# Changelog - @alloy-js/core
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- [#76](https://github.com/alloy-framework/alloy/pull/76) No longer validates that instance member symbols are referenced inside the instance member scope. Languages may allow refernecing instance member symbols in a variety of ways (e.g. TypeScript allows referencing private instance symbols in a private instance symbol scope).
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- [#67](https://github.com/alloy-framework/alloy/pull/67) Add metadata record to symbols and scopes for applications to store arbitrary information about them. Various declaration and scope forms have an additional prop to set this metadata.
|
|
12
|
+
- [#67](https://github.com/alloy-framework/alloy/pull/67) Scope name is now optional. Many scopes don't have names.
|
|
13
|
+
- [#74](https://github.com/alloy-framework/alloy/pull/74) Add `defaultProps` to allow setting default prop values.
|
|
14
|
+
- [#66](https://github.com/alloy-framework/alloy/pull/66) Add `text` helper that processes a string template similar to a JSX template with respect to whitespace handling.
|
|
15
|
+
- [#66](https://github.com/alloy-framework/alloy/pull/66) Add `ProviderStc` to context for providing context inside string template components.
|
|
16
|
+
- [#68](https://github.com/alloy-framework/alloy/pull/68) Add `doubleHardline` as a list joiner boolean prop. Useful for markdown paragraphs or separating declarations with a blank line.
|
|
17
|
+
- [#69](https://github.com/alloy-framework/alloy/pull/69) Add SourceFile `header` prop.
|
|
18
|
+
- [#71](https://github.com/alloy-framework/alloy/pull/71) Add `skipFalsy` prop to `For` component for controlling whether to skip falsy values. Previously this defaulted to true, it now defaults to false (which likely just fixes bugs).
|
|
19
|
+
- [#78](https://github.com/alloy-framework/alloy/pull/78) Add `Prose` component for wrapping string paragraphs at the line width.
|
|
20
|
+
|
|
21
|
+
### Breaking Changes
|
|
22
|
+
|
|
23
|
+
- [#67](https://github.com/alloy-framework/alloy/pull/67) Refkeys no longer default to `refkey(name)`. This behavior is just not very useful and leads to some very confusing behavior especially when multiple same-named symbols exist within a single emit. The old behavior can be achieved by passing the `refkey={refkey(name)}` prop, but this is not recommended.
|
|
24
|
+
- [#67](https://github.com/alloy-framework/alloy/pull/67) DeclarationProps, MemberDeclarationProps, and ScopeProps are now unions in order to properly type check and document the distinct usages of either passing a symbol or props necessary to construct a symbol. Anyone extending these interfaces will need to make a similar split.
|
|
25
|
+
- [#74](https://github.com/alloy-framework/alloy/pull/74) Remove plural `refkeys` prop. Can now pass an array for the `refkey` prop.
|
|
26
|
+
- [#68](https://github.com/alloy-framework/alloy/pull/68) Indent component no longer takes `break` prop. Instead, pass `hardline`, `softline`, `line`, or `literalline` boolean props.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## 0.7.0
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
|
|
33
|
+
- [#62](https://github.com/alloy-framework/alloy/pull/62) Fix writeOutput failing to make new files
|
|
34
|
+
|
|
35
|
+
### Breaking Changes
|
|
36
|
+
|
|
37
|
+
- [#61](https://github.com/alloy-framework/alloy/pull/61) Symbols now allow for multiple refkeys. The `refkey` property has been removed, however the refkey prop remains on declaration components and the refkey option remains for the binder's createSymbol, so the breakage should be limited to code which interacts directly with symbols."
|
|
38
|
+
|
|
39
|
+
|
|
3
40
|
## 0.6.0
|
|
4
41
|
|
|
5
42
|
### Bug Fixes
|
package/babel.config.cjs
CHANGED
package/dist/src/binder.d.ts
CHANGED
|
@@ -74,9 +74,9 @@ export interface OutputSymbol {
|
|
|
74
74
|
*/
|
|
75
75
|
binder: Binder;
|
|
76
76
|
/**
|
|
77
|
-
*
|
|
77
|
+
* The unique values that reference this symbol.
|
|
78
78
|
*/
|
|
79
|
-
|
|
79
|
+
refkeys: Refkey[];
|
|
80
80
|
/**
|
|
81
81
|
* The instance members available on this symbol.
|
|
82
82
|
*
|
|
@@ -100,6 +100,10 @@ export interface OutputSymbol {
|
|
|
100
100
|
* one static member symbol in the output (i.e., the symbol is unique).
|
|
101
101
|
*/
|
|
102
102
|
staticMemberScope?: OutputScope;
|
|
103
|
+
/**
|
|
104
|
+
* Additional custom metadata about this symbol.
|
|
105
|
+
*/
|
|
106
|
+
metadata: Record<string, unknown>;
|
|
103
107
|
}
|
|
104
108
|
/**
|
|
105
109
|
* Flags that describe an output scope.
|
|
@@ -143,7 +147,7 @@ export interface OutputScope {
|
|
|
143
147
|
* The kind of scope. Subtypes will likely provide a set of known scope kinds.
|
|
144
148
|
* The kind is not used by the binder itself.
|
|
145
149
|
*/
|
|
146
|
-
kind
|
|
150
|
+
kind?: string;
|
|
147
151
|
/**
|
|
148
152
|
* The name of the scope.
|
|
149
153
|
*/
|
|
@@ -185,8 +189,9 @@ export interface OutputScope {
|
|
|
185
189
|
export type CreateSymbolOptions<T extends OutputSymbol = OutputSymbol> = {
|
|
186
190
|
name: string;
|
|
187
191
|
scope?: OutputScope;
|
|
188
|
-
refkey?: Refkey;
|
|
192
|
+
refkey?: Refkey | Refkey[];
|
|
189
193
|
flags?: OutputSymbolFlags;
|
|
194
|
+
metadata?: Record<string, unknown>;
|
|
190
195
|
} & Omit<T, keyof OutputSymbol>;
|
|
191
196
|
export type CreateScopeOptions<T extends OutputScope = OutputScope> = {
|
|
192
197
|
kind: T["kind"];
|
|
@@ -194,6 +199,7 @@ export type CreateScopeOptions<T extends OutputScope = OutputScope> = {
|
|
|
194
199
|
parent?: OutputScope | undefined;
|
|
195
200
|
flags?: OutputScopeFlags;
|
|
196
201
|
owner?: OutputSymbol;
|
|
202
|
+
metadata?: Record<string, unknown>;
|
|
197
203
|
} & Omit<T, keyof OutputScope>;
|
|
198
204
|
/**
|
|
199
205
|
* The binder tracks all output scopes and symbols. Scopes are nested containers
|
|
@@ -293,15 +299,11 @@ export interface Binder {
|
|
|
293
299
|
* When we resolve the refkey for `bar` from within `namespace scope 2`, we will get the following
|
|
294
300
|
* resolution result:
|
|
295
301
|
*
|
|
296
|
-
* **targetDeclaration**: symbol bar, the symbol we resolved.
|
|
297
|
-
*
|
|
298
|
-
* **
|
|
299
|
-
*
|
|
300
|
-
* **
|
|
301
|
-
*
|
|
302
|
-
* **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
|
|
303
|
-
*
|
|
304
|
-
* **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
|
|
302
|
+
* * **targetDeclaration**: symbol bar, the symbol we resolved.
|
|
303
|
+
* * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.
|
|
304
|
+
* * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.
|
|
305
|
+
* * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
|
|
306
|
+
* * **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
|
|
305
307
|
*/
|
|
306
308
|
export interface ResolutionResult<TScope extends OutputScope, TSymbol extends OutputSymbol> {
|
|
307
309
|
/**
|
package/dist/src/binder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,GAAG,EAGJ,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAU,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,IAAI;IAER;;;OAGG;IACH,uBAAuB,IAAS;IAEhC;;;OAGG;IACH,qBAAqB,IAAS;IAE9B;;OAEG;IACH,eAAe,IAAkD;IAEjE;;;OAGG;IACH,cAAc,IAAS;IAEvB;;;OAGG;IACH,YAAY,IAAS;IAErB;;OAEG;IACH,MAAM,KAAgC;CACvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,iBAAiB,CAAC;IAEzB;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"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"}
|
package/dist/src/binder.js
CHANGED
|
@@ -100,15 +100,11 @@ export let OutputScopeFlags = /*#__PURE__*/function (OutputScopeFlags) {
|
|
|
100
100
|
* When we resolve the refkey for `bar` from within `namespace scope 2`, we will get the following
|
|
101
101
|
* resolution result:
|
|
102
102
|
*
|
|
103
|
-
* **targetDeclaration**: symbol bar, the symbol we resolved.
|
|
104
|
-
*
|
|
105
|
-
* **
|
|
106
|
-
*
|
|
107
|
-
* **
|
|
108
|
-
*
|
|
109
|
-
* **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
|
|
110
|
-
*
|
|
111
|
-
* **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
|
|
103
|
+
* * **targetDeclaration**: symbol bar, the symbol we resolved.
|
|
104
|
+
* * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.
|
|
105
|
+
* * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.
|
|
106
|
+
* * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
|
|
107
|
+
* * **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
|
|
112
108
|
*/
|
|
113
109
|
|
|
114
110
|
export function createOutputBinder(options = {}) {
|
|
@@ -149,6 +145,7 @@ export function createOutputBinder(options = {}) {
|
|
|
149
145
|
parent,
|
|
150
146
|
owner,
|
|
151
147
|
flags = OutputScopeFlags.None,
|
|
148
|
+
metadata = {},
|
|
152
149
|
...rest
|
|
153
150
|
} = args;
|
|
154
151
|
if (flags & OutputScopeFlags.MemberScope) {
|
|
@@ -179,6 +176,7 @@ export function createOutputBinder(options = {}) {
|
|
|
179
176
|
flags,
|
|
180
177
|
owner,
|
|
181
178
|
binder,
|
|
179
|
+
metadata,
|
|
182
180
|
...rest,
|
|
183
181
|
getSymbolNames: symbolNames(symbols)
|
|
184
182
|
});
|
|
@@ -200,8 +198,10 @@ export function createOutputBinder(options = {}) {
|
|
|
200
198
|
scope = useDefaultScope(args.flags),
|
|
201
199
|
refkey,
|
|
202
200
|
flags = OutputSymbolFlags.None,
|
|
201
|
+
metadata = {},
|
|
203
202
|
...rest
|
|
204
203
|
} = args;
|
|
204
|
+
const allRefkeys = [refkey ?? []].flat();
|
|
205
205
|
if (!scope) {
|
|
206
206
|
throw new Error("No scope was provided and no scope could be found in context");
|
|
207
207
|
}
|
|
@@ -217,9 +217,10 @@ export function createOutputBinder(options = {}) {
|
|
|
217
217
|
originalName: name,
|
|
218
218
|
name: name,
|
|
219
219
|
scope,
|
|
220
|
-
|
|
220
|
+
refkeys: allRefkeys,
|
|
221
221
|
binder,
|
|
222
222
|
flags,
|
|
223
|
+
metadata,
|
|
223
224
|
...rest
|
|
224
225
|
});
|
|
225
226
|
if (args.flags && args.flags & OutputSymbolFlags.InstanceMemberContainer) {
|
|
@@ -241,7 +242,9 @@ export function createOutputBinder(options = {}) {
|
|
|
241
242
|
});
|
|
242
243
|
}
|
|
243
244
|
scope.symbols.add(symbol);
|
|
244
|
-
|
|
245
|
+
for (const refkey of allRefkeys) {
|
|
246
|
+
scope.symbolsByRefkey.set(refkey, symbol);
|
|
247
|
+
}
|
|
245
248
|
deconflict(symbol);
|
|
246
249
|
notifyRefkey(symbol);
|
|
247
250
|
return symbol;
|
|
@@ -251,9 +254,11 @@ export function createOutputBinder(options = {}) {
|
|
|
251
254
|
if (!refkey) {
|
|
252
255
|
return;
|
|
253
256
|
}
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
|
|
257
|
+
for (const refkey of symbol.refkeys) {
|
|
258
|
+
const resolution = waitingDeclarations.get(refkey);
|
|
259
|
+
if (!resolution) return;
|
|
260
|
+
resolution.value = undefined;
|
|
261
|
+
}
|
|
257
262
|
}
|
|
258
263
|
function instantiateSymbolInto(source, target) {
|
|
259
264
|
if (~source.flags & OutputSymbolFlags.InstanceMemberContainer) {
|
|
@@ -268,7 +273,7 @@ export function createOutputBinder(options = {}) {
|
|
|
268
273
|
createSymbol({
|
|
269
274
|
name: sym.name,
|
|
270
275
|
scope: target.instanceMemberScope,
|
|
271
|
-
refkey: refkey(target.
|
|
276
|
+
refkey: [refkey(target.refkeys[0], sym.refkeys[0])],
|
|
272
277
|
flags: sym.flags | OutputSymbolFlags.InstanceMember
|
|
273
278
|
});
|
|
274
279
|
}
|
|
@@ -319,10 +324,6 @@ export function createOutputBinder(options = {}) {
|
|
|
319
324
|
}
|
|
320
325
|
function buildResult(currentScope, currentMemberScope, targetDeclarationBase) {
|
|
321
326
|
if (targetDeclarationBase.flags & OutputSymbolFlags.InstanceMember) {
|
|
322
|
-
if (targetDeclarationBase.scope !== currentMemberScope) {
|
|
323
|
-
throw new Error("Cannot resolve member symbols from a different member scope");
|
|
324
|
-
}
|
|
325
|
-
|
|
326
327
|
// todo: handle referencing nested objects by refkey
|
|
327
328
|
return {
|
|
328
329
|
pathUp: [],
|
|
@@ -404,22 +405,21 @@ export function createOutputBinder(options = {}) {
|
|
|
404
405
|
}
|
|
405
406
|
function notifyRefkey(symbol) {
|
|
406
407
|
effect(() => {
|
|
407
|
-
const refkey
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
signal.value = symbol;
|
|
415
|
-
}
|
|
408
|
+
for (const refkey of symbol.refkeys) {
|
|
409
|
+
// notify those waiting for this refkey
|
|
410
|
+
knownDeclarations.set(refkey, symbol);
|
|
411
|
+
if (waitingDeclarations.has(refkey)) {
|
|
412
|
+
const signal = waitingDeclarations.get(refkey);
|
|
413
|
+
signal.value = symbol;
|
|
414
|
+
}
|
|
416
415
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
416
|
+
// notify those waiting for this symbol name
|
|
417
|
+
const waitingScope = waitingSymbolNames.get(symbol.scope);
|
|
418
|
+
if (waitingScope) {
|
|
419
|
+
const waitingName = waitingScope.get(symbol.name);
|
|
420
|
+
if (waitingName) {
|
|
421
|
+
waitingName.value = symbol;
|
|
422
|
+
}
|
|
423
423
|
}
|
|
424
424
|
}
|
|
425
425
|
});
|
package/dist/src/binder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binder.js","names":["computed","effect","reactive","ref","shallowRef","useBinder","useMemberScope","useScope","memo","untrack","refkey","OutputSymbolFlags","OutputScopeFlags","createOutputBinder","options","binder","createScope","createSymbol","deleteSymbol","resolveDeclarationByKey","addStaticMembersToSymbol","addInstanceMembersToSymbol","instantiateSymbolInto","findSymbolName","findScopeName","resolveFQN","globalScope","undefined","globalSymbols","Set","kind","name","symbols","symbolsByRefkey","Map","children","parent","flags","None","getSymbolNames","symbolNames","knownDeclarations","waitingDeclarations","waitingSymbolNames","waitingScopeNames","args","owner","rest","MemberScope","Error","parentScope","scope","add","has","waiting","get","value","useDefaultScope","Member","StaticMemberScope","InstanceMember","StaticMember","symbol","originalName","InstanceMemberContainer","instanceMemberScope","InstanceMemberScope","StaticMemberContainer","staticMemberScope","set","deconflict","notifyRefkey","delete","resolution","source","target","sym","currentScope","currentMemberScope","key","targetDeclaration","buildResult","waitForRefkey","targetDeclarationBase","pathUp","pathDown","memberPath","commonScope","scopeChain","targetChain","scopeAndMemberChain","currentChain","diffStart","slice","length","at","result","currentSymbol","unshift","startScope","chain","existingNames","filter","nameConflictResolver","i","cb","declSignal","signal","waitingScope","waitingName","symRef","child","scopeRef","findScopeOrSymbolName","fqn","parts","match","base","op","resolve","memberScope","instanceMembers","createSymbolsSymbol","Symbol","getSymbolCreator","creator","getSymbolCreatorSymbol","names","values","staticMembers"],"sources":["../../src/binder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"binder.js","names":["computed","effect","reactive","ref","shallowRef","useBinder","useMemberScope","useScope","memo","untrack","refkey","OutputSymbolFlags","OutputScopeFlags","createOutputBinder","options","binder","createScope","createSymbol","deleteSymbol","resolveDeclarationByKey","addStaticMembersToSymbol","addInstanceMembersToSymbol","instantiateSymbolInto","findSymbolName","findScopeName","resolveFQN","globalScope","undefined","globalSymbols","Set","kind","name","symbols","symbolsByRefkey","Map","children","parent","flags","None","getSymbolNames","symbolNames","knownDeclarations","waitingDeclarations","waitingSymbolNames","waitingScopeNames","args","owner","metadata","rest","MemberScope","Error","parentScope","scope","add","has","waiting","get","value","useDefaultScope","allRefkeys","flat","Member","StaticMemberScope","InstanceMember","StaticMember","symbol","originalName","refkeys","InstanceMemberContainer","instanceMemberScope","InstanceMemberScope","StaticMemberContainer","staticMemberScope","set","deconflict","notifyRefkey","delete","resolution","source","target","sym","currentScope","currentMemberScope","key","targetDeclaration","buildResult","waitForRefkey","targetDeclarationBase","pathUp","pathDown","memberPath","commonScope","scopeChain","targetChain","scopeAndMemberChain","currentChain","diffStart","slice","length","at","result","currentSymbol","unshift","startScope","chain","existingNames","filter","nameConflictResolver","i","cb","declSignal","signal","waitingScope","waitingName","symRef","child","scopeRef","findScopeOrSymbolName","fqn","parts","match","base","op","resolve","memberScope","instanceMembers","createSymbolsSymbol","Symbol","getSymbolCreator","creator","getSymbolCreatorSymbol","names","values","staticMembers"],"sources":["../../src/binder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/src/code.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function
|
|
1
|
+
import { Children } from "./jsx-runtime.js";
|
|
2
|
+
export declare function text(template: TemplateStringsArray, ...substitutions: Children[]): Children;
|
|
3
|
+
/**
|
|
4
|
+
* Turn the provided string template into Children by replacing literal line
|
|
5
|
+
* breaks with hardlines and automatically indenting indented content. Similar
|
|
6
|
+
* in spirit to the `<code>` element in HTML.
|
|
7
|
+
*
|
|
8
|
+
* @see {@link text} for a similar function which treats whitespace similar to
|
|
9
|
+
* JSX template bodies.
|
|
10
|
+
*/
|
|
11
|
+
export declare function code(template: TemplateStringsArray, ...substitutions: Children[]): Children;
|
|
3
12
|
//# sourceMappingURL=code.d.ts.map
|
package/dist/src/code.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEnD,wBAAgB,IAAI,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,QAAQ,CAmBV;AAQD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,QAAQ,CAiFV"}
|
package/dist/src/code.js
CHANGED
|
@@ -1,7 +1,32 @@
|
|
|
1
1
|
// this code is split into a tokenizer and a parser of sorts because I feel like
|
|
2
|
-
// it should be
|
|
2
|
+
// it should be possible to share logic between this and the babel transform, but
|
|
3
3
|
// this is an exercise for the future.
|
|
4
|
-
import { hbr, indent } from "./components/stc/
|
|
4
|
+
import { hbr, indent } from "./components/stc/sti.js";
|
|
5
|
+
export function text(template, ...substitutions) {
|
|
6
|
+
const children = [];
|
|
7
|
+
// push the literal parts and the substitutions into the children array. The
|
|
8
|
+
// first part has all leading whitespace removed, the last part has all
|
|
9
|
+
// trailing whitespace removed, and each part in the middle replaces any
|
|
10
|
+
// amount of whitespace with a single space.
|
|
11
|
+
|
|
12
|
+
for (let i = 0; i < template.length; i++) {
|
|
13
|
+
let part = template[i];
|
|
14
|
+
part = part.replace(/(^(\s*\r?\n\s*)+)|((\s*\r?\n\s*)+$)/g, "").replace(/(\s*\r?\n\s*)+/g, " ");
|
|
15
|
+
children.push(part);
|
|
16
|
+
if (i < substitutions.length) {
|
|
17
|
+
children.push(substitutions[i]);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return children;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Turn the provided string template into Children by replacing literal line
|
|
24
|
+
* breaks with hardlines and automatically indenting indented content. Similar
|
|
25
|
+
* in spirit to the `<code>` element in HTML.
|
|
26
|
+
*
|
|
27
|
+
* @see {@link text} for a similar function which treats whitespace similar to
|
|
28
|
+
* JSX template bodies.
|
|
29
|
+
*/
|
|
5
30
|
export function code(template, ...substitutions) {
|
|
6
31
|
const indentNodes = [{
|
|
7
32
|
kind: "indent",
|
package/dist/src/code.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","names":["hbr","indent","
|
|
1
|
+
{"version":3,"file":"code.js","names":["hbr","indent","text","template","substitutions","children","i","length","part","replace","push","code","indentNodes","kind","pendingLines","child","childTokens","indentationLevel","pushIndent","popIndent","currentIndent","at","line","flushLines","value","childNodesFor","indentNode","map","newIndent","times","pop","str","index","flat","newline","indentStack","level","literalIndent","processLiteralString","undefined","pos","lines","split","lineTokens","match","shift","trimStart","lineNum","entries","lineIndent","startIndent"],"sources":["../../src/code.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA;AACA;AACA,SAASA,GAAG,EAAEC,MAAM,QAAQ,yBAAyB;AAGrD,OAAO,SAASC,IAAIA,CAClBC,QAA8B,EAC9B,GAAGC,aAAyB,EAClB;EACV,MAAMC,QAAQ,GAAG,EAAE;EACnB;EACA;EACA;EACA;;EAEA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;IACxC,IAAIE,IAAI,GAAGL,QAAQ,CAACG,CAAC,CAAC;IACtBE,IAAI,GAAGA,IAAI,CACRC,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC,CACnDA,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;IAClCJ,QAAQ,CAACK,IAAI,CAACF,IAAI,CAAC;IACnB,IAAIF,CAAC,GAAGF,aAAa,CAACG,MAAM,EAAE;MAC5BF,QAAQ,CAACK,IAAI,CAACN,aAAa,CAACE,CAAC,CAAC,CAAC;IACjC;EACF;EAEA,OAAOD,QAAQ;AACjB;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,IAAIA,CAClBR,QAA8B,EAC9B,GAAGC,aAAyB,EAClB;EACV,MAAMQ,WAA8B,GAAG,CACrC;IACEC,IAAI,EAAE,QAAQ;IACdR,QAAQ,EAAE,EAAE;IACZS,YAAY,EAAE;EAChB,CAAC,CACF;EAED,KAAK,MAAMC,KAAK,IAAIC,WAAW,CAACb,QAAQ,EAAEC,aAAa,CAAC,EAAE;IACxD,IAAIW,KAAK,CAACE,gBAAgB,GAAGL,WAAW,CAACL,MAAM,GAAG,CAAC,EAAE;MACnD;MACAW,UAAU,CAAC,CAAC;IACd,CAAC,MAAM,IAAIH,KAAK,CAACE,gBAAgB,GAAGL,WAAW,CAACL,MAAM,GAAG,CAAC,EAAE;MAC1DY,SAAS,CAACJ,KAAK,CAAC;IAClB;IAEA,MAAMK,aAAa,GAAGR,WAAW,CAACS,EAAE,CAAC,CAAC,CAAC,CAAE;IACzC,IAAIN,KAAK,CAACF,IAAI,KAAK,MAAM,EAAE;MACzBO,aAAa,CAACN,YAAY,CAACJ,IAAI,CAACK,KAAK,CAACO,IAAI,CAAC;IAC7C,CAAC,MAAM;MACLC,UAAU,CAAC,CAAC;MACZH,aAAa,CAACf,QAAQ,CAACK,IAAI,CAACK,KAAK,CAACS,KAAK,CAAC;IAC1C;EACF;EACAL,SAAS,CAAC,CAAC;EACXI,UAAU,CAAC,CAAC;EAEZ,OAAOE,aAAa,CAACb,WAAW,CAAC,CAAC,CAAC,CAAC;EAEpC,SAASa,aAAaA,CAACC,UAA2B,EAAW;IAC3D,OAAOA,UAAU,CAACrB,QAAQ,CAACsB,GAAG,CAAEZ,KAAK,IAAK;MACxC,IACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACbA,KAAK,CAASF,IAAI,KAAK,QAAQ,EAChC;QACA,OAAOZ,MAAM,CAAC;UAAEI,QAAQ,EAAEoB,aAAa,CAACV,KAAwB;QAAE,CAAC,CAAC;MACtE,CAAC,MAAM;QACL,OAAOA,KAAK;MACd;IACF,CAAC,CAAC;EACJ;EAEA,SAASG,UAAUA,CAAA,EAAG;IACpBK,UAAU,CAAC,CAAC;IACZ,MAAMK,SAA0B,GAAG;MACjCf,IAAI,EAAE,QAAQ;MACdR,QAAQ,EAAE,EAAE;MACZS,YAAY,EAAE,CAAC,EAAE;IACnB,CAAC;IACDF,WAAW,CAACS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAEhB,QAAQ,CAACK,IAAI,CAACkB,SAAS,CAAC;IAC5ChB,WAAW,CAACF,IAAI,CAACkB,SAAS,CAAC;EAC7B;EAEA,SAAST,SAASA,CAACJ,KAAkB,EAAE;IACrC;IACA,MAAMc,KAAK,GACTd,KAAK,GACHH,WAAW,CAACL,MAAM,GAAGQ,KAAK,CAACE,gBAAgB,GAAG,CAAC,GAC/CL,WAAW,CAACL,MAAM,GAAG,CAAC;IAC1B,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuB,KAAK,EAAEvB,CAAC,EAAE,EAAE;MAC9BiB,UAAU,CAAC,CAAC;MACZX,WAAW,CAACkB,GAAG,CAAC,CAAC;IACnB;IACA,IAAIf,KAAK,EAAE;MACT;MACAH,WAAW,CAACS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAEP,YAAY,CAACJ,IAAI,CAAC,EAAE,CAAC;IAC3C;EACF;EACA,SAASa,UAAUA,CAAA,EAAG;IACpB,MAAMH,aAAa,GAAGR,WAAW,CAACS,EAAE,CAAC,CAAC,CAAC,CAAE;IACzCD,aAAa,CAACf,QAAQ,CAACK,IAAI,CACzB,GAAGU,aAAa,CAACN,YAAY,CAC1Ba,GAAG,CAAC,CAACI,GAAG,EAAEC,KAAK,KACdA,KAAK,GAAGZ,aAAa,CAACN,YAAY,CAACP,MAAM,GAAG,CAAC,GAAG,CAACwB,GAAG,EAAE/B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC+B,GAAG,CACrE,CAAC,CACAE,IAAI,CAAC,CACV,CAAC;IACDb,aAAa,CAACN,YAAY,GAAG,EAAE;EACjC;AACF;AAmBA,UAAUE,WAAWA,CACnBb,QAA8B,EAC9BC,aAAyB,EACK;EAC9B,IAAI8B,OAAO,GAAG,KAAK;EACnB,MAAMC,WAAuD,GAAG,CAC9D;IACEC,KAAK,EAAE,CAAC,CAAC;IACTC,aAAa,EAAE;EACjB,CAAC,CACF;EAED,OAAOC,oBAAoB,CACzBnC,QAAQ,CAAC,CAAC,CAAC,EACXC,aAAa,CAACG,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,OACxC,CAAC;EACD2B,OAAO,GAAG,KAAK;EACf,KAAK,IAAI5B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,aAAa,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IAC7C,MAAMW,gBAAgB,GAAGG,aAAa,CAAC,CAAC,CAACgB,KAAK;IAC9C,MAAM;MACJvB,IAAI,EAAE,OAAO;MACbW,KAAK,EAAEpB,aAAa,CAACE,CAAC,CAAC;MACvBW,gBAAgB,EAAEA,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAGA,gBAAgB;MAC7DiB;IACF,CAAC;IACD,OAAOI,oBAAoB,CACzBnC,QAAQ,CAACG,CAAC,GAAG,CAAC,CAAC,EACfA,CAAC,KAAKF,aAAa,CAACG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAGgC,SAC5C,CAAC;IACDL,OAAO,GAAG,KAAK;EACjB;EAEA,SAASI,oBAAoBA,CAC3BvB,KAAa,EACbyB,GAA+B,EAC/B;IACA,MAAMC,KAAK,GAAG1B,KAAK,CAAC2B,KAAK,CAAC,IAAI,CAAC;IAC/B,MAAMC,UAAuB,GAAG,EAAE;IAClC,IAAI,CAACH,GAAG,KAAK,OAAO,IAAIA,GAAG,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,CAAC,CAACG,KAAK,CAAC,OAAO,CAAC,EAAE;MAClE;MACAH,KAAK,CAACI,KAAK,CAAC,CAAC;MACbX,OAAO,GAAG,IAAI;IAChB;IAEA,IACE,CAACM,GAAG,KAAK,MAAM,IAAIA,GAAG,KAAK,MAAM,KACjCC,KAAK,CAACA,KAAK,CAAClC,MAAM,GAAG,CAAC,CAAC,CAACqC,KAAK,CAAC,OAAO,CAAC,EACtC;MACA;MACAH,KAAK,CAACX,GAAG,CAAC,CAAC;MACX,IAAIW,KAAK,CAAClC,MAAM,KAAK,CAAC,IAAIkC,KAAK,CAAC,CAAC,CAAC,CAACK,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACrD;QACA,OAAO,EAAE;MACX;IACF;;IAEA;IACA,KAAK,IAAI,CAACC,OAAO,EAAEzB,IAAI,CAAC,IAAImB,KAAK,CAACO,OAAO,CAAC,CAAC,EAAE;MAC3C,IAAID,OAAO,GAAG,CAAC,EAAE;QACfb,OAAO,GAAG,IAAI;MAChB;MAEA,IAAIA,OAAO,EAAE;QACX,IAAIZ,IAAI,KAAK,EAAE,IAAIF,aAAa,CAAC,CAAC,CAACgB,KAAK,GAAG,CAAC,CAAC,EAAE;UAC7C;UACAO,UAAU,CAACjC,IAAI,CAAC;YACdG,IAAI,EAAE,MAAM;YACZS,IAAI,EAAE,EAAE;YACRL,gBAAgB,EAAEG,aAAa,CAAC,CAAC,CAACgB,KAAK;YACvCF;UACF,CAAC,CAAC;UACF;QACF;QACA,MAAMe,UAAU,GAAG3B,IAAI,CAACsB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;QAChD,MAAMM,WAAW,GAAG9B,aAAa,CAAC,CAAC;QACnC,IAAI6B,UAAU,CAAC1C,MAAM,GAAG2C,WAAW,CAACb,aAAa,CAAC9B,MAAM,EAAE;UACxD4B,WAAW,CAACzB,IAAI,CAAC;YACf0B,KAAK,EAAEc,WAAW,CAACd,KAAK,GAAG,CAAC;YAC5BC,aAAa,EAAEY;UACjB,CAAC,CAAC;QACJ,CAAC,MAAM;UACL,OAAO7B,aAAa,CAAC,CAAC,CAACiB,aAAa,CAAC9B,MAAM,GAAG0C,UAAU,CAAC1C,MAAM,EAAE;YAC/D4B,WAAW,CAACL,GAAG,CAAC,CAAC;UACnB;QACF;QACAR,IAAI,GAAGA,IAAI,CAACwB,SAAS,CAAC,CAAC;QAEvB,MAAM7B,gBAAgB,GAAGG,aAAa,CAAC,CAAC,CAACgB,KAAK;QAC9CO,UAAU,CAACjC,IAAI,CAAC;UACdG,IAAI,EAAE,MAAM;UACZS,IAAI;UACJL,gBAAgB,EAAEA,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAGA,gBAAgB;UAC7DiB;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,MAAMjB,gBAAgB,GAAGG,aAAa,CAAC,CAAC,CAACgB,KAAK;QAC9CO,UAAU,CAACjC,IAAI,CAAC;UACdG,IAAI,EAAE,MAAM;UACZS,IAAI;UACJL,gBAAgB,EAAEA,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAGA,gBAAgB;UAC7DiB;QACF,CAAC,CAAC;MACJ;IACF;IAEA,OAAOS,UAAU;EACnB;EAEA,SAASvB,aAAaA,CAAA,EAAG;IACvB,OAAOe,WAAW,CAACd,EAAE,CAAC,CAAC,CAAC,CAAC;EAC3B;AACF","ignoreList":[]}
|
|
@@ -18,8 +18,8 @@ export interface BlockProps {
|
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Create an indented block of source text. The block has `opener` text which is
|
|
21
|
-
* added prior to the block, which defaults to "
|
|
22
|
-
* added after the block, which defaults to "
|
|
21
|
+
* added prior to the block, which defaults to `"{"`, and `closer` text which is
|
|
22
|
+
* added after the block, which defaults to `"}"`.
|
|
23
23
|
*/
|
|
24
24
|
export declare function Block(props: BlockProps): Children;
|
|
25
25
|
//# sourceMappingURL=Block.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/components/Block.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmC,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/components/Block.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmC,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,YAYtC"}
|
|
@@ -4,21 +4,22 @@ import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
|
4
4
|
import { childrenArray, computed, Indent } from "@alloy-js/core";
|
|
5
5
|
/**
|
|
6
6
|
* Create an indented block of source text. The block has `opener` text which is
|
|
7
|
-
* added prior to the block, which defaults to "
|
|
8
|
-
* added after the block, which defaults to "
|
|
7
|
+
* added prior to the block, which defaults to `"{"`, and `closer` text which is
|
|
8
|
+
* added after the block, which defaults to `"}"`.
|
|
9
9
|
*/
|
|
10
10
|
export function Block(props) {
|
|
11
11
|
const childCount = computed(() => childrenArray(() => props.children).length);
|
|
12
12
|
return _$createIntrinsic("group", {
|
|
13
13
|
get children() {
|
|
14
14
|
return [_$memo(() => _$memo(() => !!props.newline)() && _$createIntrinsic("br", {})), _$memo(() => props.opener ?? "{"), _$createComponent(Indent, {
|
|
15
|
-
get
|
|
16
|
-
return childCount.value
|
|
15
|
+
get softline() {
|
|
16
|
+
return childCount.value === 0;
|
|
17
17
|
},
|
|
18
|
+
trailingBreak: true,
|
|
18
19
|
get children() {
|
|
19
20
|
return props.children;
|
|
20
21
|
}
|
|
21
|
-
}), _$memo(() =>
|
|
22
|
+
}), _$memo(() => props.closer ?? "}")];
|
|
22
23
|
}
|
|
23
24
|
});
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Block.js","names":["childrenArray","computed","Indent","Block","props","childCount","children","length","_$createIntrinsic","_$memo","newline","opener","_$createComponent","
|
|
1
|
+
{"version":3,"file":"Block.js","names":["childrenArray","computed","Indent","Block","props","childCount","children","length","_$createIntrinsic","_$memo","newline","opener","_$createComponent","softline","value","trailingBreak","closer"],"sources":["../../../src/components/Block.tsx"],"sourcesContent":[null],"mappings":";;;AAAA,SAAmBA,aAAa,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,gBAAgB;AAuB1E;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,KAAiB,EAAE;EACvC,MAAMC,UAAU,GAAGJ,QAAQ,CAAC,MAAMD,aAAa,CAAC,MAAMI,KAAK,CAACE,QAAQ,CAAC,CAACC,MAAM,CAAC;EAC7E,OAAAC,iBAAA;IAAA,IAAAF,SAAA;MAAA,QAAAG,MAAA,OAEKA,MAAA,SAAAL,KAAK,CAACM,OAAO,OAAAF,iBAAA,UAAU,GAAAC,MAAA,OACvBL,KAAK,CAACO,MAAM,IAAI,GAAG,GAAAC,iBAAA,CACnBV,MAAM;QAAA,IAACW,QAAQA,CAAA;UAAA,OAAER,UAAU,CAACS,KAAK,KAAK,CAAC;QAAA;QAAEC,aAAa;QAAA,IAAAT,SAAA;UAAA,OACpDF,KAAK,CAACE,QAAQ;QAAA;MAAA,IAAAG,MAAA,OAEhBL,KAAK,CAACY,MAAM,IAAI,GAAG;IAAA;EAAA;AAG1B","ignoreList":[]}
|
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
import { OutputSymbol } from "../binder.js";
|
|
2
2
|
import { Children } from "../jsx-runtime.js";
|
|
3
3
|
import { Refkey } from "../refkey.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Create a declaration by providing an already created symbol. The symbol is
|
|
6
|
+
* merely exposed via {@link DeclarationContext}.
|
|
7
|
+
*/
|
|
8
|
+
export interface DeclarationPropsWithSymbol {
|
|
9
|
+
/**
|
|
10
|
+
* The symbol being declared. When provided, the name, refkey, and metadata
|
|
11
|
+
* props are ignored.
|
|
12
|
+
*/
|
|
13
|
+
symbol: OutputSymbol;
|
|
14
|
+
children?: Children;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a declaration by providing a symbol name and optional symbol metadata.
|
|
18
|
+
*/
|
|
19
|
+
export interface DeclarationPropsWithInfo {
|
|
20
|
+
/**
|
|
21
|
+
* The name of this declaration.
|
|
22
|
+
*/
|
|
23
|
+
name: string;
|
|
24
|
+
/**
|
|
25
|
+
* The unique key or array of unique keys for this declaration.
|
|
26
|
+
*/
|
|
27
|
+
refkey?: Refkey | Refkey[];
|
|
28
|
+
/**
|
|
29
|
+
* Additional metadata for the declared symbol.
|
|
30
|
+
*/
|
|
31
|
+
metadata?: Record<string, unknown>;
|
|
8
32
|
children?: Children;
|
|
9
33
|
}
|
|
34
|
+
export type DeclarationProps = DeclarationPropsWithSymbol | DeclarationPropsWithInfo;
|
|
10
35
|
/**
|
|
11
36
|
* Declares a symbol in the current scope for this component's children.
|
|
12
37
|
*
|
|
@@ -15,11 +40,10 @@ export interface DeclarationProps {
|
|
|
15
40
|
* This component must be called in one of two ways: with a name and an optional
|
|
16
41
|
* refkey, or else passing in the symbol. When called with a name and refkey, a
|
|
17
42
|
* symbol will be created in the current scope (provided by
|
|
18
|
-
* {@link ScopeContext}) with that name and refkey.
|
|
19
|
-
* `refkey(props.name)` is used.
|
|
43
|
+
* {@link ScopeContext}) with that name and refkey.
|
|
20
44
|
*
|
|
21
45
|
* When called with a symbol, that symbol is merely exposed via
|
|
22
|
-
* {@link DeclarationContext
|
|
46
|
+
* {@link DeclarationContext}. It is assumed that the caller of this component
|
|
23
47
|
* has created the symbol with the `createSymbol` API on the
|
|
24
48
|
* {@link BinderContext }.
|
|
25
49
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,GACxB,0BAA0B,GAC1B,wBAAwB,CAAC;AAE7B;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,YA0BlD"}
|