@gitlode/plugin-custom-field 0.3.0 → 0.4.0

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.
package/README.md CHANGED
@@ -60,6 +60,14 @@ Each emitted record will include:
60
60
 
61
61
  `config` value schema for this plugin:
62
62
 
63
+ ```json
64
+ {
65
+ "value": "<string|number|boolean>"
66
+ }
67
+ ```
68
+
69
+ or
70
+
63
71
  ```json
64
72
  {
65
73
  "value": {
@@ -70,7 +78,9 @@ Each emitted record will include:
70
78
 
71
79
  Rules:
72
80
 
73
- - `value` is required and must be an object containing at least one entry.
81
+ - `value` is required and must be either:
82
+ - a scalar: `string`, finite `number`, or `boolean`, or
83
+ - an object containing at least one entry.
74
84
  - Field names must match `^[A-Za-z_][A-Za-z0-9_-]*$`.
75
85
  - Field values must be scalar JSON values only: `string`, `number`, `boolean`, or `null`.
76
86
  - Number values must be finite (`NaN`, `Infinity`, and `-Infinity` are rejected).
@@ -98,3 +108,12 @@ If the running gitlode version does not satisfy this range, gitlode emits a warn
98
108
  ## License
99
109
 
100
110
  [MIT](LICENSE)
111
+
112
+ ## Changelog
113
+
114
+ [Changelog](CHANGELOG.md)
115
+
116
+ All notable changes to this project will be documented in this file.
117
+
118
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
119
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,oBAAoB,CAAC;AAgF5B,QAAA,MAAM,OAAO,EAAE,aAmBd,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,oBAAoB,CAAC;AAmG5B,QAAA,MAAM,OAAO,EAAE,aAmBd,CAAC;AAEF,eAAe,OAAO,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,26 @@ const FIELD_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_-]*$/;
2
2
  function isRecord(value) {
3
3
  return typeof value === "object" && value !== null && !Array.isArray(value);
4
4
  }
5
+ function parseScalarValue(valueRaw) {
6
+ switch (typeof valueRaw) {
7
+ case "string":
8
+ case "boolean":
9
+ return { type: "ok", value: valueRaw };
10
+ case "number":
11
+ if (!Number.isFinite(valueRaw)) {
12
+ return {
13
+ type: "error",
14
+ message: 'Invalid plugin config: "value" must be a finite number.',
15
+ };
16
+ }
17
+ return { type: "ok", value: valueRaw };
18
+ default:
19
+ return {
20
+ type: "error",
21
+ message: 'Invalid plugin config: "value" must be an object, string, number, or boolean.',
22
+ };
23
+ }
24
+ }
5
25
  function parseConfig(rawConfig) {
6
26
  if (!isRecord(rawConfig)) {
7
27
  return {
@@ -11,10 +31,7 @@ function parseConfig(rawConfig) {
11
31
  }
12
32
  const valueRaw = rawConfig["value"];
13
33
  if (!isRecord(valueRaw)) {
14
- return {
15
- type: "error",
16
- message: 'Invalid plugin config: "value" must be an object containing at least one entry.',
17
- };
34
+ return parseScalarValue(valueRaw);
18
35
  }
19
36
  const entries = Object.entries(valueRaw);
20
37
  if (entries.length === 0) {
@@ -46,6 +63,7 @@ function parseConfig(rawConfig) {
46
63
  parsedValue[fieldName] = value;
47
64
  break;
48
65
  case "object":
66
+ // Top-level value does not allow null, but object field values may be null.
49
67
  if (value === null) {
50
68
  parsedValue[fieldName] = null;
51
69
  break;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlode/plugin-custom-field",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Official gitlode plugin for injecting static custom field into extensions",
5
5
  "keywords": [
6
6
  "gitlode",
@@ -32,7 +32,7 @@
32
32
  "test:coverage": "vitest run --coverage"
33
33
  },
34
34
  "devDependencies": {
35
- "gitlode": "^0.8.0"
35
+ "gitlode": "^0.8.1"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "gitlode": "^0.8.0"