123456789101112131415161718192021 |
- 'use strict';
- // parses a feature string that has the format used in window.open()
- // - `features` input string
- // - `emit` function(key, value) - called for each parsed KV
- module.exports = function parseFeaturesString (features, emit) {
- features = `${features}`.trim();
- // split the string by ','
- features.split(/\s*,\s*/).forEach((feature) => {
- // expected form is either a key by itself or a key/value pair in the form of
- // 'key=value'
- let [key, value] = feature.split(/\s*=\s*/);
- if (!key) return;
- // interpret the value as a boolean, if possible
- value = (value === 'yes' || value === '1') ? true : (value === 'no' || value === '0') ? false : value;
- // emit the parsed pair
- emit(key, value);
- });
- };
|