Skip to content

Commit c9cdd8d

Browse files
committed
refactor: Update types.on
1 parent fd8b19b commit c9cdd8d

File tree

2 files changed

+10
-18
lines changed

2 files changed

+10
-18
lines changed

src/fragment.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ export type FragmentMeta = {
1313
const fragmentKey = '_#$_FRAGMENTS_$#_';
1414
let fragmentKeyIndex = 0;
1515

16-
export const createFragmentKey = (on: string) => {
17-
return fragmentKey + '@' + on + '@' + ++fragmentKeyIndex;
16+
export const createFragmentKey = () => {
17+
return fragmentKey + '@' + ++fragmentKeyIndex;
1818
};
1919

2020
export const isFragment = (key: string) => {
@@ -31,7 +31,7 @@ export const fragment = <T extends TemplateObj<K, V>, K extends any, V extends a
3131

3232
// @ts-ignore
3333
return {
34-
[createFragmentKey(option.on)]: <FragmentMeta>{
34+
[createFragmentKey()]: <FragmentMeta>{
3535
on: option.on,
3636
name: option.name,
3737
inline: false,

src/types.ts

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -235,28 +235,20 @@ export class Types<T = never, U = never> {
235235
* }
236236
* ```
237237
*/
238-
on<T1 extends TemplateObj<K, V>, K extends any, V extends any>(on: string | string[], definition: T1): DelegateParam<T1, U, T extends undefined ? undefined : never> {
238+
on<T1 extends TemplateObj<K, V>, K extends any, V extends any>(on: string | string[], body: T1): DelegateParam<T1, U, T extends undefined ? undefined : never> {
239239
const data: Record<string, FragmentMeta> = {};
240-
let fragments: Record<string, Template> = {};
240+
const names = typeof on === 'string' ? [on] : on;
241241

242-
if (typeof on === 'string') {
243-
fragments[on] = definition!;
244-
} else {
245-
on.forEach((key) => {
246-
fragments[key] = definition!;
247-
});
248-
}
249-
250-
Object.keys(fragments).forEach((key) => {
251-
data[createFragmentKey(key)] = {
242+
for (let i = 0; i < names.length; ++i) {
243+
data[createFragmentKey()] = {
252244
name: '',
253-
on: key,
245+
on: names[i],
254246
inline: true,
255-
template: fragments[key],
247+
template: body,
256248
includeParam: this.includeParam,
257249
skipParam: this.skipParam,
258250
};
259-
});
251+
}
260252

261253
// @ts-ignore
262254
return data;

0 commit comments

Comments
 (0)