({ myField: a.myField })
| 8637 | * nextField: i.myField.length |
| 8638 | * }), |
| 8639 | * encode: (a) => Effect.succeed({ myField: a.myField }) |
| 8640 | * }) { |
| 8641 | * nextMethod() { |
| 8642 | * return this.myMethod() + this.myField + this.nextField |
| 8643 | * } |
| 8644 | * } |
| 8645 | * ``` |
| 8646 | */ |
| 8647 | transformOrFailFrom<Transformed = never>(identifier: string): < |
| 8648 | NewFields extends Struct.Fields, |
| 8649 | R2, |
| 8650 | R3 |
| 8651 | >( |
| 8652 | fields: NewFields, |
| 8653 | options: { |
| 8654 | readonly decode: ( |
| 8655 | input: Simplify<I>, |
| 8656 | options: ParseOptions, |
| 8657 | ast: AST.Transformation |
| 8658 | ) => Effect.Effect<Simplify<I & Struct.Encoded<NewFields>>, ParseResult.ParseIssue, R2> |
| 8659 | readonly encode: ( |
| 8660 | input: Simplify<I & Struct.Encoded<NewFields>>, |
| 8661 | options: ParseOptions, |
| 8662 | ast: AST.Transformation |
| 8663 | ) => Effect.Effect<I, ParseResult.ParseIssue, R3> |
| 8664 | }, |
| 8665 | annotations?: ClassAnnotations<Transformed, Simplify<Struct.Type<Fields & NewFields>>> |
| 8666 | ) => [Transformed] extends [never] ? MissingSelfGeneric<"Base.transformOrFailFrom"> |
| 8667 | : Class< |
| 8668 | Transformed, |
| 8669 | Fields & NewFields, |
| 8670 | I, |
| 8671 | R | Struct.Context<NewFields> | R2 | R3, |
| 8672 | C & Struct.Constructor<NewFields>, |
| 8673 | Self, |
| 8674 | Proto |
| 8675 | > |
| 8676 | } |
| 8677 | |
| 8678 | type HasFields<Fields extends Struct.Fields> = Struct<Fields> | { |
| 8679 | readonly [RefineSchemaId]: HasFields<Fields> |
| 8680 | } |
| 8681 | |
| 8682 | const isField = (u: unknown) => isSchema(u) || isPropertySignature(u) |
| 8683 | |
| 8684 | const isFields = <Fields extends Struct.Fields>(fields: object): fields is Fields => |
| 8685 | Reflect.ownKeys(fields).every((key) => isField((fields as any)[key])) |
| 8686 | |
| 8687 | const getFields = <Fields extends Struct.Fields>(hasFields: HasFields<Fields>): Fields => |
| 8688 | "fields" in hasFields ? hasFields.fields : getFields(hasFields[RefineSchemaId]) |
| 8689 | |
| 8690 | const getSchemaFromFieldsOr = <Fields extends Struct.Fields>(fieldsOr: Fields | HasFields<Fields>): Schema.Any => |
| 8691 | isFields(fieldsOr) ? Struct(fieldsOr) : isSchema(fieldsOr) ? fieldsOr : Struct(getFields(fieldsOr)) |
| 8692 | |
| 8693 | const getFieldsFromFieldsOr = <Fields extends Struct.Fields>(fieldsOr: Fields | HasFields<Fields>): Fields => |
| 8694 | isFields(fieldsOr) ? fieldsOr : getFields(fieldsOr) |
| 8695 | |
| 8696 | /** |
no outgoing calls
no test coverage detected