Skip to content

feature request: whole process to fail when some process fails #224

Description

@tnyo43

Your issue may already be reported!
Please search on the issue tracker before creating one. <- DONE

Expected Behavior

If generation processes for invalid scss files fail, I want the entire process to fail as well.

Current Behavior

Error messages for invalid scss files are displayed, but the entire process finishes successfully.

Possible Solution

I think this behavior is come from the code below.

} catch (error) {
const { message, file, line, column } = error as SassError;
const location = file ? ` (${file}[${line}:${column}])` : "";
alerts.error(`${message}${location}`);
}

When an error is thrown, it catches but not throw another error again.

We may be able to just re-throw the error. However, I read this comment and am thinking we need some tricks... 🤔

// Wait for all the type definitions to be written.
await Promise.all(files.map((file) => writeFile(file, options)));

Steps to Reproduce (for bugs)

reproduction

  1. clone the repository
  2. run npm install
  3. run npm run generate

You will see some thing like below but the whole process succeeded:

% npm run generate

> reproduce-typed-scss-modules-process-want-fail@1.0.0 generate
> typed-scss-modules src/**/*.module.scss --implementation sass

Found 2 files. Generating type definitions...
expected "}".
  ╷
9 │ // }
  │     ^
  ╵
  src/style2.module.scss 9:5  root stylesheet (/path/to/reproduce-typed-scss-modules-process-want-fail/src/style2.module.scss[9:5])
[GENERATED TYPES] src/style1.module.scss.d.ts

Context

I've been confused because the generation process had succeeded but the files had been not created.

Your Environment

  • Version used: 8.0.0
  • Operating System and versions: macOS 14.0 (23A344)
  • Link to your project: N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions