Package Exports
- naming-conventions-modeler
- naming-conventions-modeler/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (naming-conventions-modeler) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Naming Conventions Modeler
Simple and Fast TypeSafe
naming conventions modeler implemented with Proxy
; zero dependency.
Quick Start Guide
npm install --save naming-conventions-modeler
Original | snake_case | camelCase | PascalCase | kebab-case | MACRO_CASE | Train-Case | flatcase | no case |
---|---|---|---|---|---|---|---|---|
RegExr | reg_exr | regExr | RegExr | reg-exr | REG_EXR | Reg-Exr | regexr | Reg Exr |
PCRE | pcre | pcre | PCRE | pcre | PCRE | PCRE | pcre | PCRE |
JavaScript | java_script | javaScript | JavaScript | java-script | JAVA_SCRIPT | Java-Script | javascript | Java Script |
JSProgrammingLanguage | js_programming_language | jsProgrammingLanguage | JSProgrammingLanguage | js-programming-language | JS_PROGRAMMING_LANGUAGE | JS-Programming-Language | jsprogramminglanguage | JS Programming Language |
OTP | otp | otp | OTP | otp | OTP | OTP | otp | OTP |
Train-Case | train_case | trainCase | TrainCase | train-case | TRAIN_CASE | Train-Case | traincase | Train Case |
__meta__ | meta | meta | Meta | meta | META | Meta | meta | meta |
camelCase | camel_case | camelCase | CamelCase | camel-case | CAMEL_CASE | Camel-Case | camelcase | camel Case |
_id | id | id | Id | id | ID | Id | id | id |
ID | id | id | ID | id | ID | ID | id | ID |
iD | id | id | ID | id | ID | ID | id | iD |
id | id | id | Id | id | ID | Id | id | id |
Id | id | id | Id | id | ID | Id | id | Id |
0123 | 0123 | 0123 | 0123 | 0123 | 0123 | 0123 | 0123 | 0123 |
_-$#@ | $#@ | $#@ | $#@ | $#@ | $#@ | $#@ | $#@ | $#@ |
Modeler
import { Modeler, lookup } from 'naming-conventions-modeler';
let obj = {
_id: 123,
TestValue: 'test value',
data: {
_id: 456,
test_value: '456',
},
items: [
{
_id: 789,
test_value: '789',
},
],
__meata__: 'metadata',
};
type camelObj = {
// type safety support
id: number;
testValue: string;
data: {
id: number;
testValue: string;
[x: string]: any;
};
items: [
{
id: number;
testValue: string;
},
];
meta: string;
[x: string]: any;
};
// Replace misspell keys by regex
obj = lookup(obj, { '__me.*ta__': '__meta__' });
const model = Modeler.build<camelObj>(obj, 'camelCase');
console.log(model.id); // 123
console.log(model.testValue); // test value
console.log(model.TestValue); // test value
console.log(model.data.id); // 456
console.log(model.items[0].testValue); // 789
// Set value dynamically
model.NO_name = 'no name';
model.NO_VALUE = 'no value';
console.log(model.noName); // no name
console.log(model.noValue); // no value
/**
* It takes an convention model and converts all properties at once
*/
Modeler.convert(model);
console.log(model);
/**
* {
* data: { id: 456, testValue: '456' },
* items: [ { testValue: '789', id: 789 } ],
* testValue: 'test value',
* noName: 'no name',
* noValue: 'no value',
* id: 123,
* meta: 'metadata'
* }
*/
Tools
import { convention, toSnakeCase, isSnakeCase } from 'naming-conventions-modeler';
const str = 'JSProgrammingLanguage';
const camelCase = convention('camelCase');
console.log(camelCase.to(str)); // jsProgrammingLanguage
console.log(toSnakeCase(str)); // js_programming_language
console.log(isSnakeCase(toSnakeCase(str))); // true