feat: JSON format by space in json filter

This commit is contained in:
Jun Yang
2023-03-22 00:08:24 +08:00
parent 8037f7b4a4
commit 7b87ea82d3
3 changed files with 8 additions and 3 deletions
+2 -2
View File
@@ -9,8 +9,8 @@ export function Default<T1 extends boolean, T2> (this: FilterImpl, value: T1, de
return isFalsy(value, this.context) ? defaultValue : value
}
export function json (value: any) {
return JSON.stringify(value)
export function json (value: any, space = 0) {
return JSON.stringify(value, null, space)
}
export const raw = {
+1 -1
View File
@@ -26,7 +26,7 @@ describe('TimezoneDate', () => {
})
it('should support .toLocaleTimeString()', () => {
const date = new TimezoneDate('2021-10-06T00:00:00.001+00:00', -480)
expect(date.toLocaleTimeString('en-US')).toBe('8:00:00 AM')
expect(date.toLocaleTimeString('en-US')).toMatch(/^8:00:00\sAM$/)
expect(() => date.toLocaleDateString()).not.toThrow()
})
it('should support .toLocaleDateString()', () => {
+5
View File
@@ -24,5 +24,10 @@ describe('filters/object', function () {
it('should stringify number', async () => expect(await liquid.parseAndRender('{{2 | json}}')).toBe('2'))
it('should stringify object', async () => expect(await liquid.parseAndRender('{{obj | json}}', { obj: { foo: 'bar' } })).toBe('{"foo":"bar"}'))
it('should stringify array', async () => expect(await liquid.parseAndRender('{{arr | json}}', { arr: [-2, 'a'] })).toBe('[-2,"a"]'))
it('should support space', () => {
const scope = { obj: { foo: 'foo', bar: 'bar' } }
const result = '{\n "foo": "foo",\n "bar": "bar"\n}'
expect(liquid.parseAndRenderSync('{{obj | json: 4}}', scope)).toBe(result)
})
})
})