| /** |
| * 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(); |
| }; |