spack.js 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. "use strict";
  2. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  3. if (k2 === undefined) k2 = k;
  4. var desc = Object.getOwnPropertyDescriptor(m, k);
  5. if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
  6. desc = { enumerable: true, get: function() { return m[k]; } };
  7. }
  8. Object.defineProperty(o, k2, desc);
  9. }) : (function(o, m, k, k2) {
  10. if (k2 === undefined) k2 = k;
  11. o[k2] = m[k];
  12. }));
  13. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  14. Object.defineProperty(o, "default", { enumerable: true, value: v });
  15. }) : function(o, v) {
  16. o["default"] = v;
  17. });
  18. var __importStar = (this && this.__importStar) || function (mod) {
  19. if (mod && mod.__esModule) return mod;
  20. var result = {};
  21. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  22. __setModuleDefault(result, mod);
  23. return result;
  24. };
  25. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  26. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  27. return new (P || (P = Promise))(function (resolve, reject) {
  28. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  29. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  30. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  31. step((generator = generator.apply(thisArg, _arguments || [])).next());
  32. });
  33. };
  34. Object.defineProperty(exports, "__esModule", { value: true });
  35. exports.config = exports.compileBundleOptions = exports.isLocalFile = void 0;
  36. const path = __importStar(require("path"));
  37. exports.isLocalFile = /^\.{0,2}\//; // starts with '/' './' '../'
  38. function compileBundleOptions(config) {
  39. return __awaiter(this, void 0, void 0, function* () {
  40. const f = config === undefined ? '.' : config;
  41. try {
  42. const filepath = typeof f === 'string' ? f : 'spack.config.js';
  43. const fileModule = exports.isLocalFile.test(filepath) ? path.resolve(filepath) : filepath;
  44. let configFromFile = require(fileModule);
  45. if (configFromFile.default) {
  46. configFromFile = configFromFile.default;
  47. }
  48. if (Array.isArray(configFromFile)) {
  49. if (Array.isArray(f)) {
  50. return [...configFromFile, ...f];
  51. }
  52. if (typeof f !== 'string') {
  53. configFromFile.push(f);
  54. }
  55. return configFromFile;
  56. }
  57. return Object.assign(Object.assign({}, configFromFile), (typeof config === 'string') ? {} : config);
  58. }
  59. catch (e) {
  60. if (typeof f === 'string') {
  61. throw new Error(`Error occurred while loading config file at ${config}: ${e}`);
  62. }
  63. return f;
  64. }
  65. });
  66. }
  67. exports.compileBundleOptions = compileBundleOptions;
  68. /**
  69. * Usage: In `spack.config.js` / `spack.config.ts`, you can utilize type annotations (to get autocompletions) like
  70. *
  71. * ```ts
  72. * import { config } from '@swc/core/spack';
  73. *
  74. * export default config({
  75. * name: 'web',
  76. * });
  77. * ```
  78. *
  79. *
  80. *
  81. */
  82. function config(c) {
  83. return c;
  84. }
  85. exports.config = config;