-const colors = require('chalk')
-const debug = require('debug')('purs-loader')
-const loaderUtils = require('loader-utils')
-const globby = require('globby')
-const Promise = require('bluebird')
-const fs = Promise.promisifyAll(require('fs'))
-const spawn = require('cross-spawn')
-const path = require('path')
-const retryPromise = require('promise-retry')
-const jsStringEscape = require('js-string-escape')
-
-const ffiModuleRegex = /\/\/\s+module\s+([\w\.]+)/i
-const srcModuleRegex = /(?:^|\n)module\s+([\w\.]+)/i
-const requireRegex = /require\(['"]\.\.\/([\w\.]+)['"]\)/g
-
-module.exports = function purescriptLoader(source, map) {
- const callback = this.async()
- const config = this.options
- const query = loaderUtils.parseQuery(this.query)
- const webpackOptions = this.options.purescriptLoader || {}
-
- const options = Object.assign({
- context: config.context,
- psc: 'psc',
- pscArgs: {},
- pscBundle: 'psc-bundle',
- pscBundleArgs: {},
- pscIde: false,
- pscIdeColors: webpackOptions.psc === 'psa' || query.psc === 'psa',
- pscIdeArgs: {},
- bundleOutput: 'output/bundle.js',
- bundleNamespace: 'PS',
- bundle: false,
- warnings: true,
- output: 'output',
- src: [
- path.join('src', '**', '*.purs'),
- path.join('bower_components', 'purescript-*', 'src', '**', '*.purs')
- ],
- ffi: [
- path.join('src', '**', '*.js'),
- path.join('bower_components', 'purescript-*', 'src', '**', '*.js')
- ],
- }, webpackOptions, query)
-
- this.cacheable && this.cacheable()
-
- let cache = config.purescriptLoaderCache = config.purescriptLoaderCache || {
- rebuild: false,
- deferred: [],
- bundleModules: [],
- }