Skip to content

Commit fc203a9

Browse files
authored
Revert #697: admit unrecognised fields when parsing JSON objects (#698)
1 parent 7a42ca1 commit fc203a9

File tree

3 files changed

+23
-26
lines changed

3 files changed

+23
-26
lines changed

lib/src/Manifest.purs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import Data.Array as Array
2222
import Data.Array.NonEmpty (NonEmptyArray)
2323
import Data.Codec.JSON as CJ
2424
import Data.Codec.JSON.Common as CJ.Common
25-
import Data.Codec.JSON.Strict as CJS
2625
import Data.Map (Map)
2726
import Data.Maybe (Maybe)
2827
import Data.Newtype (class Newtype)
@@ -72,14 +71,14 @@ instance Ord Manifest where
7271
-- | JSON object. The implementation uses explicitly ordered keys instead of
7372
-- | record sugar.
7473
codec :: CJ.Codec Manifest
75-
codec = Profunctor.wrapIso Manifest $ CJ.named "Manifest" $ CJS.objectStrict
76-
$ CJS.recordProp @"name" PackageName.codec
77-
$ CJS.recordProp @"version" Version.codec
78-
$ CJS.recordProp @"license" License.codec
79-
$ CJS.recordPropOptional @"description" (Internal.Codec.limitedString 300)
80-
$ CJS.recordProp @"location" Location.codec
81-
$ CJS.recordPropOptional @"owners" (CJ.Common.nonEmptyArray Owner.codec)
82-
$ CJS.recordPropOptional @"includeFiles" (CJ.Common.nonEmptyArray CJ.Common.nonEmptyString)
83-
$ CJS.recordPropOptional @"excludeFiles" (CJ.Common.nonEmptyArray CJ.Common.nonEmptyString)
84-
$ CJS.recordProp @"dependencies" (Internal.Codec.packageMap Range.codec)
85-
$ CJS.record
74+
codec = Profunctor.wrapIso Manifest $ CJ.named "Manifest" $ CJ.object
75+
$ CJ.recordProp @"name" PackageName.codec
76+
$ CJ.recordProp @"version" Version.codec
77+
$ CJ.recordProp @"license" License.codec
78+
$ CJ.recordPropOptional @"description" (Internal.Codec.limitedString 300)
79+
$ CJ.recordProp @"location" Location.codec
80+
$ CJ.recordPropOptional @"owners" (CJ.Common.nonEmptyArray Owner.codec)
81+
$ CJ.recordPropOptional @"includeFiles" (CJ.Common.nonEmptyArray CJ.Common.nonEmptyString)
82+
$ CJ.recordPropOptional @"excludeFiles" (CJ.Common.nonEmptyArray CJ.Common.nonEmptyString)
83+
$ CJ.recordProp @"dependencies" (Internal.Codec.packageMap Range.codec)
84+
$ CJ.record

lib/src/Metadata.purs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import Data.Array.NonEmpty (NonEmptyArray)
2424
import Data.Codec.JSON as CJ
2525
import Data.Codec.JSON.Common as CJ.Common
2626
import Data.Codec.JSON.Record as CJ.Record
27-
import Data.Codec.JSON.Strict as CJS
2827
import Data.DateTime (DateTime)
2928
import Data.Map (Map)
3029
import Data.Maybe (Maybe)
@@ -55,12 +54,12 @@ derive instance Eq Metadata
5554
-- | A codec for encoding and decoding a `Metadata` value as JSON. Represented
5655
-- | as a JSON object. Keys are explicitly ordered.
5756
codec :: CJ.Codec Metadata
58-
codec = Profunctor.wrapIso Metadata $ CJ.named "Metadata" $ CJS.objectStrict
59-
$ CJS.recordProp @"location" Location.codec
60-
$ CJS.recordPropOptional @"owners" (CJ.Common.nonEmptyArray Owner.codec)
61-
$ CJS.recordProp @"published" (Internal.Codec.versionMap publishedMetadataCodec)
62-
$ CJS.recordProp @"unpublished" (Internal.Codec.versionMap unpublishedMetadataCodec)
63-
$ CJS.record
57+
codec = Profunctor.wrapIso Metadata $ CJ.named "Metadata" $ CJ.object
58+
$ CJ.recordProp @"location" Location.codec
59+
$ CJ.recordPropOptional @"owners" (CJ.Common.nonEmptyArray Owner.codec)
60+
$ CJ.recordProp @"published" (Internal.Codec.versionMap publishedMetadataCodec)
61+
$ CJ.recordProp @"unpublished" (Internal.Codec.versionMap unpublishedMetadataCodec)
62+
$ CJ.record
6463

6564
-- | Metadata about a published package version.
6665
-- |

lib/src/PackageSet.purs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ module Registry.PackageSet
1515
import Prelude
1616

1717
import Data.Codec.JSON as CJ
18-
import Data.Codec.JSON.Strict as CJS
1918
import Data.DateTime (Date)
2019
import Data.Map (Map)
2120
import Data.Newtype (class Newtype)
@@ -41,9 +40,9 @@ derive newtype instance Eq PackageSet
4140
-- | JSON object. We use an explicit ordering instead of record sugar in the
4241
-- | implementation.
4342
codec :: CJ.Codec PackageSet
44-
codec = Profunctor.wrapIso PackageSet $ CJ.named "PackageSet" $ CJS.objectStrict
45-
$ CJS.recordProp @"version" Version.codec
46-
$ CJS.recordProp @"compiler" Version.codec
47-
$ CJS.recordProp @"published" Internal.Codec.iso8601Date
48-
$ CJS.recordProp @"packages" (Internal.Codec.packageMap Version.codec)
49-
$ CJS.record
43+
codec = Profunctor.wrapIso PackageSet $ CJ.named "PackageSet" $ CJ.object
44+
$ CJ.recordProp @"version" Version.codec
45+
$ CJ.recordProp @"compiler" Version.codec
46+
$ CJ.recordProp @"published" Internal.Codec.iso8601Date
47+
$ CJ.recordProp @"packages" (Internal.Codec.packageMap Version.codec)
48+
$ CJ.record

0 commit comments

Comments
 (0)