apollo-conn-gen 0.5.0 → 0.5.1
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.
|
@@ -5,10 +5,13 @@ export class RulesLoader {
|
|
|
5
5
|
throw new Error(`Transform rules file not found: ${filePath}`);
|
|
6
6
|
}
|
|
7
7
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
8
|
-
|
|
8
|
+
return RulesLoader.fromString(content);
|
|
9
|
+
}
|
|
10
|
+
static fromString(json) {
|
|
11
|
+
const rules = JSON.parse(json);
|
|
9
12
|
// Validate the structure
|
|
10
13
|
if (!rules.rules || !Array.isArray(rules.rules)) {
|
|
11
|
-
throw new Error('Invalid transform rules
|
|
14
|
+
throw new Error('Invalid transform rules: missing or invalid "rules" array');
|
|
12
15
|
}
|
|
13
16
|
// Validate each rule
|
|
14
17
|
rules.rules.forEach((rule, index) => {
|
|
@@ -21,13 +24,5 @@ export class RulesLoader {
|
|
|
21
24
|
});
|
|
22
25
|
return rules;
|
|
23
26
|
}
|
|
24
|
-
static loadFromString(content) {
|
|
25
|
-
const rules = JSON.parse(content);
|
|
26
|
-
// Validate the structure
|
|
27
|
-
if (!rules.rules || !Array.isArray(rules.rules)) {
|
|
28
|
-
throw new Error('Invalid transform rules: missing or invalid "rules" array');
|
|
29
|
-
}
|
|
30
|
-
return rules;
|
|
31
|
-
}
|
|
32
27
|
}
|
|
33
28
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/oas/mapper/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,MAAM,OAAO,WAAW;IACf,MAAM,CAAC,QAAQ,CAAC,QAAgB;QACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/oas/mapper/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,MAAM,OAAO,WAAW;IACf,MAAM,CAAC,QAAQ,CAAC,QAAgB;QACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,OAAO,GAAW,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAY;QACnC,MAAM,KAAK,GAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,yBAAyB;QACzB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,qBAAqB;QACrB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAa,EAAE,KAAa,EAAE,EAAE;YACnD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,gCAAgC,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,oCAAoC,CAAC,CAAC;YACtF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;CACF","sourcesContent":["import fs from 'fs';\nimport { MapRules as MapRules, MapRule } from './types.js';\n\nexport class RulesLoader {\n public static fromFile(filePath: string): MapRules {\n if (!fs.existsSync(filePath)) {\n throw new Error(`Transform rules file not found: ${filePath}`);\n }\n\n const content: string = fs.readFileSync(filePath, 'utf-8');\n return RulesLoader.fromString(content);\n }\n\n public static fromString(json: string): MapRules {\n const rules: MapRules = JSON.parse(json);\n\n // Validate the structure\n if (!rules.rules || !Array.isArray(rules.rules)) {\n throw new Error('Invalid transform rules: missing or invalid \"rules\" array');\n }\n\n // Validate each rule\n rules.rules.forEach((rule: MapRule, index: number) => {\n if (!rule.pattern || typeof rule.pattern !== 'string') {\n throw new Error(`Invalid rule at index ${index}: missing or invalid \"pattern\"`);\n }\n if (!rule.replacement || typeof rule.replacement !== 'string') {\n throw new Error(`Invalid rule at index ${index}: missing or invalid \"replacement\"`);\n }\n });\n\n return rules;\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ export declare class OpNameMapper implements Mapper {
|
|
|
3
3
|
private rules;
|
|
4
4
|
constructor(rules: MapRules);
|
|
5
5
|
operationName(name: string): string;
|
|
6
|
+
static fromString(json: string): OpNameMapper;
|
|
6
7
|
static fromRules(rules: MapRules): OpNameMapper;
|
|
7
8
|
static fromPattern(pattern: string): OpNameMapper;
|
|
8
9
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RulesLoader } from './loader.js';
|
|
1
2
|
export class OpNameMapper {
|
|
2
3
|
rules;
|
|
3
4
|
constructor(rules) {
|
|
@@ -25,6 +26,10 @@ export class OpNameMapper {
|
|
|
25
26
|
}
|
|
26
27
|
return mappedName;
|
|
27
28
|
}
|
|
29
|
+
static fromString(json) {
|
|
30
|
+
const rules = RulesLoader.fromString(json);
|
|
31
|
+
return new OpNameMapper(rules);
|
|
32
|
+
}
|
|
28
33
|
static fromRules(rules) {
|
|
29
34
|
return new OpNameMapper(rules);
|
|
30
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nameMapper.js","sourceRoot":"","sources":["../../../src/oas/mapper/nameMapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nameMapper.js","sourceRoot":"","sources":["../../../src/oas/mapper/nameMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,OAAO,YAAY;IACf,KAAK,CAA2C;IAExD,YAAY,KAAe;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;aACrB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC;aACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB;aAC9E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,CAAC;gBACH,OAAO;oBACL,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,IAAI,EAAkD,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACrF,CAAC;IAEM,aAAa,CAAC,IAAY;QAC/B,IAAI,UAAU,GAAG,IAAI,CAAC;QAEtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAY;QACnC,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,KAAe;QACrC,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,OAAe;QACvC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,KAAK,GAAa;YACtB,KAAK,EAAE;gBACL;oBACE,OAAO,EAAE,YAAY;oBACrB,WAAW,EAAE,WAAW,IAAI,IAAI;iBACjC;aACF;SACF,CAAC;QACF,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF","sourcesContent":["import { RulesLoader } from './loader.js';\nimport { MapRules as MapRules, Mapper } from './types.js';\n\nexport class OpNameMapper implements Mapper {\n private rules: { regex: RegExp; replacement: string }[];\n\n constructor(rules: MapRules) {\n this.rules = rules.rules\n .filter((rule) => rule.enabled !== false)\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0)) // Higher priority first\n .map((rule) => {\n try {\n return {\n regex: new RegExp(rule.pattern),\n replacement: rule.replacement,\n };\n } catch (error) {\n console.warn(`Invalid regex pattern \"${rule.pattern}\": ${error}`);\n return null;\n }\n })\n .filter((rule): rule is { regex: RegExp; replacement: string } => rule !== null);\n }\n\n public operationName(name: string): string {\n let mappedName = name;\n\n for (const rule of this.rules) {\n mappedName = mappedName.replace(rule.regex, rule.replacement);\n }\n\n return mappedName;\n }\n\n public static fromString(json: string): OpNameMapper {\n const rules = RulesLoader.fromString(json);\n return new OpNameMapper(rules);\n }\n\n public static fromRules(rules: MapRules): OpNameMapper {\n return new OpNameMapper(rules);\n }\n\n public static fromPattern(pattern: string): OpNameMapper {\n const [regexPattern, replacement] = pattern.split(':');\n const rules: MapRules = {\n rules: [\n {\n pattern: regexPattern,\n replacement: replacement || '$1',\n },\n ],\n };\n return new OpNameMapper(rules);\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apollo-conn-gen",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Library to generate Apollo connector schemas from OpenAPI specs or JSON payloads. Also includes a CLI to generate connectors from the command line.",
|
|
5
5
|
"author": "Fernando @ Apollo",
|
|
6
6
|
"license": "MIT",
|