@nfdi4plants/arctrl 2.0.1 → 2.1.0-alpha.2
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/ARC.js +43 -108
- package/Contract/ARC.js +1 -1
- package/Contract/ArcAssay.js +37 -14
- package/Contract/ArcInvestigation.js +4 -4
- package/Contract/ArcStudy.js +37 -14
- package/Contract/Contract.js +6 -6
- package/Contract/Datamap.js +5 -5
- package/Contract/Git.js +6 -6
- package/Contract/ValidationPackagesConfig.js +5 -5
- package/Core/ArcTypes.js +17 -17
- package/Core/Comment.js +16 -9
- package/Core/CommentList.js +6 -6
- package/Core/Conversion.js +64 -64
- package/Core/Data.js +11 -11
- package/Core/DataContext.js +4 -4
- package/Core/DataFile.js +2 -2
- package/Core/DataMap.js +4 -4
- package/Core/Helper/Collections.js +11 -11
- package/Core/Helper/HashCodes.js +5 -5
- package/Core/Helper/Identifier.js +9 -9
- package/Core/Helper/Regex.js +38 -38
- package/Core/Helper/SemVer.js +8 -8
- package/Core/OntologyAnnotation.js +11 -11
- package/Core/OntologySourceReference.js +4 -4
- package/Core/Person.js +11 -11
- package/Core/Process/ColumnIndex.js +7 -7
- package/Core/Process/Component.js +10 -10
- package/Core/Process/Factor.js +6 -6
- package/Core/Process/FactorValue.js +10 -10
- package/Core/Process/Material.js +5 -5
- package/Core/Process/MaterialAttribute.js +4 -4
- package/Core/Process/MaterialAttributeValue.js +10 -10
- package/Core/Process/MaterialType.js +2 -2
- package/Core/Process/Process.js +19 -19
- package/Core/Process/ProcessInput.js +16 -16
- package/Core/Process/ProcessOutput.js +16 -16
- package/Core/Process/ProcessParameterValue.js +10 -10
- package/Core/Process/ProcessSequence.js +6 -6
- package/Core/Process/Protocol.js +5 -5
- package/Core/Process/ProtocolParameter.js +4 -4
- package/Core/Process/Sample.js +5 -5
- package/Core/Process/Source.js +5 -5
- package/Core/Publication.js +10 -10
- package/Core/Table/ArcTable.js +35 -28
- package/Core/Table/ArcTableAux.js +22 -22
- package/Core/Table/ArcTables.js +14 -14
- package/Core/Table/CompositeCell.js +6 -6
- package/Core/Table/CompositeColumn.js +5 -5
- package/Core/Table/CompositeHeader.js +9 -9
- package/Core/Template.js +7 -7
- package/Core/Templates.js +8 -8
- package/Core/Value.js +11 -11
- package/FileSystem/Commit.js +2 -2
- package/FileSystem/FileSystem.js +4 -4
- package/FileSystem/FileSystemTree.js +14 -14
- package/FileSystem/Path.js +3 -3
- package/Json/ARC.js +21 -15
- package/Json/Assay.js +108 -169
- package/Json/Comment.js +84 -122
- package/Json/ConverterOptions.js +2 -2
- package/Json/Data.js +100 -107
- package/Json/DataFile.js +22 -57
- package/Json/DataMap/DataContext.js +25 -16
- package/Json/DataMap/DataMap.js +11 -7
- package/Json/Decode.js +11 -14
- package/Json/Encode.js +24 -13
- package/Json/IDTable.js +14 -3
- package/Json/Investigation.js +194 -176
- package/Json/OntologyAnnotation.js +113 -127
- package/Json/OntologySourceReference.js +93 -111
- package/Json/Person.js +204 -135
- package/Json/Process/AssayMaterials.js +12 -14
- package/Json/Process/Component.js +23 -68
- package/Json/Process/Factor.js +28 -46
- package/Json/Process/FactorValue.js +28 -50
- package/Json/Process/Material.js +56 -83
- package/Json/Process/MaterialAttribute.js +23 -45
- package/Json/Process/MaterialAttributeValue.js +28 -71
- package/Json/Process/MaterialType.js +17 -35
- package/Json/Process/Process.js +70 -85
- package/Json/Process/ProcessInput.js +18 -45
- package/Json/Process/ProcessOutput.js +15 -63
- package/Json/Process/ProcessParameterValue.js +21 -70
- package/Json/Process/Protocol.js +80 -83
- package/Json/Process/ProtocolParameter.js +23 -44
- package/Json/Process/Sample.js +66 -93
- package/Json/Process/Source.js +54 -81
- package/Json/Process/StudyMaterials.js +13 -15
- package/Json/Process/Value.js +19 -29
- package/Json/PropertyValue.js +86 -28
- package/Json/Publication.js +92 -115
- package/Json/ROCrateObject.js +146 -0
- package/Json/StringTable.js +27 -10
- package/Json/Study.js +193 -182
- package/Json/Table/ArcTable.js +119 -115
- package/Json/Table/CellTable.js +24 -11
- package/Json/Table/CompositeCell.js +40 -41
- package/Json/Table/CompositeHeader.js +24 -36
- package/Json/Table/IOType.js +9 -31
- package/Json/Table/OATable.js +23 -10
- package/Json/Table/Templates.js +82 -90
- package/Json/context/rocrate/isa_assay_context.js +60 -4
- package/Json/context/rocrate/isa_comment_context.js +28 -4
- package/Json/context/rocrate/isa_component_context.js +44 -4
- package/Json/context/rocrate/isa_data_context.js +40 -4
- package/Json/context/rocrate/isa_factor_context.js +40 -4
- package/Json/context/rocrate/isa_factor_value_context.js +52 -4
- package/Json/context/rocrate/isa_investigation_context.js +68 -4
- package/Json/context/rocrate/isa_material_attribute_context.js +32 -4
- package/Json/context/rocrate/isa_material_attribute_value_context.js +48 -4
- package/Json/context/rocrate/isa_material_context.js +36 -4
- package/Json/context/rocrate/isa_ontology_annotation_context.js +36 -4
- package/Json/context/rocrate/isa_ontology_source_reference_context.js +40 -4
- package/Json/context/rocrate/isa_organization_context.js +24 -4
- package/Json/context/rocrate/isa_person_context.js +85 -5
- package/Json/context/rocrate/isa_process_context.js +56 -4
- package/Json/context/rocrate/isa_process_parameter_value_context.js +48 -4
- package/Json/context/rocrate/isa_protocol_context.js +60 -4
- package/Json/context/rocrate/isa_protocol_parameter_context.js +32 -4
- package/Json/context/rocrate/isa_publication_context.js +44 -4
- package/Json/context/rocrate/isa_sample_context.js +32 -4
- package/Json/context/rocrate/isa_source_context.js +32 -4
- package/Json/context/rocrate/isa_study_context.js +72 -4
- package/Json/context/rocrate/property_value_context.js +58 -2
- package/Json/context/rocrate/rocrate_context.js +45 -5
- package/Json.js +12 -12
- package/JsonIO/ARC.js +31 -0
- package/JsonIO/Assay.js +99 -0
- package/JsonIO/Comment.js +73 -0
- package/JsonIO/Data.js +50 -0
- package/JsonIO/DataFile.js +49 -0
- package/JsonIO/DataMap/DataMap.js +29 -0
- package/JsonIO/Decode.js +4 -0
- package/JsonIO/Investigation.js +99 -0
- package/JsonIO/OntologyAnnotation.js +73 -0
- package/JsonIO/OntologySourceReference.js +73 -0
- package/JsonIO/Person.js +74 -0
- package/JsonIO/Process/Component.js +50 -0
- package/JsonIO/Process/Factor.js +28 -0
- package/JsonIO/Process/FactorValue.js +29 -0
- package/JsonIO/Process/Material.js +50 -0
- package/JsonIO/Process/MaterialAttribute.js +29 -0
- package/JsonIO/Process/MaterialAttributeValue.js +50 -0
- package/JsonIO/Process/MaterialType.js +28 -0
- package/JsonIO/Process/Process.js +50 -0
- package/JsonIO/Process/ProcessInput.js +29 -0
- package/JsonIO/Process/ProcessOutput.js +50 -0
- package/JsonIO/Process/ProcessParameterValue.js +50 -0
- package/{Json → JsonIO}/Process/ProcessSequence.js +16 -16
- package/JsonIO/Process/Protocol.js +50 -0
- package/JsonIO/Process/ProtocolParameter.js +28 -0
- package/JsonIO/Process/Sample.js +50 -0
- package/JsonIO/Process/Source.js +50 -0
- package/JsonIO/Process/StudyMaterials.js +22 -0
- package/JsonIO/Process/Value.js +23 -0
- package/JsonIO/Publication.js +74 -0
- package/JsonIO/ROCrateObject.js +146 -0
- package/JsonIO/Study.js +99 -0
- package/JsonIO/Table/ArcTable.js +82 -0
- package/JsonIO/Table/CompositeCell.js +28 -0
- package/JsonIO/Table/CompositeHeader.js +28 -0
- package/{Json → JsonIO}/Table/Compression.js +20 -10
- package/JsonIO/Table/IOType.js +28 -0
- package/JsonIO/Table/Templates.js +88 -0
- package/ROCrate/ISAProfile/Assay.js +32 -0
- package/ROCrate/ISAProfile/Data.js +28 -0
- package/ROCrate/ISAProfile/Dataset.js +18 -0
- package/ROCrate/ISAProfile/Investigation.js +35 -0
- package/ROCrate/ISAProfile/LabProcess.js +32 -0
- package/ROCrate/ISAProfile/LabProtocol.js +33 -0
- package/ROCrate/ISAProfile/Person.js +35 -0
- package/ROCrate/ISAProfile/PropertyValue.js +30 -0
- package/ROCrate/ISAProfile/Sample.js +27 -0
- package/ROCrate/ISAProfile/ScholarlyArticle.js +30 -0
- package/ROCrate/ISAProfile/Study.js +35 -0
- package/ROCrate/ROCrateObject.js +61 -0
- package/Spreadsheet/AnnotationTable/ArcTable.js +16 -16
- package/Spreadsheet/AnnotationTable/CompositeCell.js +2 -2
- package/Spreadsheet/AnnotationTable/CompositeColumn.js +7 -7
- package/Spreadsheet/AnnotationTable/CompositeHeader.js +25 -25
- package/Spreadsheet/ArcAssay.js +9 -9
- package/Spreadsheet/ArcInvestigation.js +14 -14
- package/Spreadsheet/ArcStudy.js +7 -7
- package/Spreadsheet/CollectionAux.js +11 -11
- package/Spreadsheet/DataMap.js +3 -3
- package/Spreadsheet/DataMapTable/DataMapColumn.js +6 -6
- package/Spreadsheet/DataMapTable/DataMapHeader.js +23 -23
- package/Spreadsheet/DataMapTable/DataMapTable.js +13 -13
- package/Spreadsheet/Metadata/Assays.js +11 -11
- package/Spreadsheet/Metadata/Comment.js +5 -5
- package/Spreadsheet/Metadata/Contacts.js +7 -7
- package/Spreadsheet/Metadata/Conversions.js +7 -7
- package/Spreadsheet/Metadata/DesignDescriptors.js +1 -1
- package/Spreadsheet/Metadata/Factors.js +8 -8
- package/Spreadsheet/Metadata/OntologyAnnotation.js +6 -6
- package/Spreadsheet/Metadata/OntologySourceReference.js +6 -6
- package/Spreadsheet/Metadata/Protocols.js +9 -9
- package/Spreadsheet/Metadata/Publication.js +7 -7
- package/Spreadsheet/Metadata/SparseTable.js +21 -21
- package/Spreadsheet/Metadata/Study.js +12 -12
- package/Spreadsheet/Template.js +21 -21
- package/Template.Web.js +6 -6
- package/ValidationPackages/ValidationPackage.js +6 -6
- package/ValidationPackages/ValidationPackagesConfig.js +9 -9
- package/WebRequest/WebRequest.Node.js +2 -2
- package/WebRequest/WebRequest.js +2 -2
- package/Xlsx.js +9 -9
- package/Yaml/Encode.js +1 -1
- package/Yaml/ValidationPackage.js +5 -5
- package/Yaml/ValidationPackagesConfig.js +5 -5
- package/fable_modules/DynamicObj.4.0.0/DynObj.fs +219 -0
- package/fable_modules/DynamicObj.4.0.0/DynObj.fs.js +209 -0
- package/fable_modules/DynamicObj.4.0.0/DynamicObj.fableproj +47 -0
- package/fable_modules/DynamicObj.4.0.0/DynamicObj.fs +310 -0
- package/fable_modules/DynamicObj.4.0.0/DynamicObj.fs.js +166 -0
- package/fable_modules/DynamicObj.4.0.0/FableJS.fs +162 -0
- package/fable_modules/DynamicObj.4.0.0/FableJS.fs.js +141 -0
- package/fable_modules/DynamicObj.4.0.0/FablePy.fs +215 -0
- package/fable_modules/DynamicObj.4.0.0/HashCodes.fs +46 -0
- package/fable_modules/DynamicObj.4.0.0/HashCodes.fs.js +43 -0
- package/fable_modules/DynamicObj.4.0.0/PropertyHelper.fs +33 -0
- package/fable_modules/DynamicObj.4.0.0/PropertyHelper.fs.js +21 -0
- package/fable_modules/DynamicObj.4.0.0/ReflectionUtils.fs +72 -0
- package/fable_modules/DynamicObj.4.0.0/ReflectionUtils.fs.js +86 -0
- package/fable_modules/{Thoth.Json.JavaScript.0.1.0/obj/Release → DynamicObj.4.0.0/obj/Debug}/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +1 -1
- package/fable_modules/DynamicObj.4.0.0/obj/Debug/netstandard2.0/DynamicObj.AssemblyInfo.fs +19 -0
- package/fable_modules/{Thoth.Json.Core.0.2.1/obj/Debug → DynamicObj.4.0.0/obj/Release}/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +1 -1
- package/fable_modules/DynamicObj.4.0.0/obj/Release/netstandard2.0/DynamicObj.AssemblyInfo.fs +19 -0
- package/fable_modules/Fable.Fetch.2.6.0/Fetch.fs.js +8 -8
- package/fable_modules/Fable.Promise.2.2.2/Promise.fs.js +6 -6
- package/fable_modules/Fable.SimpleHttp.3.5.0/Http.fs.js +11 -11
- package/fable_modules/Fable.SimpleHttp.3.5.0/Types.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Cells/FsCell.fs.js +15 -15
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Cells/FsCellsCollection.fs.js +11 -11
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/CellBuilder.fs.js +7 -7
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/ColumnBuilder.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/DSL.fs.js +3 -3
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/Expression.fs.js +1 -1
- package/fable_modules/FsSpreadsheet.6.3.0-alpha.4/DSL/Operators.fs.js +6 -0
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/RowBuilder.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/SheetBuilder.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/TableBuilder.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/Transform.fs.js +10 -10
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/Types.fs.js +6 -6
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/WorkbookBuilder.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsAddress.fs.js +11 -11
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsColumn.fs.js +5 -5
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsRow.fs.js +5 -5
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsSpreadsheet.fableproj +5 -5
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsWorkbook.fs.js +7 -7
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsWorksheet.fs.js +11 -11
- package/fable_modules/FsSpreadsheet.6.3.0-alpha.4/Json/Cell.fs.js +64 -0
- package/fable_modules/FsSpreadsheet.6.3.0-alpha.4/Json/Column.fs.js +39 -0
- package/fable_modules/FsSpreadsheet.6.3.0-alpha.4/Json/Row.fs.js +39 -0
- package/fable_modules/FsSpreadsheet.6.3.0-alpha.4/Json/Table.fs.js +30 -0
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Json/Value.fs.js +38 -13
- package/fable_modules/FsSpreadsheet.6.3.0-alpha.4/Json/Workbook.fs.js +46 -0
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Json/Worksheet.fs.js +33 -8
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRange.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRangeAddress.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRangeBase.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRangeColumn.fs.js +4 -4
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRangeRow.fs.js +2 -2
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/SheetBuilder.fs.js +10 -10
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Tables/FsTable.fs.js +11 -11
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Tables/FsTableField.fs.js +5 -5
- package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Tables/FsTableRow.fs.js +2 -2
- package/fable_modules/{Thoth.Json.Core.0.2.1 → Thoth.Json.Core.0.4.0}/Decode.fs +67 -28
- package/fable_modules/{Thoth.Json.Core.0.2.1 → Thoth.Json.Core.0.4.0}/Decode.fs.js +79 -50
- package/fable_modules/{Thoth.Json.Core.0.2.1 → Thoth.Json.Core.0.4.0}/Encode.fs +139 -54
- package/fable_modules/Thoth.Json.Core.0.4.0/Encode.fs.js +192 -0
- package/fable_modules/Thoth.Json.Core.0.4.0/Thoth.Json.Core.fableproj +33 -0
- package/fable_modules/{Thoth.Json.Core.0.2.1 → Thoth.Json.Core.0.4.0}/Types.fs +12 -5
- package/fable_modules/{Thoth.Json.Core.0.2.1 → Thoth.Json.Core.0.4.0}/Types.fs.js +2 -2
- package/fable_modules/{Thoth.Json.JavaScript.0.1.0 → Thoth.Json.JavaScript.0.3.0}/Decode.fs +9 -0
- package/fable_modules/{Thoth.Json.JavaScript.0.1.0 → Thoth.Json.JavaScript.0.3.0}/Decode.fs.js +16 -2
- package/fable_modules/{Thoth.Json.JavaScript.0.1.0 → Thoth.Json.JavaScript.0.3.0}/Encode.fs +13 -5
- package/fable_modules/Thoth.Json.JavaScript.0.3.0/Encode.fs.js +58 -0
- package/fable_modules/Thoth.Json.JavaScript.0.3.0/Thoth.Json.JavaScript.fableproj +28 -0
- package/fable_modules/YAMLicious.0.0.1/Decode.fs.js +17 -17
- package/fable_modules/YAMLicious.0.0.1/Encode.fs.js +6 -6
- package/fable_modules/YAMLicious.0.0.1/Library.fs.js +1 -1
- package/fable_modules/YAMLicious.0.0.1/Persil.fs.js +4 -4
- package/fable_modules/YAMLicious.0.0.1/Preprocessing.fs.js +6 -6
- package/fable_modules/YAMLicious.0.0.1/Reader.fs.js +9 -9
- package/fable_modules/YAMLicious.0.0.1/RegexActivePatterns.fs.js +36 -36
- package/fable_modules/YAMLicious.0.0.1/Writer.fs.js +4 -4
- package/fable_modules/YAMLicious.0.0.1/YAMLiciousTypes.fs.js +6 -6
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Array.js +10 -10
- package/fable_modules/fable-library-js.4.22.0/Async.d.ts +27 -0
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Async.js +1 -7
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/AsyncBuilder.d.ts +13 -13
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/BigInt.js +4 -3
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/CHANGELOG.md +40 -1
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Choice.js +2 -2
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Date.js +4 -5
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Decimal.js +6 -6
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/List.js +31 -31
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/MailboxProcessor.d.ts +2 -2
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Map.js +10 -10
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/MutableMap.js +1 -1
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/MutableSet.js +1 -1
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Random.js +2 -2
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Range.js +4 -4
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Reflection.d.ts +1 -1
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/RegExp.js +0 -1
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Result.js +2 -2
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Seq.js +47 -48
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Set.js +3 -3
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/String.d.ts +1 -1
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/String.js +17 -6
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/System.Text.js +1 -1
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/TimeSpan.js +2 -2
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Types.d.ts +2 -2
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Uri.d.ts +2 -0
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Uri.js +19 -2
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Util.d.ts +2 -2
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Util.js +0 -1
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/lib/big.js +0 -1
- package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/package.json +1 -1
- package/fable_modules/project_cracked.json +1 -1
- package/package.json +1 -1
- package/fable_modules/FsSpreadsheet.6.2.0/DSL/Operators.fs.js +0 -6
- package/fable_modules/FsSpreadsheet.6.2.0/Json/Cell.fs.js +0 -38
- package/fable_modules/FsSpreadsheet.6.2.0/Json/Column.fs.js +0 -24
- package/fable_modules/FsSpreadsheet.6.2.0/Json/Row.fs.js +0 -24
- package/fable_modules/FsSpreadsheet.6.2.0/Json/Table.fs.js +0 -15
- package/fable_modules/FsSpreadsheet.6.2.0/Json/Workbook.fs.js +0 -35
- package/fable_modules/Thoth.Json.Core.0.2.1/Encode.fs.js +0 -113
- package/fable_modules/Thoth.Json.Core.0.2.1/Thoth.Json.Core.fableproj +0 -28
- package/fable_modules/Thoth.Json.Core.0.2.1/obj/Debug/netstandard2.0/Thoth.Json.Core.AssemblyInfo.fs +0 -20
- package/fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js +0 -45
- package/fable_modules/Thoth.Json.JavaScript.0.1.0/Thoth.Json.JavaScript.fableproj +0 -21
- package/fable_modules/Thoth.Json.JavaScript.0.1.0/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +0 -3
- package/fable_modules/Thoth.Json.JavaScript.0.1.0/obj/Debug/netstandard2.0/Thoth.Json.JavaScript.AssemblyInfo.fs +0 -18
- package/fable_modules/Thoth.Json.JavaScript.0.1.0/obj/Release/netstandard2.0/Thoth.Json.JavaScript.AssemblyInfo.fs +0 -19
- package/fable_modules/fable-library-js.4.16.0/Async.d.ts +0 -32
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Cells/FsCell.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Cells/FsCellsCollection.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/CellBuilder.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/ColumnBuilder.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/DSL.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/Expression.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/Operators.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/RowBuilder.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/SheetBuilder.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/TableBuilder.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/Transform.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/Types.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/DSL/WorkbookBuilder.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsAddress.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsColumn.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsRow.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsWorkbook.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/FsWorksheet.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Json/Cell.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Json/Column.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Json/Row.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Json/Table.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Json/Value.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Json/Workbook.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Json/Worksheet.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRange.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRangeAddress.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRangeBase.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRangeColumn.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Ranges/FsRangeRow.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/SheetBuilder.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Tables/FsTable.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Tables/FsTableField.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/Tables/FsTableRow.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/obj/Debug/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +0 -0
- /package/fable_modules/{FsSpreadsheet.6.2.0 → FsSpreadsheet.6.3.0-alpha.4}/obj/Release/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Array.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/AsyncBuilder.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/BigInt.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/BitConverter.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/BitConverter.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Boolean.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Boolean.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Char.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Char.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Choice.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/ConditionalWeakTable.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/ConditionalWeakTable.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Date.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/DateOffset.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/DateOffset.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/DateOnly.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/DateOnly.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Decimal.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Double.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Double.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Encoding.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Encoding.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Event.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Event.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/FSharp.Collections.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/FSharp.Collections.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/FSharp.Core.CompilerServices.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/FSharp.Core.CompilerServices.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/FSharp.Core.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/FSharp.Core.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Global.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Global.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Guid.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Guid.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Int32.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Int32.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/List.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Long.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Long.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/MailboxProcessor.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Map.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/MapUtil.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/MapUtil.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/MutableMap.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/MutableSet.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Native.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Native.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Numeric.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Numeric.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Observable.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Observable.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Option.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Option.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/README.md +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Random.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Range.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Reflection.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/RegExp.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Result.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Seq.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Seq2.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Seq2.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Set.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/System.Collections.Generic.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/System.Collections.Generic.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/System.Text.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/SystemException.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/SystemException.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/TimeOnly.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/TimeOnly.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/TimeSpan.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Timer.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Timer.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Types.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Unicode.13.0.0.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/Unicode.13.0.0.js +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/big.d.ts +0 -0
- /package/fable_modules/{fable-library-js.4.16.0 → fable-library-js.4.22.0}/lib/big.d.ts +0 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { tryGetStaticPropertyInfo } from "./ReflectionUtils.fs.js";
|
|
2
|
+
import { getPropertyHelpers, tryGetDynamicPropertyHelper } from "./FableJS.fs.js";
|
|
3
|
+
import { defaultArg, value as value_1, map } from "../fable-library-js.4.22.0/Option.js";
|
|
4
|
+
import { sortBy, iterate, map as map_1, choose, filter } from "../fable-library-js.4.22.0/Seq.js";
|
|
5
|
+
import { boxHashKeyValSeq } from "./HashCodes.fs.js";
|
|
6
|
+
import { safeHash, comparePrimitives } from "../fable-library-js.4.22.0/Util.js";
|
|
7
|
+
import { class_type } from "../fable-library-js.4.22.0/Reflection.js";
|
|
8
|
+
|
|
9
|
+
export class DynamicObj {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.properties = (new Map([]));
|
|
12
|
+
}
|
|
13
|
+
get Properties() {
|
|
14
|
+
const this$ = this;
|
|
15
|
+
return this$.properties;
|
|
16
|
+
}
|
|
17
|
+
set Properties(value) {
|
|
18
|
+
const this$ = this;
|
|
19
|
+
this$.properties = value;
|
|
20
|
+
}
|
|
21
|
+
static ofDict(dynamicProperties) {
|
|
22
|
+
const obj = new DynamicObj();
|
|
23
|
+
obj.Properties = dynamicProperties;
|
|
24
|
+
return obj;
|
|
25
|
+
}
|
|
26
|
+
TryGetStaticPropertyHelper(propertyName) {
|
|
27
|
+
const this$ = this;
|
|
28
|
+
return tryGetStaticPropertyInfo(this$, propertyName);
|
|
29
|
+
}
|
|
30
|
+
TryGetDynamicPropertyHelper(propertyName) {
|
|
31
|
+
const this$ = this;
|
|
32
|
+
return tryGetDynamicPropertyHelper(this$, propertyName);
|
|
33
|
+
}
|
|
34
|
+
TryGetPropertyHelper(propertyName) {
|
|
35
|
+
const this$ = this;
|
|
36
|
+
const matchValue = this$.TryGetStaticPropertyHelper(propertyName);
|
|
37
|
+
return (matchValue == null) ? this$.TryGetDynamicPropertyHelper(propertyName) : matchValue;
|
|
38
|
+
}
|
|
39
|
+
TryGetPropertyValue(propertyName) {
|
|
40
|
+
const this$ = this;
|
|
41
|
+
return map((pi) => pi.GetValue(this$), this$.TryGetPropertyHelper(propertyName));
|
|
42
|
+
}
|
|
43
|
+
GetPropertyValue(propertyName) {
|
|
44
|
+
const this$ = this;
|
|
45
|
+
const matchValue = this$.TryGetPropertyValue(propertyName);
|
|
46
|
+
if (matchValue == null) {
|
|
47
|
+
throw new Error(`No dynamic or static property "${propertyName}" does exist on object.`);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
return value_1(matchValue);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
SetProperty(propertyName, propertyValue) {
|
|
54
|
+
const this$ = this;
|
|
55
|
+
const matchValue = this$.TryGetStaticPropertyHelper(propertyName);
|
|
56
|
+
if (matchValue == null) {
|
|
57
|
+
this$[propertyName] = propertyValue;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
const pi = matchValue;
|
|
61
|
+
if (pi.IsMutable) {
|
|
62
|
+
pi.SetValue(this$, propertyValue);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
throw new Error(`Cannot set value for static, immutable property "${propertyName}"`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
RemoveProperty(propertyName) {
|
|
70
|
+
const this$ = this;
|
|
71
|
+
const matchValue = this$.TryGetPropertyHelper(propertyName);
|
|
72
|
+
if (matchValue == null) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
else if (matchValue.IsMutable) {
|
|
76
|
+
const pi_1 = matchValue;
|
|
77
|
+
pi_1.RemoveValue(this$);
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
throw new Error(`Cannot remove value for static, immutable property "${propertyName}"`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
GetPropertyHelpers(includeInstanceProperties) {
|
|
85
|
+
const this$ = this;
|
|
86
|
+
return filter((p) => (p.Name.toLocaleLowerCase() !== "properties"), filter((pd) => {
|
|
87
|
+
if (includeInstanceProperties) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
return pd.IsDynamic;
|
|
92
|
+
}
|
|
93
|
+
}, getPropertyHelpers(this$)));
|
|
94
|
+
}
|
|
95
|
+
GetProperties(includeInstanceProperties) {
|
|
96
|
+
const this$ = this;
|
|
97
|
+
return choose((kv) => {
|
|
98
|
+
if (kv.Name !== "properties") {
|
|
99
|
+
return [kv.Name, kv.GetValue(this$)];
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
}, this$.GetPropertyHelpers(includeInstanceProperties));
|
|
105
|
+
}
|
|
106
|
+
GetPropertyNames(includeInstanceProperties) {
|
|
107
|
+
const this$ = this;
|
|
108
|
+
return map_1((kv) => kv[0], this$.GetProperties(includeInstanceProperties));
|
|
109
|
+
}
|
|
110
|
+
CopyDynamicPropertiesTo(target, overWrite) {
|
|
111
|
+
const this$ = this;
|
|
112
|
+
const overWrite_1 = defaultArg(overWrite, false);
|
|
113
|
+
iterate((kv) => {
|
|
114
|
+
let pi;
|
|
115
|
+
const matchValue = target.TryGetPropertyHelper(kv[0]);
|
|
116
|
+
if (matchValue == null) {
|
|
117
|
+
target.SetProperty(kv[0], kv[1]);
|
|
118
|
+
}
|
|
119
|
+
else if ((pi = matchValue, overWrite_1)) {
|
|
120
|
+
const pi_1 = matchValue;
|
|
121
|
+
pi_1.SetValue(target, kv[1]);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
throw new Error(`Property "${kv[0]}" already exists on target object and overWrite was not set to true.`);
|
|
125
|
+
}
|
|
126
|
+
}, this$.GetProperties(false));
|
|
127
|
+
}
|
|
128
|
+
CopyDynamicProperties() {
|
|
129
|
+
const this$ = this;
|
|
130
|
+
const target = new DynamicObj();
|
|
131
|
+
this$.CopyDynamicPropertiesTo(target);
|
|
132
|
+
return target;
|
|
133
|
+
}
|
|
134
|
+
static op_Dynamic(lookup, name) {
|
|
135
|
+
const matchValue = lookup.TryGetPropertyValue(name);
|
|
136
|
+
if (matchValue == null) {
|
|
137
|
+
throw new Error();
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
return value_1(matchValue);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
static op_DynamicAssignment(lookup, name, value) {
|
|
144
|
+
lookup.SetProperty(name, value);
|
|
145
|
+
}
|
|
146
|
+
GetHashCode() {
|
|
147
|
+
const this$ = this;
|
|
148
|
+
return boxHashKeyValSeq(sortBy((pair) => pair[0], this$.GetProperties(true), {
|
|
149
|
+
Compare: comparePrimitives,
|
|
150
|
+
})) | 0;
|
|
151
|
+
}
|
|
152
|
+
Equals(o) {
|
|
153
|
+
let other;
|
|
154
|
+
const this$ = this;
|
|
155
|
+
return (o instanceof DynamicObj) && ((other = o, safeHash(this$) === safeHash(other)));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export function DynamicObj_$reflection() {
|
|
160
|
+
return class_type("DynamicObj.DynamicObj", undefined, DynamicObj);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export function DynamicObj_$ctor() {
|
|
164
|
+
return new DynamicObj();
|
|
165
|
+
}
|
|
166
|
+
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
namespace DynamicObj
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#if FABLE_COMPILER_JAVASCRIPT || FABLE_COMPILER_TYPESCRIPT || !FABLE_COMPILER
|
|
5
|
+
|
|
6
|
+
open Fable.Core
|
|
7
|
+
|
|
8
|
+
module FableJS =
|
|
9
|
+
|
|
10
|
+
module PropertyDescriptor =
|
|
11
|
+
|
|
12
|
+
[<Emit("$0[$1]")>]
|
|
13
|
+
let tryGetPropertyValue (o:obj) (propName:string) : obj option =
|
|
14
|
+
jsNative
|
|
15
|
+
|
|
16
|
+
let tryGetIsWritable (o:obj) : bool option =
|
|
17
|
+
tryGetPropertyValue o "writable"
|
|
18
|
+
|> Option.map (fun v -> v :?> bool)
|
|
19
|
+
|
|
20
|
+
let containsGetter (o:obj) : bool =
|
|
21
|
+
match tryGetPropertyValue o "get" with
|
|
22
|
+
| Some _ -> true
|
|
23
|
+
| None -> false
|
|
24
|
+
|
|
25
|
+
let containsSetter (o:obj) : bool =
|
|
26
|
+
match tryGetPropertyValue o "set" with
|
|
27
|
+
| Some _ -> true
|
|
28
|
+
| None -> false
|
|
29
|
+
|
|
30
|
+
let isWritable (o:obj) : bool =
|
|
31
|
+
match tryGetIsWritable o with
|
|
32
|
+
| Some v -> v
|
|
33
|
+
| None -> containsSetter o
|
|
34
|
+
|
|
35
|
+
[<Emit("typeof $0 === 'function'")>]
|
|
36
|
+
let valueIsFunction (o:obj) : bool =
|
|
37
|
+
jsNative
|
|
38
|
+
|
|
39
|
+
let isFunction (o:obj) : bool =
|
|
40
|
+
match tryGetPropertyValue o "value" with
|
|
41
|
+
| Some v -> valueIsFunction v
|
|
42
|
+
| None -> false
|
|
43
|
+
|
|
44
|
+
[<Emit("Object.getOwnPropertyNames($0)")>]
|
|
45
|
+
let getOwnPropertyNames (o:obj) : string [] =
|
|
46
|
+
jsNative
|
|
47
|
+
|
|
48
|
+
[<Emit("Object.getPrototypeOf($0)")>]
|
|
49
|
+
let getPrototype (o:obj) : obj =
|
|
50
|
+
jsNative
|
|
51
|
+
|
|
52
|
+
let getStaticPropertyNames (o:obj) =
|
|
53
|
+
getPrototype o
|
|
54
|
+
|> getOwnPropertyNames
|
|
55
|
+
|> Array.filter (fun n -> n <> "constructor")
|
|
56
|
+
|
|
57
|
+
[<Emit("$0[$1] = $2")>]
|
|
58
|
+
let setPropertyValue (o:obj) (propName:string) (value:obj) =
|
|
59
|
+
jsNative
|
|
60
|
+
|
|
61
|
+
let createSetter (propName:string) =
|
|
62
|
+
fun (o:obj) (value:obj) ->
|
|
63
|
+
setPropertyValue o propName value
|
|
64
|
+
|
|
65
|
+
let removeStaticPropertyValue (o:obj) (propName:string) =
|
|
66
|
+
setPropertyValue o propName null
|
|
67
|
+
|
|
68
|
+
[<Emit("delete $0[$1]")>]
|
|
69
|
+
let deleteDynamicPropertyValue (o:obj) (propName:string) =
|
|
70
|
+
jsNative
|
|
71
|
+
|
|
72
|
+
let createRemover (propName:string) (isStatic : bool) =
|
|
73
|
+
if isStatic then
|
|
74
|
+
fun (o:obj) ->
|
|
75
|
+
removeStaticPropertyValue o propName
|
|
76
|
+
else
|
|
77
|
+
fun (o:obj) ->
|
|
78
|
+
deleteDynamicPropertyValue o propName
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
[<Emit("$0[$1]")>]
|
|
82
|
+
let getPropertyValue (o:obj) (propName:string) =
|
|
83
|
+
jsNative
|
|
84
|
+
|
|
85
|
+
let createGetter (propName:string) =
|
|
86
|
+
fun (o:obj) ->
|
|
87
|
+
getPropertyValue o propName
|
|
88
|
+
|
|
89
|
+
[<Emit("Object.getOwnPropertyDescriptor($0, $1)")>]
|
|
90
|
+
let tryGetPropertyDescriptor (o:obj) (propName:string) : obj option =
|
|
91
|
+
jsNative
|
|
92
|
+
|
|
93
|
+
let tryGetStaticPropertyDescriptor (o:obj) (propName:string) : obj option=
|
|
94
|
+
tryGetPropertyDescriptor (getPrototype o) propName
|
|
95
|
+
|
|
96
|
+
let tryStaticPropertyHelperFromDescriptor (pd:obj) (name:string) : PropertyHelper option =
|
|
97
|
+
let isWritable = PropertyDescriptor.isWritable pd
|
|
98
|
+
if PropertyDescriptor.isFunction pd then
|
|
99
|
+
None
|
|
100
|
+
else
|
|
101
|
+
{
|
|
102
|
+
Name = name
|
|
103
|
+
IsStatic = true
|
|
104
|
+
IsDynamic = false
|
|
105
|
+
IsMutable = isWritable
|
|
106
|
+
IsImmutable = not isWritable
|
|
107
|
+
GetValue = createGetter name
|
|
108
|
+
SetValue = createSetter name
|
|
109
|
+
RemoveValue = createRemover name true
|
|
110
|
+
}
|
|
111
|
+
|> Some
|
|
112
|
+
|
|
113
|
+
let tryGetStaticPropertyHelper (o:obj) (propName:string) : PropertyHelper option =
|
|
114
|
+
tryGetStaticPropertyDescriptor o propName
|
|
115
|
+
|> Option.bind (fun pd -> tryStaticPropertyHelperFromDescriptor pd propName)
|
|
116
|
+
|
|
117
|
+
let getStaticPropertyHelpers (o:obj) : PropertyHelper [] =
|
|
118
|
+
getStaticPropertyNames o
|
|
119
|
+
|> Array.choose (tryGetStaticPropertyHelper o)
|
|
120
|
+
|
|
121
|
+
let tryGetDynamicPropertyDescriptor (o:obj) (propName:string) : obj option =
|
|
122
|
+
tryGetPropertyDescriptor o propName
|
|
123
|
+
|
|
124
|
+
let transpiledPropertyRegex = "^[a-zA-Z]+@[0-9]+$"
|
|
125
|
+
|
|
126
|
+
let isTranspiledPropertyHelper (propertyName : string) =
|
|
127
|
+
System.Text.RegularExpressions.Regex.IsMatch(propertyName, transpiledPropertyRegex)
|
|
128
|
+
|
|
129
|
+
let tryDynamicPropertyHelperFromDescriptor (pd:obj) (name:string) : PropertyHelper option =
|
|
130
|
+
if PropertyDescriptor.isFunction pd || isTranspiledPropertyHelper name then
|
|
131
|
+
None
|
|
132
|
+
else
|
|
133
|
+
{
|
|
134
|
+
Name = name
|
|
135
|
+
IsStatic = false
|
|
136
|
+
IsDynamic = true
|
|
137
|
+
IsMutable = true
|
|
138
|
+
IsImmutable = false
|
|
139
|
+
GetValue = createGetter name
|
|
140
|
+
SetValue = createSetter name
|
|
141
|
+
RemoveValue = createRemover name false
|
|
142
|
+
}
|
|
143
|
+
|> Some
|
|
144
|
+
|
|
145
|
+
let tryGetDynamicPropertyHelper (o:obj) (propName:string) : PropertyHelper option =
|
|
146
|
+
tryGetDynamicPropertyDescriptor o propName
|
|
147
|
+
|> Option.bind (fun pd -> tryDynamicPropertyHelperFromDescriptor pd propName)
|
|
148
|
+
|
|
149
|
+
let getDynamicPropertyHelpers (o:obj) : PropertyHelper [] =
|
|
150
|
+
getOwnPropertyNames o
|
|
151
|
+
|> Array.choose (tryGetDynamicPropertyHelper o)
|
|
152
|
+
|
|
153
|
+
let getPropertyHelpers (o:obj) =
|
|
154
|
+
getDynamicPropertyHelpers o
|
|
155
|
+
|> Array.append (getStaticPropertyHelpers o)
|
|
156
|
+
|
|
157
|
+
let getPropertyNames (o:obj) =
|
|
158
|
+
getPropertyHelpers o
|
|
159
|
+
|> Array.map (fun h -> h.Name)
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
#endif
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { bind, value as value_1, map } from "../fable-library-js.4.22.0/Option.js";
|
|
2
|
+
import { defaultOf } from "../fable-library-js.4.22.0/Util.js";
|
|
3
|
+
import { PropertyHelper } from "./PropertyHelper.fs.js";
|
|
4
|
+
import { map as map_1, append, choose } from "../fable-library-js.4.22.0/Array.js";
|
|
5
|
+
import { create, isMatch } from "../fable-library-js.4.22.0/RegExp.js";
|
|
6
|
+
|
|
7
|
+
export function PropertyDescriptor_tryGetIsWritable(o) {
|
|
8
|
+
return map((v) => v, o["writable"]);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function PropertyDescriptor_containsGetter(o) {
|
|
12
|
+
const matchValue = o["get"];
|
|
13
|
+
if (matchValue == null) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function PropertyDescriptor_containsSetter(o) {
|
|
22
|
+
const matchValue = o["set"];
|
|
23
|
+
if (matchValue == null) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function PropertyDescriptor_isWritable(o) {
|
|
32
|
+
const matchValue = PropertyDescriptor_tryGetIsWritable(o);
|
|
33
|
+
if (matchValue == null) {
|
|
34
|
+
return PropertyDescriptor_containsSetter(o);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return matchValue;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function PropertyDescriptor_isFunction(o) {
|
|
42
|
+
const matchValue = o["value"];
|
|
43
|
+
if (matchValue == null) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const v = value_1(matchValue);
|
|
48
|
+
return typeof v === 'function';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function getStaticPropertyNames(o) {
|
|
53
|
+
let array;
|
|
54
|
+
const o_1 = Object.getPrototypeOf(o);
|
|
55
|
+
array = (Object.getOwnPropertyNames(o_1));
|
|
56
|
+
return array.filter((n) => (n !== "constructor"));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function createSetter(propName, o, value) {
|
|
60
|
+
return o[propName] = value;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function removeStaticPropertyValue(o, propName) {
|
|
64
|
+
return o[propName] = defaultOf();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function createRemover(propName, isStatic) {
|
|
68
|
+
if (isStatic) {
|
|
69
|
+
return (o) => removeStaticPropertyValue(o, propName);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
return (o_1) => (delete o_1[propName]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function createGetter(propName, o) {
|
|
77
|
+
return o[propName];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function tryGetStaticPropertyDescriptor(o, propName) {
|
|
81
|
+
return Object.getOwnPropertyDescriptor((Object.getPrototypeOf(o)), propName);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export function tryStaticPropertyHelperFromDescriptor(pd, name) {
|
|
85
|
+
const isWritable = PropertyDescriptor_isWritable(pd);
|
|
86
|
+
if (PropertyDescriptor_isFunction(pd)) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
return new PropertyHelper(name, true, false, isWritable, !isWritable, (o) => createGetter(name, o), (o_1, value) => {
|
|
91
|
+
createSetter(name, o_1, value);
|
|
92
|
+
}, createRemover(name, true));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export function tryGetStaticPropertyHelper(o, propName) {
|
|
97
|
+
return bind((pd) => tryStaticPropertyHelperFromDescriptor(pd, propName), tryGetStaticPropertyDescriptor(o, propName));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export function getStaticPropertyHelpers(o) {
|
|
101
|
+
return choose((propName) => tryGetStaticPropertyHelper(o, propName), getStaticPropertyNames(o));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function tryGetDynamicPropertyDescriptor(o, propName) {
|
|
105
|
+
return Object.getOwnPropertyDescriptor(o, propName);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export const transpiledPropertyRegex = "^[a-zA-Z]+@[0-9]+$";
|
|
109
|
+
|
|
110
|
+
export function isTranspiledPropertyHelper(propertyName) {
|
|
111
|
+
return isMatch(create(transpiledPropertyRegex), propertyName);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function tryDynamicPropertyHelperFromDescriptor(pd, name) {
|
|
115
|
+
if (PropertyDescriptor_isFunction(pd) ? true : isTranspiledPropertyHelper(name)) {
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return new PropertyHelper(name, false, true, true, false, (o) => createGetter(name, o), (o_1, value) => {
|
|
120
|
+
createSetter(name, o_1, value);
|
|
121
|
+
}, createRemover(name, false));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export function tryGetDynamicPropertyHelper(o, propName) {
|
|
126
|
+
return bind((pd) => tryDynamicPropertyHelperFromDescriptor(pd, propName), tryGetDynamicPropertyDescriptor(o, propName));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export function getDynamicPropertyHelpers(o) {
|
|
130
|
+
return choose((propName) => tryGetDynamicPropertyHelper(o, propName), Object.getOwnPropertyNames(o));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export function getPropertyHelpers(o) {
|
|
134
|
+
const array_1 = getDynamicPropertyHelpers(o);
|
|
135
|
+
return append(getStaticPropertyHelpers(o), array_1);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export function getPropertyNames(o) {
|
|
139
|
+
return map_1((h) => h.Name, getPropertyHelpers(o));
|
|
140
|
+
}
|
|
141
|
+
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
namespace DynamicObj
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#if FABLE_COMPILER_PYTHON || !FABLE_COMPILER
|
|
5
|
+
|
|
6
|
+
open Fable.Core
|
|
7
|
+
open System.Collections.Generic
|
|
8
|
+
|
|
9
|
+
module FablePy =
|
|
10
|
+
|
|
11
|
+
module Dictionary =
|
|
12
|
+
|
|
13
|
+
let ofSeq (s:seq<KeyValuePair<_,_>>) =
|
|
14
|
+
let d = new System.Collections.Generic.Dictionary<_,_>()
|
|
15
|
+
s |> Seq.iter (fun kv -> d.Add(kv.Key, kv.Value))
|
|
16
|
+
d
|
|
17
|
+
|
|
18
|
+
let choose (f: 'T -> 'U option) (d:System.Collections.Generic.Dictionary<_,'T>) =
|
|
19
|
+
let nd = new System.Collections.Generic.Dictionary<_,'U>()
|
|
20
|
+
for kv in d do
|
|
21
|
+
match f kv.Value with
|
|
22
|
+
| Some v -> nd.Add(kv.Key, v)
|
|
23
|
+
| None -> ()
|
|
24
|
+
nd
|
|
25
|
+
|
|
26
|
+
type PropertyObject =
|
|
27
|
+
abstract fget : obj
|
|
28
|
+
abstract fset : obj
|
|
29
|
+
|
|
30
|
+
module PropertyObject =
|
|
31
|
+
|
|
32
|
+
[<Emit("$0.fget")>]
|
|
33
|
+
let tryGetGetter (o:PropertyObject) : (obj -> obj) option =
|
|
34
|
+
nativeOnly
|
|
35
|
+
|
|
36
|
+
[<Emit("$0.fset")>]
|
|
37
|
+
let tryGetSetter (o:PropertyObject) : (obj -> obj -> unit) option =
|
|
38
|
+
nativeOnly
|
|
39
|
+
|
|
40
|
+
let getGetter (o : PropertyObject) : obj -> obj =
|
|
41
|
+
match tryGetGetter o with
|
|
42
|
+
| Some f -> f
|
|
43
|
+
| None -> fun o -> failwith ("Property does not contain getter")
|
|
44
|
+
|
|
45
|
+
let getSetter (o:PropertyObject) : obj -> obj -> unit =
|
|
46
|
+
match tryGetSetter o with
|
|
47
|
+
| Some f -> f
|
|
48
|
+
| None -> fun s o -> failwith ("Property does not contain setter")
|
|
49
|
+
|
|
50
|
+
let containsGetter (o:PropertyObject) : bool =
|
|
51
|
+
match tryGetGetter o with
|
|
52
|
+
| Some _ -> true
|
|
53
|
+
| None -> false
|
|
54
|
+
|
|
55
|
+
let containsSetter (o:PropertyObject) : bool =
|
|
56
|
+
match tryGetSetter o with
|
|
57
|
+
| Some _ -> true
|
|
58
|
+
| None -> false
|
|
59
|
+
|
|
60
|
+
let isWritable (o:PropertyObject) : bool =
|
|
61
|
+
containsSetter o
|
|
62
|
+
|
|
63
|
+
[<Emit("isinstance($0, property)")>]
|
|
64
|
+
let isProperty (o:obj) : bool =
|
|
65
|
+
nativeOnly
|
|
66
|
+
|
|
67
|
+
let tryProperty (o:obj) : PropertyObject option =
|
|
68
|
+
if isProperty o then
|
|
69
|
+
Some (o :?> PropertyObject)
|
|
70
|
+
else
|
|
71
|
+
None
|
|
72
|
+
|
|
73
|
+
[<Emit("getattr($0,$1)")>]
|
|
74
|
+
let getPropertyValue (o:obj) (propName:string) =
|
|
75
|
+
nativeOnly
|
|
76
|
+
|
|
77
|
+
let createGetter (propName:string) =
|
|
78
|
+
fun (o:obj) ->
|
|
79
|
+
getPropertyValue o propName
|
|
80
|
+
|
|
81
|
+
[<Emit("setattr($0,$1,$2)")>]
|
|
82
|
+
let setPropertyValue (o:obj) (propName:string) (value:obj) : unit =
|
|
83
|
+
nativeOnly
|
|
84
|
+
|
|
85
|
+
let createSetter (propName:string) =
|
|
86
|
+
fun (o:obj) (value:obj) ->
|
|
87
|
+
setPropertyValue o propName value
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
[<Emit("vars($0).items()")>]
|
|
91
|
+
let getOwnMemberObjects (o:obj) : Dictionary<string,obj> =
|
|
92
|
+
nativeOnly
|
|
93
|
+
|
|
94
|
+
[<Emit("$0.__class__")>]
|
|
95
|
+
let getClass (o:obj) : obj =
|
|
96
|
+
nativeOnly
|
|
97
|
+
|
|
98
|
+
let getStaticPropertyObjects (o:obj) : Dictionary<string,PropertyObject> =
|
|
99
|
+
getClass o
|
|
100
|
+
|> getOwnMemberObjects
|
|
101
|
+
|> Dictionary.choose PropertyObject.tryProperty
|
|
102
|
+
|
|
103
|
+
let removeStaticPropertyValue (o:obj) (propName:string) =
|
|
104
|
+
setPropertyValue o propName null
|
|
105
|
+
|
|
106
|
+
[<Emit("delattr($0,$1)")>]
|
|
107
|
+
let deleteDynamicPropertyValue (o:obj) (propName:string) =
|
|
108
|
+
nativeOnly
|
|
109
|
+
|
|
110
|
+
let createRemover (propName:string) (isStatic : bool) =
|
|
111
|
+
if isStatic then
|
|
112
|
+
fun (o:obj) ->
|
|
113
|
+
removeStaticPropertyValue o propName
|
|
114
|
+
else
|
|
115
|
+
fun (o:obj) ->
|
|
116
|
+
deleteDynamicPropertyValue o propName
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
[<Emit("$0.__dict__.get($1)")>]
|
|
121
|
+
let getMemberObject (o:obj) (propName:string) =
|
|
122
|
+
nativeOnly
|
|
123
|
+
|
|
124
|
+
let tryGetPropertyObject (o:obj) (propName:string) : PropertyObject option =
|
|
125
|
+
match PropertyObject.tryProperty (getMemberObject o propName) with
|
|
126
|
+
| Some po -> Some po
|
|
127
|
+
| None -> None
|
|
128
|
+
|
|
129
|
+
let tryGetDynamicPropertyHelper (o:obj) (propName:string) : PropertyHelper option =
|
|
130
|
+
match getMemberObject o propName with
|
|
131
|
+
| Some _ ->
|
|
132
|
+
Some {
|
|
133
|
+
Name = propName
|
|
134
|
+
IsStatic = false
|
|
135
|
+
IsDynamic = true
|
|
136
|
+
IsMutable = true
|
|
137
|
+
IsImmutable = false
|
|
138
|
+
GetValue = createGetter propName
|
|
139
|
+
SetValue = createSetter propName
|
|
140
|
+
RemoveValue = fun o -> deleteDynamicPropertyValue o propName
|
|
141
|
+
}
|
|
142
|
+
| None -> None
|
|
143
|
+
|
|
144
|
+
let tryGetStaticPropertyHelper (o:obj) (propName:string) : PropertyHelper option =
|
|
145
|
+
match tryGetPropertyObject (getClass o) propName with
|
|
146
|
+
| Some po ->
|
|
147
|
+
let isWritable = PropertyObject.isWritable po
|
|
148
|
+
Some {
|
|
149
|
+
Name = propName
|
|
150
|
+
IsStatic = true
|
|
151
|
+
IsDynamic = false
|
|
152
|
+
IsMutable = isWritable
|
|
153
|
+
IsImmutable = not isWritable
|
|
154
|
+
GetValue = createGetter propName
|
|
155
|
+
SetValue = createSetter propName
|
|
156
|
+
RemoveValue = fun o -> removeStaticPropertyValue o propName
|
|
157
|
+
}
|
|
158
|
+
| None -> None
|
|
159
|
+
|
|
160
|
+
let transpiledPropertyRegex = "^([a-zA-Z]+_)+[0-9]+$"
|
|
161
|
+
|
|
162
|
+
let isTranspiledPropertyHelper (propertyName : string) =
|
|
163
|
+
System.Text.RegularExpressions.Regex.IsMatch(propertyName, transpiledPropertyRegex)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
let getDynamicPropertyHelpers (o:obj) : PropertyHelper [] =
|
|
167
|
+
getOwnMemberObjects o
|
|
168
|
+
|> Seq.choose (fun kv ->
|
|
169
|
+
let n = kv.Key
|
|
170
|
+
if isTranspiledPropertyHelper n then
|
|
171
|
+
None
|
|
172
|
+
else
|
|
173
|
+
{
|
|
174
|
+
Name = n
|
|
175
|
+
IsStatic = false
|
|
176
|
+
IsDynamic = true
|
|
177
|
+
IsMutable = true
|
|
178
|
+
IsImmutable = false
|
|
179
|
+
GetValue = createGetter n
|
|
180
|
+
SetValue = createSetter n
|
|
181
|
+
RemoveValue = fun o -> deleteDynamicPropertyValue o n
|
|
182
|
+
}
|
|
183
|
+
|> Some
|
|
184
|
+
)
|
|
185
|
+
|> Seq.toArray
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
let getStaticPropertyHelpers (o:obj) : PropertyHelper [] =
|
|
189
|
+
getStaticPropertyObjects o
|
|
190
|
+
|> Seq.map (fun kv ->
|
|
191
|
+
let n = kv.Key
|
|
192
|
+
let po = kv.Value
|
|
193
|
+
{
|
|
194
|
+
Name = n
|
|
195
|
+
IsStatic = true
|
|
196
|
+
IsDynamic = false
|
|
197
|
+
IsMutable = PropertyObject.isWritable po
|
|
198
|
+
IsImmutable = not (PropertyObject.isWritable po)
|
|
199
|
+
GetValue = createGetter n
|
|
200
|
+
SetValue = createSetter n
|
|
201
|
+
RemoveValue = fun o -> removeStaticPropertyValue o n
|
|
202
|
+
}
|
|
203
|
+
)
|
|
204
|
+
|> Seq.toArray
|
|
205
|
+
|
|
206
|
+
let getPropertyHelpers (o:obj) =
|
|
207
|
+
getDynamicPropertyHelpers o
|
|
208
|
+
|> Array.append (getStaticPropertyHelpers o)
|
|
209
|
+
|
|
210
|
+
let getPropertyNames (o:obj) =
|
|
211
|
+
getPropertyHelpers o
|
|
212
|
+
|> Array.map (fun h -> h.Name)
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
#endif
|