UNPKG

@blinkk/editor

Version:

Structured content editor with live previews.

249 lines 5.54 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const deepClean_1 = require("./deepClean"); const ava_1 = __importDefault(require("ava")); ava_1.default('protected key patterns', t => { const cleaner = new deepClean_1.DeepClean({ protectedKeyPatterns: ['foo', 'bar.*', /baz$/], removeNulls: true, }); t.deepEqual(cleaner.clean({ clean: null, foo: null, barz: null, lubaz: null, }), { foo: null, barz: null, lubaz: null, }); }); ava_1.default('remove empty arrays', t => { const cleaner = new deepClean_1.DeepClean({ removeEmptyArrays: true, }); // Main level empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: [], }), { foo: 'bar', }); // Deep empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: { floo: 'baz', bar: [], }, }), { foo: 'bar', test: { floo: 'baz', }, }); // Array with empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: ['baz', []], }), { foo: 'bar', test: ['baz'], }); // Nested empty arrays. t.deepEqual(cleaner.clean({ foo: 'bar', test: [[]], }), { foo: 'bar', }); t.deepEqual(cleaner.clean(['bar', []]), ['bar']); }); ava_1.default('remove empty objects', t => { const cleaner = new deepClean_1.DeepClean({ removeEmptyObjects: true, }); // Main level empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: {}, }), { foo: 'bar', }); // Deep empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: { floo: 'baz', bar: {}, }, }), { foo: 'bar', test: { floo: 'baz', }, }); // Array with empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: ['baz', {}], }), { foo: 'bar', test: ['baz'], }); // Nested empty objects in depth. t.deepEqual(cleaner.clean({ foo: 'bar', test: { bar: {}, }, }), { foo: 'bar', }); t.deepEqual(cleaner.clean(['bar', {}]), ['bar']); }); ava_1.default('remove empty strings', t => { const cleaner = new deepClean_1.DeepClean({ removeEmptyStrings: true, }); // Main level empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: '', }), { foo: 'bar', }); // Whitespace only. t.deepEqual(cleaner.clean({ foo: 'bar', test: ' ', }), { foo: 'bar', }); // Deep empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: { floo: 'baz', bar: '', }, }), { foo: 'bar', test: { floo: 'baz', }, }); // Array with empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: ['baz', ''], }), { foo: 'bar', test: ['baz'], }); t.deepEqual(cleaner.clean(['bar', '']), ['bar']); }); ava_1.default('remove nulls', t => { const cleaner = new deepClean_1.DeepClean({ removeNulls: true, }); // Main level empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: null, }), { foo: 'bar', }); // Deep empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: { floo: 'baz', bar: null, }, }), { foo: 'bar', test: { floo: 'baz', }, }); // Array with empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: ['baz', null], }), { foo: 'bar', test: ['baz'], }); t.deepEqual(cleaner.clean(['bar', null]), ['bar']); }); ava_1.default('remove undefineds', t => { const cleaner = new deepClean_1.DeepClean({ removeUndefineds: true, }); // Main level empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: undefined, }), { foo: 'bar', }); // Deep empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: { floo: 'baz', bar: undefined, }, }), { foo: 'bar', test: { floo: 'baz', }, }); // Array with empty object. t.deepEqual(cleaner.clean({ foo: 'bar', test: ['baz', undefined], }), { foo: 'bar', test: ['baz'], }); t.deepEqual(cleaner.clean(['bar', undefined]), ['bar']); }); ava_1.default('remove by key', t => { const cleaner = new deepClean_1.DeepClean({ removeKeys: ['foo'], }); // Main level key. t.deepEqual(cleaner.clean({ foo: 'bar', test: undefined, }), { test: undefined, }); // Deep key. t.deepEqual(cleaner.clean({ foo: 'bar', test: { foo: 'baz', }, }), { test: {}, }); // Array with key. t.deepEqual(cleaner.clean([ { foo: 'bar', test: ['baz'], }, ]), [ { test: ['baz'], }, ]); }); //# sourceMappingURL=deepClean.test.js.map