{
	"plugins": [
		// TypeScript + JSX
		["@babel/plugin-transform-typescript", {"isTSX": true, "allowDeclareFields": true}],
		["@babel/plugin-transform-react-jsx", {"pragma": "preact.h", "pragmaFrag": "preact.Fragment", "useBuiltIns": true}],
		["@babel/plugin-transform-class-properties", {"loose": true}],

		// ESNext
		"remove-import-export",
		"@babel/plugin-transform-logical-assignment-operators",
		["@babel/plugin-transform-nullish-coalescing-operator", {"loose": true}],
		["@babel/plugin-transform-optional-chaining", {"loose": true}],
		["@babel/plugin-transform-object-rest-spread", {"loose": true, "useBuiltIns": true}],
		"@babel/plugin-transform-optional-catch-binding",
		"@babel/plugin-transform-exponentiation-operator",

		// ES6
		"@babel/plugin-transform-arrow-functions",
		["@babel/plugin-transform-block-scoping", {"throwIfClosureRequired": true}],
		["@babel/plugin-transform-classes", {"loose": true}],
		["@babel/plugin-transform-computed-properties", {"loose": true}],
		["@babel/plugin-transform-destructuring", {"loose": true, "useBuiltIns": true}],
		["@babel/plugin-transform-for-of", {"assumeArray": true}],
		"@babel/plugin-transform-literals",
		"@babel/plugin-transform-parameters",
		"@babel/plugin-transform-shorthand-properties",
		["@babel/plugin-transform-spread", {"loose": true}],
		["@babel/plugin-transform-template-literals", {"loose": true}],

		// ES3
		"@babel/plugin-transform-member-expression-literals",
		"@babel/plugin-transform-property-literals",

		"@babel/plugin-transform-strict-mode"
	],
	"ignore": [
		"src/globals.d.ts"
	],
	"compact": true,
	"comments": false,
	"retainLines": true,
	"sourceMaps": true
}
