File tree Expand file tree Collapse file tree 3 files changed +14
-6
lines changed Expand file tree Collapse file tree 3 files changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -3,9 +3,9 @@ import type { Atom, Molecule } from '../parsing.js'
33import {
44 closeBrace ,
55 comma ,
6+ moleculeAsKeyValuePairStrings ,
67 moleculeUnparser ,
78 openBrace ,
8- sugarFreeMoleculeAsKeyValuePairStrings ,
99 unparseAtom ,
1010} from './plz-utilities.js'
1111import type { Notation } from './unparsing-utilities.js'
@@ -15,7 +15,9 @@ const unparseSugarFreeMolecule = (value: Molecule) => {
1515 return either . makeRight ( openBrace + closeBrace )
1616 } else {
1717 return either . map (
18- sugarFreeMoleculeAsKeyValuePairStrings ( value , unparseAtomOrMolecule ) ,
18+ moleculeAsKeyValuePairStrings ( value , unparseAtomOrMolecule , {
19+ ordinalKeys : 'omit' ,
20+ } ) ,
1921 keyValuePairsAsStrings =>
2022 openBrace
2123 . concat ( ' ' )
Original file line number Diff line number Diff line change @@ -78,9 +78,10 @@ export const serializeIfNeeded = (
7878 ? serialize ( nodeOrMolecule )
7979 : either . makeRight ( nodeOrMolecule )
8080
81- export const sugarFreeMoleculeAsKeyValuePairStrings = (
81+ export const moleculeAsKeyValuePairStrings = (
8282 value : Molecule ,
8383 unparseAtomOrMolecule : UnparseAtomOrMolecule ,
84+ options : { readonly ordinalKeys : 'omit' | 'preserve' } ,
8485) : Either < UnserializableValueError , readonly string [ ] > => {
8586 const entries = Object . entries ( value )
8687
@@ -93,7 +94,10 @@ export const sugarFreeMoleculeAsKeyValuePairStrings = (
9394 }
9495
9596 // Omit ordinal property keys:
96- if ( propertyKey === String ( ordinalPropertyKeyCounter ) ) {
97+ if (
98+ propertyKey === String ( ordinalPropertyKeyCounter ) &&
99+ options . ordinalKeys === 'omit'
100+ ) {
97101 keyValuePairsAsStrings . push ( valueAsStringResult . value )
98102 ordinalPropertyKeyCounter += 1n
99103 } else {
Original file line number Diff line number Diff line change @@ -2,9 +2,9 @@ import either from '@matt.kantor/either'
22import type { Atom , Molecule } from '../parsing.js'
33import {
44 closeBrace ,
5+ moleculeAsKeyValuePairStrings ,
56 moleculeUnparser ,
67 openBrace ,
7- sugarFreeMoleculeAsKeyValuePairStrings ,
88 unparseAtom ,
99} from './plz-utilities.js'
1010import { indent , type Notation } from './unparsing-utilities.js'
@@ -14,7 +14,9 @@ const unparseSugarFreeMolecule = (value: Molecule) => {
1414 return either . makeRight ( openBrace + closeBrace )
1515 } else {
1616 return either . map (
17- sugarFreeMoleculeAsKeyValuePairStrings ( value , unparseAtomOrMolecule ) ,
17+ moleculeAsKeyValuePairStrings ( value , unparseAtomOrMolecule , {
18+ ordinalKeys : 'omit' ,
19+ } ) ,
1820 keyValuePairsAsStrings =>
1921 openBrace
2022 . concat ( '\n' )
You can’t perform that action at this time.
0 commit comments