/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ /* eslint-env node */ 'use strict'; const EmberApp = require('ember-cli/lib/broccoli/ember-app'); const config = require('./config/environment')(); const environment = EmberApp.env(); const isProd = environment === 'production'; const isTest = environment === 'test'; // const isCI = !!process.env.CI; const appConfig = { 'ember-service-worker': { serviceWorkerScope: config.serviceWorkerScope, skipWaitingOnMessage: true, }, svgJar: { //optimize: false, //paths: [], optimizer: {}, sourceDirs: ['node_modules/@hashicorp/structure-icons/dist', 'public'], rootURL: '/ui/', }, fingerprint: { exclude: ['images/'], }, assetLoader: { generateURI: function (filePath) { return `${config.rootURL.replace(/\/$/, '')}${filePath}`; }, }, babel: { plugins: [['inline-json-import', {}]], }, hinting: isTest, tests: isTest, sourcemaps: { enabled: !isProd, }, sassOptions: { sourceMap: false, onlyIncluded: true, precision: 4, includePaths: [ './node_modules/@hashicorp/design-system-components/app/styles', './node_modules/@hashicorp/design-system-tokens/dist/products/css', ], }, minifyCSS: { options: { advanced: false, }, }, autoprefixer: { enabled: isTest || isProd, grid: true, browsers: ['defaults'], }, autoImport: { forbidEval: true, }, 'ember-test-selectors': { strip: isProd, }, 'ember-composable-helpers': { except: ['array'], }, 'ember-cli-deprecation-workflow': { enabled: true, }, }; module.exports = function (defaults) { const app = new EmberApp(defaults, appConfig); app.import('vendor/string-includes.js'); app.import('node_modules/string.prototype.endswith/endswith.js'); app.import('node_modules/string.prototype.startswith/startswith.js'); app.import('node_modules/jsonlint/lib/jsonlint.js'); app.import('node_modules/codemirror/addon/lint/lint.css'); app.import('node_modules/codemirror/lib/codemirror.css'); app.import('node_modules/text-encoder-lite/text-encoder-lite.js'); app.import('node_modules/jsondiffpatch/dist/jsondiffpatch.umd.js'); app.import('node_modules/jsondiffpatch/dist/formatters-styles/html.css'); app.import('app/styles/bulma/bulma-radio-checkbox.css'); app.import('node_modules/@hashicorp/structure-icons/dist/loading.css'); app.import('node_modules/@hashicorp/structure-icons/dist/run.css'); // Use `app.import` to add additional libraries to the generated // output files. // // If you need to use different assets in different // environments, specify an object as the first parameter. That // object's keys should be the environment name and the values // should be the asset to use in that environment. // // If the library that you are including contains AMD or ES6 // modules that you would like to import into your application // please specify an object with the list of modules as keys // along with the exports of each module as its value. return app.toTree(); };