ldap-schema-ts-generator
Advanced tools
Comparing version 0.0.1 to 0.1.0
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -7,8 +10,12 @@ const dotenv_1 = require("dotenv"); | ||
const map_class_attributes_1 = require("./helpers/map-class-attributes"); | ||
const fs_1 = __importDefault(require("fs")); | ||
const path_1 = __importDefault(require("path")); | ||
const generateText_1 = require("./helpers/generateText"); | ||
const prettier_1 = __importDefault(require("prettier")); | ||
dotenv_1.config(); | ||
/** | ||
* 1- get list of objectClass=classSchema | ||
* 2-1 look at mustContain, systemMustContain, mayContain, and systemMayContain | ||
* 2-2 get list of objectClass=attributeSchema | ||
* 3- map attributes with class object | ||
* 2 get list of objectClass=attributeSchema | ||
* 3-1 look at mustContain, systemMustContain, mayContain, and systemMayContain | ||
* 3-2 map attributes with class object | ||
*/ | ||
@@ -20,3 +27,3 @@ const schemaDn = "CN=Schema,CN=Configuration,DC=ki,DC=local"; | ||
const objectClasses = await schema_1.getSchemaClasses({ schemaDn, logger }); | ||
const classWithAtts = map_class_attributes_1.mapClassAttributes({ | ||
const classWithAttributes = map_class_attributes_1.mapClassAttributes({ | ||
attributes: objectAttributes, | ||
@@ -32,2 +39,12 @@ classObj: objectClasses[0], | ||
*/ | ||
const rawOutput = generateText_1.generate({ data: classWithAttributes }); | ||
/** run prettier at output before write to file */ | ||
const output = prettier_1.default.format(rawOutput, { parser: "typescript" }); | ||
/** write to file. | ||
* over write if exist | ||
*/ | ||
fs_1.default.writeFileSync(path_1.default.join(process.cwd(), "generated", "out.ts"), output, { | ||
encoding: "utf8", | ||
flag: "w", | ||
}); | ||
} | ||
@@ -34,0 +51,0 @@ main().catch((err) => { |
@@ -6,3 +6,3 @@ import type { SchemaClass, SchemaAttributes } from "../services/schema"; | ||
} | ||
interface SchemaClassWithAttributes { | ||
export interface SchemaClassWithAttributes { | ||
className: string; | ||
@@ -16,2 +16,3 @@ ldapName: string; | ||
attributeID: string; | ||
attributeSyntax: string; | ||
cn: string; | ||
@@ -18,0 +19,0 @@ adminDisplayName: string; |
@@ -45,4 +45,6 @@ "use strict"; | ||
dn: utils_1.stringifyProp(foundAttribute.dn), | ||
cn: utils_1.stringifyProp(foundAttribute.cn), | ||
lDAPDisplayName: utils_1.stringifyProp(foundAttribute.lDAPDisplayName), | ||
attributeSyntax: utils_1.stringifyProp(foundAttribute.attributeSyntax), | ||
attributeID: utils_1.stringifyProp(foundAttribute.attributeID), | ||
cn: utils_1.stringifyProp(foundAttribute.cn), | ||
adminDisplayName: utils_1.stringifyProp(foundAttribute.adminDisplayName), | ||
@@ -52,3 +54,2 @@ adminDescription: utils_1.stringifyProp(foundAttribute.adminDescription), | ||
isSingleValued: utils_1.ldapBooleanToJsBoolean(utils_1.stringifyProp(foundAttribute.isSingleValued)), | ||
lDAPDisplayName: utils_1.stringifyProp(foundAttribute.lDAPDisplayName), | ||
}); | ||
@@ -55,0 +56,0 @@ }); |
{ | ||
"name": "ldap-schema-ts-generator", | ||
"version": "0.0.1", | ||
"version": "0.1.0", | ||
"description": "Ldap Active Directory Schema Typescript Generator", | ||
@@ -56,3 +56,2 @@ "repository": { | ||
"ts-jest": "^25.3.1", | ||
"ts-node": "^8.6.2", | ||
"typescript": "^3.8.3" | ||
@@ -59,0 +58,0 @@ }, |
@@ -5,2 +5,6 @@ import { config } from "dotenv"; | ||
import { mapClassAttributes } from "./helpers/map-class-attributes"; | ||
import fs from "fs"; | ||
import path from "path"; | ||
import { generate } from "./helpers/generateText"; | ||
import prettier from "prettier"; | ||
config(); | ||
@@ -10,5 +14,5 @@ | ||
* 1- get list of objectClass=classSchema | ||
* 2-1 look at mustContain, systemMustContain, mayContain, and systemMayContain | ||
* 2-2 get list of objectClass=attributeSchema | ||
* 3- map attributes with class object | ||
* 2 get list of objectClass=attributeSchema | ||
* 3-1 look at mustContain, systemMustContain, mayContain, and systemMayContain | ||
* 3-2 map attributes with class object | ||
*/ | ||
@@ -25,3 +29,3 @@ | ||
const classWithAtts = mapClassAttributes({ | ||
const classWithAttributes = mapClassAttributes({ | ||
attributes: objectAttributes, | ||
@@ -38,2 +42,15 @@ classObj: objectClasses[0], | ||
*/ | ||
const rawOutput = generate({ data: classWithAttributes }); | ||
/** run prettier at output before write to file */ | ||
const output = prettier.format(rawOutput, { parser: "typescript" }); | ||
/** write to file. | ||
* over write if exist | ||
*/ | ||
fs.writeFileSync(path.join(process.cwd(), "generated", "out.ts"), output, { | ||
encoding: "utf8", | ||
flag: "w", | ||
}); | ||
} | ||
@@ -40,0 +57,0 @@ main().catch((err) => { |
@@ -10,3 +10,3 @@ import type { SchemaClass, SchemaAttributes } from "../services/schema"; | ||
interface SchemaClassWithAttributes { | ||
export interface SchemaClassWithAttributes { | ||
className: string; | ||
@@ -20,2 +20,3 @@ ldapName: string; | ||
attributeID: string; | ||
attributeSyntax: string; | ||
cn: string; | ||
@@ -89,4 +90,6 @@ adminDisplayName: string; | ||
dn: stringifyProp(foundAttribute.dn), | ||
cn: stringifyProp(foundAttribute.cn), | ||
lDAPDisplayName: stringifyProp(foundAttribute.lDAPDisplayName), | ||
attributeSyntax: stringifyProp(foundAttribute.attributeSyntax), | ||
attributeID: stringifyProp(foundAttribute.attributeID), | ||
cn: stringifyProp(foundAttribute.cn), | ||
adminDisplayName: stringifyProp(foundAttribute.adminDisplayName), | ||
@@ -98,3 +101,2 @@ adminDescription: stringifyProp(foundAttribute.adminDescription), | ||
), | ||
lDAPDisplayName: stringifyProp(foundAttribute.lDAPDisplayName), | ||
}); | ||
@@ -101,0 +103,0 @@ }); |
@@ -63,3 +63,3 @@ { | ||
}, | ||
"exclude": ["**/*.test.*", "dist"] | ||
"exclude": ["**/*.test.*", "dist", "generated"] | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
69621
14
75
1242
14