Skip to content

Commit

Permalink
0.0.885
Browse files Browse the repository at this point in the history
  • Loading branch information
bahrus committed Feb 20, 2025
1 parent 044b68a commit 16a731a
Show file tree
Hide file tree
Showing 61 changed files with 196 additions and 123 deletions.
9 changes: 5 additions & 4 deletions Transform.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {MountObserver} from 'mount-observer/MountObserver.js';
import {RoundaboutReady} from './ts-refs/trans-render/froop/types.js';
import {
PropAttrQueryType, QuenitOfWork, Derivative,
IMountOrchestrator, NumberExpression, InterpolatingExpression,
Expand All @@ -15,7 +16,7 @@ export {UnitOfWork, ITransformer, EngagementCtx, XForm} from './ts-refs/trans-re

export async function Transform<TProps extends {}, TMethods = TProps, TElement = {}>(
target: TransformerTarget,
model: TProps & TMethods,
model: TProps & TMethods & RoundaboutReady,
xform: XForm<TProps, TMethods, TElement> & Info,
options?: TransformOptions
){
Expand All @@ -26,12 +27,12 @@ export async function Transform<TProps extends {}, TMethods = TProps, TElement =

export class Transformer<TProps extends {}, TMethods = TProps, TElement = {}> extends EventTarget implements ITransformer<TProps, TMethods, TElement>{
#mountOrchestrators: Array<MountOrchestrator<TProps, TMethods, TElement>> = [];
#model: TProps & TMethods;
#model: TProps & TMethods & RoundaboutReady;
initializedMods: Set<ModificationUnitOfWork<TProps, TMethods, TElement>> = new Set();
get model(){
return this.#model;
}
async updateModel(newModel: TProps & TMethods){
async updateModel(newModel: TProps & TMethods & RoundaboutReady){
const {options} = this;
const {propagator} = options;
const {___props, ___nestedProps} = propagator!;
Expand All @@ -58,7 +59,7 @@ export class Transformer<TProps extends {}, TMethods = TProps, TElement = {}> ex
}
constructor(
public target: TransformerTarget,
model: TProps & TMethods,
model: TProps & TMethods & RoundaboutReady,
public xform: XForm<TProps, TMethods, TElement> & Info,
public options: TransformOptions,
){
Expand Down
5 changes: 3 additions & 2 deletions demo/Example1.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Model{
greeting: string;
}

const div = document.querySelector('div')!;
const model: Model = {
const model = {
greeting: 'hello'
};
} as any as Model & RoundaboutReady;

Transform<Model>(div, model, {
span: {
Expand Down
7 changes: 4 additions & 3 deletions demo/Example10a.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Model{
greeting: string;
}

const div = document.querySelector('div')!;
const model: Model = {
const model = {
greeting: 'hello'
};
} as Model & RoundaboutReady;

const tr = await Transform<Model>(div, model, {
span: 'greeting',
Expand All @@ -19,5 +20,5 @@ setTimeout(() => {
setTimeout(async () => {
await tr.updateModel({
greeting: 'bye'
})
} as any)
}, 2000);
7 changes: 4 additions & 3 deletions demo/Example10b.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {Transform, XForm} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface AddressProps{
zipCode: string
Expand All @@ -16,12 +17,12 @@ interface Methods{
}

const div = document.querySelector('div')!;
const model: Props & Methods = {
const model = {
name: 'Bob',
address: {
zipCode: '12345'
}
};
} as Props & Methods & RoundaboutReady;

const transform = await Transform<Props & Methods>(div, model, {
'$ address': {
Expand All @@ -38,5 +39,5 @@ setTimeout(() => {
address: {
zipCode: '54321'
}
})
} as any)
}, 2000);
5 changes: 3 additions & 2 deletions demo/Example1a.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Model{
greeting: string;
}

const div = document.querySelector('div')!;
const model: Model = {
const model = {
greeting: 'hello'
};
} as Model & RoundaboutReady;

Transform<Model>(div, model, {
span: 'greeting',
Expand Down
5 changes: 3 additions & 2 deletions demo/Example1b.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Model{
greeting: string;
}

const div = document.querySelector('div')!;
const model: Model = {
const model = {
greeting: 'hello'
};
} as Model & RoundaboutReady;

Transform<Model>(div, model, {
":root": 'greeting',
Expand Down
5 changes: 3 additions & 2 deletions demo/Example2a.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';
import { LHS } from '../ts-refs/trans-render/types.js';

interface Model{
greeting: string;
}

const form = document.querySelector('form')!;
const model: Model = {
const model = {
greeting: 'hello'
};
} as Model & RoundaboutReady;

Transform<Model>(form, model, {
'@ greeting': 0
Expand Down
5 changes: 3 additions & 2 deletions demo/Example2b.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {Transform, UnitOfWork, ITransformer} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Props{
greeting: string;
Expand All @@ -10,13 +11,13 @@ interface Methods{
}

const form = document.querySelector('form')!;
const model: Props & Methods = {
const model = {
greeting: 'hello',
appendWorld: ({greeting}: Props & Methods, transform: ITransformer<Props, Methods>, uow: UnitOfWork<Props, Methods>) => {
console.log({transform, uow});
return greeting + ', world';
}
};
} as Props & Methods & RoundaboutReady;

Transform<Props & Methods>(form, model, {
'@ greeting': 'appendWorld',
Expand Down
5 changes: 3 additions & 2 deletions demo/Example2c.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {Transform, UnitOfWork, ITransformer} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Props{
greeting: string;
Expand All @@ -10,13 +11,13 @@ interface Methods{
}

const form = document.querySelector('form')!;
const model: Props & Methods = {
const model = {
greeting: 'hello',
appendWorld: ({greeting}: Props & Methods, transform: ITransformer<Props, Methods>, uow: UnitOfWork<Props, Methods>) => {
console.log({transform, uow});
return greeting + ', world';
}
};
} as Props & Methods & RoundaboutReady;

Transform<Props & Methods>(form, model, {
'@ greeting': {
Expand Down
5 changes: 3 additions & 2 deletions demo/Example3a.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Model{
msg1: string;
msg2: string;
}

const div = document.querySelector('div')!;
const model: Model = {
const model = {
msg1: 'hello',
msg2: 'world'
};
} as Model & RoundaboutReady;

Transform<Model>(div, model, {
span: {
Expand Down
5 changes: 3 additions & 2 deletions demo/Example3b.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Props{
msg1: string;
Expand All @@ -10,13 +11,13 @@ interface Methods{
}

const div = document.querySelector('div')!;
const model: Props & Methods = {
const model = {
msg1: 'hello',
msg2: 'world',
computeMessage: ({msg1, msg2}: Props & Methods) => {
return `msg1: ${msg1}, msg2: ${msg2}`
}
};
} as Props & Methods & RoundaboutReady;

Transform<Props & Methods>(div, model, {
span: {
Expand Down
5 changes: 3 additions & 2 deletions demo/Example3c.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Props{
msg1: string;
Expand All @@ -10,13 +11,13 @@ interface Methods{
}

const div = document.querySelector('div')!;
const model: Props & Methods = {
const model = {
msg1: 'hello',
msg2: 'world',
computeMessage: ({msg1, msg2}: Props & Methods) => {
return `msg1: ${msg1}, msg2: ${msg2}`
}
};
} as Props & Methods & RoundaboutReady;

Transform<Props & Methods>(div, model, {
span: {
Expand Down
5 changes: 3 additions & 2 deletions demo/Example3d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Props{
myDate: Date;
Expand All @@ -15,10 +16,10 @@ myTemplate.innerHTML = String.raw `
<span>Some Template Content</span>
</div>
`;
const model: Props = {
const model ={
myDate: new Date(),
myTemplate
};
} as Props & RoundaboutReady;

Transform<Props & Methods>(div, model, {
span: {
Expand Down
5 changes: 3 additions & 2 deletions demo/Example4a.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';

interface Model{
msg1: string;
Expand All @@ -9,13 +10,13 @@ interface Model{
}

const div = document.querySelector('div')!;
const model: Model = {
const model = {
msg1: '123',
rO: true,
num: 7,
propName: 'test',
color: 'red'
};
} as Model & RoundaboutReady;

Transform<Model>(div, model, {
input: [
Expand Down
5 changes: 3 additions & 2 deletions demo/Example4b.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';
interface Props {
greeting: string,
msg1: string,
}
interface Actions {
}
const model: Props & Actions = {
const model = {
greeting: 'hello',
msg1: 'this is a test'
}
} as Props & Actions & RoundaboutReady;
const form = document.querySelector('form') as HTMLElement;


Expand Down
1 change: 0 additions & 1 deletion demo/Example4c.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const model = {
msg2: 'this is another test'
};
const form = document.querySelector('form');
const test = 'helo';
Transform(form, model, {
'-o msg1 -o msg2 -s textContent': {
d: ['msg1: ', 0, 'msg2: ', 1]
Expand Down
7 changes: 4 additions & 3 deletions demo/Example4c.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';
interface Props {
msg1: string,
msg2: string,
}
interface Actions {
}
const model: Props & Actions = {
const model = {
msg1: 'this is a test',
msg2: 'this is another test'
}
} as Props & Actions & RoundaboutReady;

const form = document.querySelector('form') as HTMLFormElement;

const test = 'helo'

Transform<Props, Actions, Element>(form, model, {
'-o msg1 -o msg2 -s textContent': {
Expand Down
6 changes: 4 additions & 2 deletions demo/Example4d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {Transform} from '../Transform.js';
import { RoundaboutReady } from '../ts-refs/trans-render/froop/types.js';
interface Props {
isHappy: boolean,
isVegetarian: boolean,
Expand All @@ -7,12 +8,13 @@ interface Props {
}
interface Actions {
}
const model: Props & Actions = {
const model = {
isHappy: true,
isVegetarian: false,
isSad: true,
isNeutral: false,
}
} as Props & Actions & RoundaboutReady;

const div = document.querySelector('div')!;

Transform<Props, Actions, ARIAMixin>(div, model, {
Expand Down
Loading

0 comments on commit 16a731a

Please sign in to comment.