comment-variables 0.14.1 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ // A JavaScript file that acts as an example file for the generated Comment Variables template config. Assuming you've yet to produce your own `comments.config.js` file, use the `comment-variables compress` and `comment-variables resolve` commands to see how the following comments go back and forth from Comment Variables placeholders (`$COMMENT`) to actual comments, reversibly.
2
+
3
+ // This is a comment.
4
+ // $COMMENT#ALIAS
5
+ // Yes.
6
+ // This is a comment. Yes. This is a comment.
7
+ // $COMMENT#COMMENTS#NO
@@ -0,0 +1,31 @@
1
+ // A Comment Variables config template generated in case no config file has been found. Feel free to use it as a stepping stone to learn how to use Comment Variables.
2
+
3
+ // As a first step, go ahead and run the command `comment-variables placeholders`.
4
+ // Then rename the `$COMMENT#COMMENT` placeholder next to `alias` to `$COMMENT#ALIAS` and run `comment-variables placeholders` to see what happens.
5
+ // You can now use and explore Comment Variables on the accompanying `comments.example.js` file that has also been generated.
6
+
7
+ const data = Object.freeze({
8
+ comment: "This is a comment.",
9
+ alias: "COMMENT",
10
+ composed: "$COMMENT#COMMENT $COMMENT#COMMENTS#YES $COMMENT#ALIAS",
11
+ comments: Object.freeze({
12
+ yes: "Yes.",
13
+ no: "No.",
14
+ }),
15
+ });
16
+
17
+ const ignores = [];
18
+
19
+ const lintConfigImports = false; // can be ommitted
20
+ const myIgnoresOnly = false; // can be ommitted
21
+
22
+ const config = {
23
+ data,
24
+ ignores,
25
+ lintConfigImports,
26
+ myIgnoresOnly,
27
+ };
28
+
29
+ export default config;
30
+
31
+ // Once you've grasped these concepts, simply copy or rename this file to `comments.config.js` and you're good to go.
@@ -5,9 +5,9 @@ import {
5
5
  } from "comment-variables-resolve-config";
6
6
 
7
7
  /**
8
- * The utility that creates the compress rule based on the reversed flattened config data, used to transform actual comments into `$COMMENT` placeholders.
9
- * @param {{[key: string]: string}} reversedFlattenedConfigData The reversed flattened config data, with actual comments as keys and `$COMMENT` placeholders as values.
10
- * @returns The compress rule based on the reversed flattened config data.
8
+ * $COMMENT#JSDOC#DEFINITIONS#MAKERULECOMPRESS
9
+ * @param {{[key: string]: string}} reversedFlattenedConfigData $COMMENT#JSDOC#PARAMS#REVERSEDFLATTENEDCONFIGDATA
10
+ * @returns $COMMENT#JSDOC#RETURNS#MAKERULECOMPRESS
11
11
  */
12
12
  const makeRule = (reversedFlattenedConfigData) => {
13
13
  /** The whole `reversedFlattenedConfigData` turned from an object to an array of key-value arrays sorted by the descending length of each key to prevent partial replacements. */
@@ -4,10 +4,10 @@ import {
4
4
  } from "comment-variables-resolve-config";
5
5
 
6
6
  /**
7
- * The utility that creates the resolve rule based on the flattened config data, used to transform `$COMMENT` placeholders into actual comments.
8
- * @param {{[key: string]: string}} flattenedConfigData The flattened config data, with `$COMMENT` placeholders as keys and actual comments as values.
9
- * @param {{[key: string]: string}} aliases_flattenedKeys The dictionary that connects aliases to their original flattened keys in case an encountered placeholder is actually an alias.
10
- * @returns The resolve rule based on the flattened config data.
7
+ * $COMMENT#JSDOC#DEFINITIONS#MAKERULERESOLVE
8
+ * @param {{[key: string]: string}} flattenedConfigData $COMMENT#JSDOC#PARAMS#FLATTENEDCONFIGDATA
9
+ * @param {{[key: string]: string}} aliases_flattenedKeys $COMMENT#JSDOC#PARAMS#ALIASES_FLATTENEDKEYS
10
+ * @returns $COMMENT#JSDOC#RETURNS#MAKERULERESOLVE
11
11
  */
12
12
  const makeRule = (flattenedConfigData, aliases_flattenedKeys) => {
13
13
  /** @type {import('@typescript-eslint/utils').TSESLint.RuleModule<typeof placeholderMessageId, []>} */
@@ -21,11 +21,11 @@ import { ruleNames_makeRules } from "../constants/rules.js";
21
21
  /* coreCommentsFlow */
22
22
 
23
23
  /**
24
- * The core flow at the heart of resolving and compressing comments.
25
- * @param {typeof resolveRuleName | typeof compressRuleName} ruleName The name of the rule currently used. (Either `"resolve"` or `"compress"`.)
26
- * @param {string[]} ignores The array of paths and globs for the flow's ESLint instance to ignore.
27
- * @param {{[key: string]: string}} flattenedConfigData Either the flattened config data or the reversed flattened config data, since they share the same structure.
28
- * @param {Record<string, string> | undefined} aliases_flattenedKeys The dictionary that connects aliases to their original flattened keys in case an encountered placeholder is actually an alias.
24
+ * $COMMENT#JSDOC#DEFINITIONS#CORECOMMENTSFLOW
25
+ * @param {typeof resolveRuleName | typeof compressRuleName} ruleName $COMMENT#JSDOC#PARAMS#RULENAME
26
+ * @param {string[]} ignores $COMMENT#JSDOC#PARAMS#IGNORES
27
+ * @param {{[key: string]: string}} flattenedConfigData $COMMENT#JSDOC#PARAMS#EITHERFLATTENEDCONFIGDATA
28
+ * @param {Record<string, string> | undefined} aliases_flattenedKeys $COMMENT#JSDOC#PARAMS#ALIASES_FLATTENEDKEYS
29
29
  * @returns
30
30
  */
31
31
  const coreCommentsFlow = async (
@@ -104,10 +104,10 @@ const coreCommentsFlow = async (
104
104
  /* resolveCommentsFlow */
105
105
 
106
106
  /**
107
- * The flow that resolves `$COMMENT` placeholders into actual comments.
108
- * @param {string[]} ignores The array of paths and globs for the flow's ESLint instance to ignore.
109
- * @param {Record<string, string>} flattenedConfigData The flattened config data, with `$COMMENT` placeholders as keys and actual comments as values.
110
- * @param {Record<string, string>} aliases_flattenedKeys The dictionary that connects aliases to their original flattened keys in case an encountered placeholder is actually an alias.
107
+ * $COMMENT#JSDOC#DEFINITIONS#RESOLVECOMMENTSFLOW
108
+ * @param {string[]} ignores $COMMENT#JSDOC#PARAMS#IGNORES
109
+ * @param {Record<string, string>} flattenedConfigData $COMMENT#JSDOC#PARAMS#FLATTENEDCONFIGDATA
110
+ * @param {Record<string, string>} aliases_flattenedKeys $COMMENT#JSDOC#PARAMS#ALIASES_FLATTENEDKEYS
111
111
  * @returns
112
112
  */
113
113
  export const resolveCommentsFlow = async (
@@ -125,9 +125,9 @@ export const resolveCommentsFlow = async (
125
125
  /* compressCommentsFlow */
126
126
 
127
127
  /**
128
- * The flow that compresses actual comments into `$COMMENT` placeholders.
129
- * @param {string[]} ignores The array of paths and globs for the flow's ESLint instance to ignore.
130
- * @param {{[key: string]: string}} reversedFlattenedConfigData The reversed flattened config data, with actual comments as keys and `$COMMENT` placeholders as values.
128
+ * $COMMENT#JSDOC#DEFINITIONS#COMPRESSCOMMENTSFLOW
129
+ * @param {string[]} ignores $COMMENT#JSDOC#PARAMS#IGNORES
130
+ * @param {{[key: string]: string}} reversedFlattenedConfigData $COMMENT#JSDOC#PARAMS#REVERSEDFLATTENEDCONFIGDATA
131
131
  * @returns
132
132
  */
133
133
  export const compressCommentsFlow = async (
@@ -138,10 +138,10 @@ export const compressCommentsFlow = async (
138
138
  /* placeholdersCommentsFlow */
139
139
 
140
140
  /**
141
- * The flow that creates `$COMMENT` placeholders right next to where they're defined.
142
- * @param {string[]} configPathIgnores The array of paths linked to the config file, (named "ignores" given it is ignored by the "compress" and "resolve" commands).
143
- * @param {{[k: string]: string;}} originalFlattenedConfigData The original flattened config data, before changes to Aliases Variables and Composed Variables are applied.
144
- * @param {Record<string, string>} aliases_flattenedKeys The dictionary that connects aliases to their original flattened keys in case an encountered placeholder is actually an alias.
141
+ * $COMMENT#JSDOC#DEFINITIONS#PLACEHOLDERSCOMMENTSFLOW
142
+ * @param {string[]} configPathIgnores $COMMENT#JSDOC#PARAMS#CONFIGPATHIGNORES
143
+ * @param {{[k: string]: string;}} originalFlattenedConfigData $COMMENT#JSDOC#PARAMS#ORIGINALFLATTENEDCONFIGDATA
144
+ * @param {Record<string, string>} aliases_flattenedKeys $COMMENT#JSDOC#PARAMS#ALIASES_FLATTENEDKEYS
145
145
  * @returns
146
146
  */
147
147
  export const placeholdersCommentsFlow = async (
@@ -1,16 +1,16 @@
1
1
  /* exitDueToFailure */
2
2
 
3
3
  /**
4
- * Terminates the whole process with a 'failure' code (`1`).
5
- * @returns {never} Never. (Somehow typing needs to be explicit for unreachable code inference.)
4
+ * $COMMENT#JSDOC#DEFINITIONS#EXITDUETOFAILURE
5
+ * @returns {never} $COMMENT#JSDOC#RETURNS#EXITDUETOFAILURE
6
6
  */
7
7
  export const exitDueToFailure = () => process.exit(1);
8
8
 
9
9
  /* logError */
10
10
 
11
11
  /**
12
- * Logs an error to the console depending on its type. (`"error"` or `"warning"`.)
13
- * @param {{type: "error" | "warning"; message: string}} error The error object being handle for the logging.
12
+ * $COMMENT#JSDOC#DEFINITIONS#LOGERROR
13
+ * @param {{type: "error" | "warning"; message: string}} error $COMMENT#JSDOC#PARAMS#ERROR
14
14
  * @returns
15
15
  */
16
16
  export const logError = (error) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "comment-variables",
3
- "version": "0.14.1",
3
+ "version": "0.14.2",
4
4
  "description": "A CLI tool for configuring, managing and maintaining JavaScript comments as JavaScript variables.",
5
5
  "bin": {
6
6
  "jscomments": "./library/index.js",
@@ -11,8 +11,8 @@
11
11
  "library",
12
12
  "comments.config.js",
13
13
  "comments.config.json",
14
- "comments.template.js",
15
- "comments.example.js"
14
+ "generate.template.js",
15
+ "generate.example.js"
16
16
  ],
17
17
  "repository": {
18
18
  "type": "git",