@roadmanjs/utils 0.0.4 → 0.0.5
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/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/morpheus/index.d.ts +15 -0
- package/dist/morpheus/index.js +59 -0
- package/dist/morpheus/index.js.map +1 -0
- package/dist/morpheus/interface.d.ts +27 -0
- package/dist/morpheus/interface.js +45 -0
- package/dist/morpheus/interface.js.map +1 -0
- package/dist/morpheus/writter/index.d.ts +12 -0
- package/dist/morpheus/writter/index.js +39 -0
- package/dist/morpheus/writter/index.js.map +1 -0
- package/dist/morpheus.test.d.ts +1 -0
- package/dist/morpheus.test.js +55 -0
- package/dist/morpheus.test.js.map +1 -0
- package/dist/ts.d.ts +8 -0
- package/dist/ts.js +13 -0
- package/dist/ts.js.map +1 -0
- package/dist/utils/text.utils.d.ts +14 -0
- package/dist/utils/text.utils.js +45 -0
- package/dist/utils/text.utils.js.map +1 -0
- package/package.json +4 -2
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -11,4 +11,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./scripts"), exports);
|
|
14
|
+
__exportStar(require("./morpheus"), exports);
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { InterfaceDefinition } from './interface';
|
|
2
|
+
export interface Consts {
|
|
3
|
+
name: string;
|
|
4
|
+
value: string;
|
|
5
|
+
leadingTrivia?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface MorpheusArgs {
|
|
8
|
+
filename: string;
|
|
9
|
+
consts: Consts[];
|
|
10
|
+
interfaces?: InterfaceDefinition[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Morpheus in action
|
|
14
|
+
*/
|
|
15
|
+
export declare const writeAllFilesToProject: (args: MorpheusArgs[], path: string, pathToFolder?: string) => Promise<boolean>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeAllFilesToProject = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Define all models that can should be morphed
|
|
6
|
+
*/
|
|
7
|
+
const ts_morph_1 = require("ts-morph");
|
|
8
|
+
const text_utils_1 = require("../utils/text.utils");
|
|
9
|
+
const writter_1 = require("./writter");
|
|
10
|
+
/**
|
|
11
|
+
* Morpheus in action
|
|
12
|
+
*/
|
|
13
|
+
const writeAllFilesToProject = async (args, path, pathToFolder) => {
|
|
14
|
+
// write each file
|
|
15
|
+
const writeFilesTasks = args.map((arg) => {
|
|
16
|
+
const { consts: constStatements, filename, interfaces } = arg;
|
|
17
|
+
const nameSNAKE_CASE = (0, text_utils_1.toSnakeUpper)(filename);
|
|
18
|
+
return {
|
|
19
|
+
filename: nameSNAKE_CASE,
|
|
20
|
+
task: (0, writter_1.writeTsFile)({
|
|
21
|
+
pathToFolder,
|
|
22
|
+
pathToTs: path,
|
|
23
|
+
filename: nameSNAKE_CASE,
|
|
24
|
+
variables: constStatements.map((con) => ({
|
|
25
|
+
name: con.name,
|
|
26
|
+
initializer: JSON.stringify(con.value),
|
|
27
|
+
// leadingTrivia: (writer) => {
|
|
28
|
+
// writer.writeLine('\n');
|
|
29
|
+
// if (con?.leadingTrivia) {
|
|
30
|
+
// writer.writeLine(con.leadingTrivia);
|
|
31
|
+
// }
|
|
32
|
+
// },
|
|
33
|
+
// trailingTrivia: (writer) => writer.writeLine('\n'),
|
|
34
|
+
})),
|
|
35
|
+
interfaces,
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
// write all files
|
|
40
|
+
await Promise.all(writeFilesTasks.map((i) => i.task));
|
|
41
|
+
// write all exports
|
|
42
|
+
const allFileExports = writeFilesTasks
|
|
43
|
+
.map((i) => i.filename)
|
|
44
|
+
.map((c) => ({
|
|
45
|
+
kind: ts_morph_1.StructureKind.ExportDeclaration,
|
|
46
|
+
// namespaceExport: "*",
|
|
47
|
+
moduleSpecifier: `./${c}`,
|
|
48
|
+
}));
|
|
49
|
+
// write final index file
|
|
50
|
+
await (0, writter_1.writeTsFile)({
|
|
51
|
+
pathToFolder,
|
|
52
|
+
pathToTs: path,
|
|
53
|
+
filename: 'index',
|
|
54
|
+
exports: allFileExports,
|
|
55
|
+
});
|
|
56
|
+
return true;
|
|
57
|
+
};
|
|
58
|
+
exports.writeAllFilesToProject = writeAllFilesToProject;
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/morpheus/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,uCAAmE;AAGnE,oDAAiD;AACjD,uCAAsC;AAatC;;GAEG;AACI,MAAM,sBAAsB,GAAG,KAAK,EACvC,IAAoB,EACpB,IAAY,EACZ,YAAqB,EACvB,EAAE;IACA,kBAAkB;IAClB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACrC,MAAM,EAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAC,GAAG,GAAG,CAAC;QAC5D,MAAM,cAAc,GAAG,IAAA,yBAAY,EAAC,QAAQ,CAAC,CAAC;QAE9C,OAAO;YACH,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,IAAA,qBAAW,EAAC;gBACd,YAAY;gBACZ,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,cAAc;gBACxB,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACrC,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;oBACtC,+BAA+B;oBAC/B,8BAA8B;oBAE9B,gCAAgC;oBAChC,+CAA+C;oBAC/C,QAAQ;oBACR,KAAK;oBACL,sDAAsD;iBACzD,CAAC,CAAC;gBACH,UAAU;aACb,CAAC;SACL,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtD,oBAAoB;IACpB,MAAM,cAAc,GAAiC,eAAe;SAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,IAAI,EAAE,wBAAa,CAAC,iBAAiB;QACrC,0BAA0B;QAC1B,eAAe,EAAE,KAAK,CAAC,EAAE;KAC5B,CAAC,CAAC,CAAC;IAER,yBAAyB;IACzB,MAAM,IAAA,qBAAW,EAAC;QACd,YAAY;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,cAAc;KAC1B,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAtDW,QAAA,sBAAsB,0BAsDjC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare type IType = 'Date' | 'string' | 'number' | 'bigint' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'function';
|
|
2
|
+
export interface KeyType {
|
|
3
|
+
name: string;
|
|
4
|
+
type: IType;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Detect type of a key
|
|
8
|
+
* Only dealing with 4 types for now
|
|
9
|
+
* @param obj
|
|
10
|
+
* @param key
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export declare const getPropertyType: (obj: any, key: any) => IType;
|
|
14
|
+
export interface InterfaceProperty {
|
|
15
|
+
name: string;
|
|
16
|
+
type: IType;
|
|
17
|
+
}
|
|
18
|
+
export interface InterfaceDefinition {
|
|
19
|
+
name: string;
|
|
20
|
+
properties: InterfaceProperty[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create an interface from a class
|
|
24
|
+
* @param Cls
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
export declare const createInterfaceFromClass: (Cls: any) => InterfaceDefinition;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createInterfaceFromClass = exports.getPropertyType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Detect type of a key
|
|
6
|
+
* Only dealing with 4 types for now
|
|
7
|
+
* @param obj
|
|
8
|
+
* @param key
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
const getPropertyType = (obj, key) => {
|
|
12
|
+
if (obj[key] instanceof Date) {
|
|
13
|
+
return 'Date';
|
|
14
|
+
}
|
|
15
|
+
if (typeof obj[key] === 'number') {
|
|
16
|
+
return 'number';
|
|
17
|
+
}
|
|
18
|
+
if (typeof obj[key] === 'string') {
|
|
19
|
+
return 'string';
|
|
20
|
+
}
|
|
21
|
+
// just return the default type
|
|
22
|
+
return typeof obj[key];
|
|
23
|
+
};
|
|
24
|
+
exports.getPropertyType = getPropertyType;
|
|
25
|
+
/**
|
|
26
|
+
* Create an interface from a class
|
|
27
|
+
* @param Cls
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
const createInterfaceFromClass = (Cls) => {
|
|
31
|
+
// pass in class
|
|
32
|
+
const CLS = new Cls();
|
|
33
|
+
const keys = Object.getOwnPropertyNames(CLS); // got the keys
|
|
34
|
+
const keysWithType = keys.map((key) => {
|
|
35
|
+
const keyType = (0, exports.getPropertyType)(CLS, key);
|
|
36
|
+
return { name: key, type: keyType };
|
|
37
|
+
});
|
|
38
|
+
const name = Cls.name;
|
|
39
|
+
return {
|
|
40
|
+
name,
|
|
41
|
+
properties: keysWithType,
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
exports.createInterfaceFromClass = createInterfaceFromClass;
|
|
45
|
+
//# sourceMappingURL=interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/morpheus/interface.ts"],"names":[],"mappings":";;;AAeA;;;;;;GAMG;AACI,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAS,EAAE;IAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;QAC1B,OAAO,MAAM,CAAC;KACjB;IAED,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;QAC9B,OAAO,QAAQ,CAAC;KACnB;IAED,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;QAC9B,OAAO,QAAQ,CAAC;KACnB;IAED,+BAA+B;IAC/B,OAAO,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC;AAfW,QAAA,eAAe,mBAe1B;AAYF;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,CAAC,GAAQ,EAAuB,EAAE;IACtE,gBAAgB;IAChB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACtB,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe;IAE7D,MAAM,YAAY,GAAc,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB,OAAO;QACH,IAAI;QACJ,UAAU,EAAE,YAAY;KAC3B,CAAC;AACN,CAAC,CAAC;AAhBW,QAAA,wBAAwB,4BAgBnC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ExportDeclarationStructure, OptionalKind, StatementedNodeStructure, VariableDeclarationStructure } from 'ts-morph';
|
|
2
|
+
import { InterfaceDefinition } from '../interface';
|
|
3
|
+
interface WriteFileProps extends StatementedNodeStructure {
|
|
4
|
+
pathToFolder?: string;
|
|
5
|
+
pathToTs: string;
|
|
6
|
+
filename: string;
|
|
7
|
+
variables?: OptionalKind<VariableDeclarationStructure>[];
|
|
8
|
+
interfaces?: InterfaceDefinition[];
|
|
9
|
+
exports?: OptionalKind<ExportDeclarationStructure>[];
|
|
10
|
+
}
|
|
11
|
+
export declare const writeTsFile: (props: WriteFileProps) => Promise<any>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeTsFile = void 0;
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
const writeTsFile = async (props) => {
|
|
6
|
+
const { filename, statements, variables, interfaces, exports, pathToTs, pathToFolder } = props;
|
|
7
|
+
const project = new ts_morph_1.Project({
|
|
8
|
+
tsConfigFilePath: `${pathToTs}/tsconfig.json`,
|
|
9
|
+
skipAddingFilesFromTsConfig: true,
|
|
10
|
+
});
|
|
11
|
+
const sourceFile = project.createSourceFile(`${pathToFolder || pathToTs}/${filename}.ts`, {}, { overwrite: true });
|
|
12
|
+
if (interfaces) {
|
|
13
|
+
interfaces.map((interfc) => {
|
|
14
|
+
const interfaceDef = sourceFile.addInterface({
|
|
15
|
+
name: interfc.name,
|
|
16
|
+
isExported: true,
|
|
17
|
+
});
|
|
18
|
+
interfc.properties.map((proper) => {
|
|
19
|
+
interfaceDef.addProperty({
|
|
20
|
+
name: proper.name,
|
|
21
|
+
type: proper.type,
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if (variables) {
|
|
27
|
+
sourceFile.addVariableStatement({
|
|
28
|
+
declarationKind: ts_morph_1.VariableDeclarationKind.Const,
|
|
29
|
+
isExported: true,
|
|
30
|
+
declarations: variables,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (exports) {
|
|
34
|
+
sourceFile.addExportDeclarations(exports);
|
|
35
|
+
}
|
|
36
|
+
return await sourceFile.save();
|
|
37
|
+
};
|
|
38
|
+
exports.writeTsFile = writeTsFile;
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/morpheus/writter/index.ts"],"names":[],"mappings":";;;AAAA,uCASkB;AAYX,MAAM,WAAW,GAAG,KAAK,EAAE,KAAqB,EAAgB,EAAE;IACrE,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAC,GAAG,KAAK,CAAC;IAE7F,MAAM,OAAO,GAAG,IAAI,kBAAO,CAAC;QACxB,gBAAgB,EAAE,GAAG,QAAQ,gBAAgB;QAC7C,2BAA2B,EAAE,IAAI;KACpC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CACvC,GAAG,YAAY,IAAI,QAAQ,IAAI,QAAQ,KAAK,EAC5C,EAAE,EACF,EAAC,SAAS,EAAE,IAAI,EAAC,CACpB,CAAC;IAEF,IAAI,UAAU,EAAE;QACZ,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACvB,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;gBACzC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9B,YAAY,CAAC,WAAW,CAAC;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;iBACpB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;KACN;IAED,IAAI,SAAS,EAAE;QACX,UAAU,CAAC,oBAAoB,CAAC;YAC5B,eAAe,EAAE,kCAAuB,CAAC,KAAK;YAC9C,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,SAAS;SAC1B,CAAC,CAAC;KACN;IAED,IAAI,OAAO,EAAE;QACT,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;KAC7C;IAED,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC,CAAC;AA3CW,QAAA,WAAW,eA2CtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'mocha';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("mocha");
|
|
4
|
+
const interface_1 = require("./morpheus/interface");
|
|
5
|
+
const morpheus_1 = require("./morpheus");
|
|
6
|
+
const chai_1 = require("chai");
|
|
7
|
+
class GClass {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.j = 'j string';
|
|
10
|
+
this.g = 10;
|
|
11
|
+
this.e = new Date();
|
|
12
|
+
this.a = [];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
let demoFiles = [
|
|
16
|
+
{
|
|
17
|
+
filename: 'somefile_name',
|
|
18
|
+
consts: [
|
|
19
|
+
{
|
|
20
|
+
name: 'GoodConst',
|
|
21
|
+
value: 'somevalue',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
// interfaces: [
|
|
25
|
+
// {
|
|
26
|
+
// name: 'GClass',
|
|
27
|
+
// properties: [
|
|
28
|
+
// {name: 'j', type: 'string'},
|
|
29
|
+
// {name: 'g', type: 'number'},
|
|
30
|
+
// {name: 'e', type: 'Date'},
|
|
31
|
+
// {name: 'a', type: 'object'},
|
|
32
|
+
// ],
|
|
33
|
+
// },
|
|
34
|
+
// ],
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
describe('Morpheus', () => {
|
|
38
|
+
let ginterfaceDefinition = null;
|
|
39
|
+
it('it should write TS files with consts and export them', async () => {
|
|
40
|
+
const project = await (0, morpheus_1.writeAllFilesToProject)(demoFiles, '.', 'src/client');
|
|
41
|
+
(0, chai_1.expect)(project).to.be.true;
|
|
42
|
+
});
|
|
43
|
+
it('it should create a interface definition from a class', async () => {
|
|
44
|
+
ginterfaceDefinition = (0, interface_1.createInterfaceFromClass)(GClass);
|
|
45
|
+
(0, chai_1.expect)(ginterfaceDefinition).to.not.be.null;
|
|
46
|
+
});
|
|
47
|
+
it('it should create TS files with consts and interfaces', async () => {
|
|
48
|
+
// Add the create ginterfaceDefinition
|
|
49
|
+
demoFiles[0].interfaces = [ginterfaceDefinition];
|
|
50
|
+
const project = await (0, morpheus_1.writeAllFilesToProject)(demoFiles, '.', 'src/client');
|
|
51
|
+
(0, chai_1.expect)(project).to.be.true;
|
|
52
|
+
});
|
|
53
|
+
// TODO for interfaces
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=morpheus.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"morpheus.test.js","sourceRoot":"","sources":["../src/morpheus.test.ts"],"names":[],"mappings":";;AAAA,iBAAe;AAEf,oDAAmF;AACnF,yCAAgE;AAEhE,+BAA4B;AAE5B,MAAM,MAAM;IAAZ;QACI,MAAC,GAAW,UAAU,CAAC;QAEvB,MAAC,GAAW,EAAE,CAAC;QAEf,MAAC,GAAS,IAAI,IAAI,EAAE,CAAC;QAErB,MAAC,GAAQ,EAAE,CAAC;IAChB,CAAC;CAAA;AAED,IAAI,SAAS,GAAmB;IAC5B;QACI,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,WAAW;aACrB;SACJ;QACD,gBAAgB;QAChB,QAAQ;QACR,0BAA0B;QAC1B,wBAAwB;QACxB,2CAA2C;QAC3C,2CAA2C;QAC3C,yCAAyC;QACzC,2CAA2C;QAC3C,aAAa;QACb,SAAS;QACT,KAAK;KACR;CACJ,CAAC;AAEF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACtB,IAAI,oBAAoB,GAAwB,IAAI,CAAC;IACrD,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAsB,EAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAC3E,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QAClE,oBAAoB,GAAG,IAAA,oCAAwB,EAAC,MAAM,CAAC,CAAC;QACxD,IAAA,aAAM,EAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QAClE,sCAAsC;QACtC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAsB,EAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAC3E,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,sBAAsB;AAC1B,CAAC,CAAC,CAAC"}
|
package/dist/ts.d.ts
ADDED
package/dist/ts.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
class G {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.j = "j string";
|
|
4
|
+
this.g = 10;
|
|
5
|
+
this.e = new Date();
|
|
6
|
+
this.a = [];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
const Ginstance = new G();
|
|
10
|
+
const keys = Object.getOwnPropertyNames(Ginstance);
|
|
11
|
+
console.log("keys", keys);
|
|
12
|
+
console.log("keys typeof", typeof Ginstance["g"]);
|
|
13
|
+
//# sourceMappingURL=ts.js.map
|
package/dist/ts.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts.js","sourceRoot":"","sources":["../src/ts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;IAAP;QACI,MAAC,GAAW,UAAU,CAAA;QAEtB,MAAC,GAAW,EAAE,CAAA;QAEd,MAAC,GAAS,IAAI,IAAI,EAAE,CAAC;QAErB,MAAC,GAAQ,EAAE,CAAA;IACf,CAAC;CAAA;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;AAE1B,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAEnD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE1B,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const JSONDATA: (data: any) => Record<string, any> | string | null;
|
|
2
|
+
/**
|
|
3
|
+
* CapitalizeFirstLetter
|
|
4
|
+
* @param txt
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare function capText(txt: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* To Snake case and in upper case
|
|
10
|
+
* @param txt
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export declare const toSnakeUpper: (txt: string) => string;
|
|
14
|
+
export default JSONDATA;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.toSnakeUpper = exports.capText = exports.JSONDATA = void 0;
|
|
7
|
+
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
8
|
+
const snakeCase_1 = __importDefault(require("lodash/snakeCase"));
|
|
9
|
+
const toUpper_1 = __importDefault(require("lodash/toUpper"));
|
|
10
|
+
const JSONDATA = (data) => {
|
|
11
|
+
if ((0, isEmpty_1.default)(data) || !data) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
if (typeof data !== "object") {
|
|
16
|
+
return JSON.parse(data);
|
|
17
|
+
}
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
// console.log('error trying to parse response data');
|
|
22
|
+
return data;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.JSONDATA = JSONDATA;
|
|
26
|
+
/**
|
|
27
|
+
* CapitalizeFirstLetter
|
|
28
|
+
* @param txt
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
function capText(txt) {
|
|
32
|
+
return txt.charAt(0).toUpperCase() + txt.slice(1); //or if you want lowercase the rest txt.slice(1).toLowerCase();
|
|
33
|
+
}
|
|
34
|
+
exports.capText = capText;
|
|
35
|
+
/**
|
|
36
|
+
* To Snake case and in upper case
|
|
37
|
+
* @param txt
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
const toSnakeUpper = (txt) => {
|
|
41
|
+
return (0, toUpper_1.default)((0, snakeCase_1.default)(txt));
|
|
42
|
+
};
|
|
43
|
+
exports.toSnakeUpper = toSnakeUpper;
|
|
44
|
+
exports.default = exports.JSONDATA;
|
|
45
|
+
//# sourceMappingURL=text.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.utils.js","sourceRoot":"","sources":["../../src/utils/text.utils.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqC;AACrC,iEAAyC;AACzC,6DAAqC;AAE9B,MAAM,QAAQ,GAAG,CAAC,IAAS,EAAuC,EAAE;IACzE,IAAI,IAAA,iBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IAED,IAAI;QACF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;QACd,sDAAsD;QACtD,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAdW,QAAA,QAAQ,YAcnB;AAEF;;;;GAIG;AACH,SAAgB,OAAO,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,+DAA+D;AACpH,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE;IAClD,OAAO,IAAA,iBAAO,EAAC,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF,kBAAe,gBAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@roadmanjs/utils",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "Shared utilities to use for any other package",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"lint": "tslint \"src/**/*.ts\" --project tsconfig.json",
|
|
38
38
|
"build": "rm -rf dist && ./node_modules/.bin/tsc --skipLibCheck",
|
|
39
39
|
"test": "mocha src/*test.ts --exit",
|
|
40
|
+
"morph": "mocha src/morpheus.test.ts --exit",
|
|
40
41
|
"prepublishOnly": "npm run build",
|
|
41
42
|
"eslint": "eslint ./src --fix --ext=ts"
|
|
42
43
|
},
|
|
@@ -84,6 +85,7 @@
|
|
|
84
85
|
"typescript": ">=2.0"
|
|
85
86
|
},
|
|
86
87
|
"dependencies": {
|
|
87
|
-
"shelljs": "^0.8.5"
|
|
88
|
+
"shelljs": "^0.8.5",
|
|
89
|
+
"ts-morph": "^13.0.3"
|
|
88
90
|
}
|
|
89
91
|
}
|