Giter VIP home page Giter VIP logo

naming-conventions-modeler's Introduction

Naming Conventions Modeler

npm Coverage npm GitHub Gitter documentation Build, Test and Publish

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

License

MIT

naming-conventions-modeler's People

Contributors

deepsource-io[bot] avatar pourdaavar avatar vhidvz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.