open-consul/ui/packages/consul-ui/config/targets.js

35 lines
1.5 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
'use strict';
// Technically this file configures babel transpilation support but we also
// use this file as a reference for our current browser support matrix and is
// therefore used by humans also. Therefore please feel free to be liberal
// with comments.
// We are moving to a rough ~2 years back support rather than a 2 versions
// back support. This strikes a balance between folks who need to get a job
// done in the Consul UI and keeping the codebase modern and being able to use
// modern Web Platform features. This is not set in stone but please consult
// with the rest of the team before bumping forwards (or backwards)
// We pin specific versions rather than use a relative value so we can choose
// to bump and it's clear what is supported.
///
// async/await support came before the below specified versions for Chrome,
// Firefox and Edge. Async/await is is the newest ES6 feature we are not
// transpiling. Safari's template literal support is a little problematic during
// v12 in that it has a GC bug for tagged template literals. We don't currently
// rely on this functionality so the bug wouldn't effect us, but in order to use
// browser versions as a measure for ES6 features we need to specify Safari 13
// for native, non-transpiled template literals. In reality template literals
// came in Safari 9.1. Safari's async/await support came in Safari 10.
module.exports = {
browsers: ['Chrome 79', 'Firefox 72', 'Safari 13', 'Edge 79'],
};