1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = init;
|
7 |
|
8 | var _package = require("./package");
|
9 |
|
10 | var _project = require("./project");
|
11 |
|
12 | var _prompt = require("./prompt");
|
13 |
|
14 | var _errors = require("./errors");
|
15 |
|
16 | var _logger = require("./logger");
|
17 |
|
18 | var _messages = require("./messages");
|
19 |
|
20 | var _validate = require("./validate");
|
21 |
|
22 | async function doInit(pkg) {
|
23 | pkg.entrypoints.forEach(entrypoint => {
|
24 | (0, _validate.validateEntrypointSource)(entrypoint);
|
25 | });
|
26 |
|
27 | if (pkg.entrypoints.every(entrypoint => (0, _validate.isMainFieldValid)(entrypoint))) {
|
28 | (0, _logger.info)(_messages.infos.validMainField, pkg);
|
29 | } else {
|
30 | let canWriteMainField = await _messages.confirms.writeMainField(pkg);
|
31 |
|
32 | if (!canWriteMainField) {
|
33 | throw new _errors.FatalError(_messages.errors.deniedWriteMainField, pkg);
|
34 | }
|
35 |
|
36 | pkg.setFieldOnEntrypoints("main");
|
37 | }
|
38 |
|
39 | let allEntrypointsAreMissingAModuleField = pkg.entrypoints.every(entrypoint => entrypoint.module === null);
|
40 | let someEntrypointsAreNotValid = pkg.entrypoints.some(entrypoint => !(0, _validate.isModuleFieldValid)(entrypoint));
|
41 |
|
42 | if (allEntrypointsAreMissingAModuleField || someEntrypointsAreNotValid) {
|
43 | let canWriteModuleField = await _messages.confirms.writeModuleField(pkg);
|
44 |
|
45 | if (canWriteModuleField) {
|
46 | pkg.setFieldOnEntrypoints("module");
|
47 | } else if (!allEntrypointsAreMissingAModuleField) {
|
48 | throw new _errors.FixableError(_messages.errors.invalidModuleField, pkg);
|
49 | }
|
50 | } else {
|
51 | (0, _logger.info)(_messages.infos.validModuleField, pkg);
|
52 | }
|
53 |
|
54 | let someEntrypointsHaveAMaybeInvalidUmdBuild = pkg.entrypoints.some(entrypoint => entrypoint.umdMain !== null);
|
55 | let someUmdMainFieldsAreInvalid = pkg.entrypoints.some(entrypoint => !(0, _validate.isUmdMainFieldValid)(entrypoint));
|
56 | let someUmdNamesAreNotSpecified = pkg.entrypoints.some(entrypoint => !(0, _validate.isUmdNameSpecified)(entrypoint));
|
57 |
|
58 | if (someEntrypointsHaveAMaybeInvalidUmdBuild && (someUmdMainFieldsAreInvalid || someUmdNamesAreNotSpecified)) {
|
59 | let shouldWriteUMDBuilds = await _messages.confirms.fixUmdBuild(pkg);
|
60 |
|
61 | if (shouldWriteUMDBuilds) {
|
62 | pkg.setFieldOnEntrypoints("umdMain");
|
63 |
|
64 | for (let entrypoint of pkg.entrypoints) {
|
65 | let umdName = await (0, _prompt.promptInput)(_messages.inputs.getUmdName, entrypoint);
|
66 | entrypoint.umdName = umdName;
|
67 | }
|
68 | } else {
|
69 | throw new _errors.FixableError(_messages.errors.invalidUmdMainField, pkg);
|
70 | }
|
71 | }
|
72 |
|
73 | let someEntrypointsHaveABrowserField = pkg.entrypoints.some(entrypoint => entrypoint.browser !== null);
|
74 | let someEntrypointsHaveAnInvalidBrowserField = pkg.entrypoints.some(entrypoint => !(0, _validate.isBrowserFieldValid)(entrypoint));
|
75 |
|
76 | if (someEntrypointsHaveABrowserField && someEntrypointsHaveAnInvalidBrowserField) {
|
77 | let shouldFixBrowserField = await _messages.confirms.fixBrowserField(pkg);
|
78 |
|
79 | if (shouldFixBrowserField) {
|
80 | pkg.setFieldOnEntrypoints("browser");
|
81 | } else {
|
82 | throw new _errors.FixableError(_messages.errors.invalidBrowserField, pkg);
|
83 | }
|
84 | }
|
85 |
|
86 | await Promise.all(pkg.entrypoints.map(x => x.save()));
|
87 | }
|
88 |
|
89 | async function init(directory) {
|
90 | let project = await _project.Project.create(directory);
|
91 | await Promise.all(project.packages.map(doInit));
|
92 | (0, _logger.success)("initialised project!");
|
93 | } |
\ | No newline at end of file |