1.0.0 • Published 13 days ago

@xdanangelxoqenpm/nobis-laborum-dolorum v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
13 days ago

@xdanangelxoqenpm/nobis-laborum-dolorum

NPM

NPM version Bundlephobia minified + gzip build codecov NPM downloads

Parses CSS inline style to JavaScript object (camelCased):

StyleToJS(string)

Example

import parse from '@xdanangelxoqenpm/nobis-laborum-dolorum';

parse('background-color: #BADA55;');

Output:

{ "backgroundColor": "#BADA55" }

Replit | JSFiddle | Examples

Install

NPM:

npm install @xdanangelxoqenpm/nobis-laborum-dolorum --save

Yarn:

yarn add @xdanangelxoqenpm/nobis-laborum-dolorum

CDN:

<script src="https://unpkg.com/@xdanangelxoqenpm/nobis-laborum-dolorum@latest/umd/@xdanangelxoqenpm/nobis-laborum-dolorum.min.js"></script>
<script>
  window.StyleToJS(/* string */);
</script>

Usage

Import

Import with ES Modules:

import parse from '@xdanangelxoqenpm/nobis-laborum-dolorum';

Require with CommonJS:

const parse = require('@xdanangelxoqenpm/nobis-laborum-dolorum');

Parse style

Parse single declaration:

parse('line-height: 42');

Output:

{ "lineHeight": "42" }

Notice that the CSS property is camelCased.

Parse multiple declarations:

parse(`
  border-color: #ACE;
  z-index: 1337;
`);

Output:

{
  "borderColor": "#ACE",
  "zIndex": "1337"
}

Vendor prefix

Parse vendor prefix:

parse(`
  -webkit-transition: all 4s ease;
  -moz-transition: all 4s ease;
  -ms-transition: all 4s ease;
  -o-transition: all 4s ease;
  -khtml-transition: all 4s ease;
`);

Output:

{
  "webkitTransition": "all 4s ease",
  "mozTransition": "all 4s ease",
  "msTransition": "all 4s ease",
  "oTransition": "all 4s ease",
  "khtmlTransition": "all 4s ease"
}

Custom property

Parse custom property:

parse('--custom-property: #f00');

Output:

{ "--custom-property": "#f00" }

Unknown declaration

This library does not validate declarations, so unknown declarations can be parsed:

parse('the-answer: 42;');

Output:

{ "theAnswer": "42" }

Invalid declaration

Declarations with missing value are removed:

parse(`
  margin-top: ;
  margin-right: 1em;
`);

Output:

{ "marginRight": "1em" }

Other invalid declarations or arguments:

parse(); // {}
parse(null); // {}
parse(1); // {}
parse(true); // {}
parse('top:'); // {}
parse(':12px'); // {}
parse(':'); // {}
parse(';'); // {}

The following values will throw an error:

parse('top'); // Uncaught Error: property missing ':'
parse('/*'); // Uncaught Error: End of comment missing

Options

reactCompat

When option reactCompat is true, the vendor prefix will be capitalized:

parse(
  `
    -webkit-transition: all 4s ease;
    -moz-transition: all 4s ease;
    -ms-transition: all 4s ease;
    -o-transition: all 4s ease;
    -khtml-transition: all 4s ease;
  `,
  { reactCompat: true },
);

Output:

{
  "WebkitTransition": "all 4s ease",
  "MozTransition": "all 4s ease",
  "msTransition": "all 4s ease",
  "OTransition": "all 4s ease",
  "KhtmlTransition": "all 4s ease"
}

This removes the React warning:

Warning: Unsupported vendor-prefixed style property %s. Did you mean %s?%s", "oTransition", "OTransition"

Testing

Run tests with coverage:

npm test

Run tests in watch mode:

npm run test:watch

Lint files:

npm run lint

Fix lint errors:

npm run lint:fix

Release

Release and publish are automated by Release Please.

Special Thanks

License

MIT

matchsymbolsschemasigtermECMAScript 2020loggingUint8ArraybundlingeventEmitteremojitoStringTagoptionPromisebufferstoobjectprefixarraybuffercss variablepathratelimitterminales-abstractextraperformancees-shimsfullwidthES3viewAsyncIteratorapisequenceruntimeArrayBuffer#sliceArray.prototype.flattencommanddescriptorslibphonenumbernopeajvstreamcliefficientjwtreduxworkspace:*react posearktypeinputgetPrototypeOfECMAScript 2023superstructforEachaccessibilityenumerablepreprocessorfixed-widthcall-bindlaunchi18n3dRegExp#flagscjkfast-copymakepushdebuggersymlinkseventDispatcherdomconsumehttpsignalsfindLastserializerbrowserlistcensormochatoolsexitconfigurablepreserve-symlinksMicrosoftsuperagentinternalsharedponyfilljQuerychanneltypeerrorapollocore-jstranspilerreaduser-streamsgetOwnPropertyDescriptorpoint-freesymbolflages-shim APIeslint-plugineverymulti-packageTypedArraychildjapanesefunctiondependenciessettingsansiFloat64ArrayhasextendmobilexhrYAMLirqES7curriedlanguagestyleslinkjsonschemaboundconfigrfc4122es8postcssthrottlejsonairbnbcircularimportrmdirvariables in cssinterruptsInt32ArrayrangeerrorpositivesetImmediateECMAScript 7lessnativeauthenticationsymlinkinstallerpyyamlapphelpersstreamswatchhardlinksregexpframeworkbundlerinstallbcryptperformantfastcopyArray.prototype.flatMapArray.prototype.includesstatelesspropECMAScript 2016sharedarraybuffersetcontainsmacoslazycss nestingfastifyisConcatSpreadablevalidatorshebangeventsstylesheetfind-upavatelephonecode pointsjsargparseless.jsmruUint8ClampedArraytoolkitlesscssspringtoSortedlockfilepipediffmatchesimmerasciiWebSocketsentriesrequireschemeaccessorarraysshamsanitizeconnectdescriptioncallbackencryptionlook-uphigher-orderObject.isjson-schema-validationenvironmentnameopenprivate datapackage managergroupbabel-coreObject.definePropertyURLSearchParamsJSON-Schemacall-boundfolderES2016startersameValueZeroopenerbindautoprefixerdataViewtypesafeURLwarningspinnerrandomtypescriptuninstallflattenString.prototype.trimString.prototype.matchAllstatusconcatartwhichidtestingredactrapidregular expressionsomewalkcharactersbusyprogresswgetstartmonorepodescriptorexebyteOffsetObject.getPrototypeOfprotoidletc39lengthoffsetpropertiesutil.inspectspinnersdom-testing-librarywidthfseventsramdaes6stringpropertyeditoroptimistshrinkwrapFloat32ArrayendertswhatwgflatlrutesterstyleguidereactmapeslintArray.prototype.flatdeletejasminefilterReactiveExtensionssetPrototypeOfkeycolourvestinferencebufferfullieequalkoreanSymbol.toStringTagfunctionalInt16Arrayanimationdatastructuresigintkeysweakmapecmascriptparserjson-schema-validatorjavascriptexpressionObject.assignpromisejsdomwordwrapcoercibletypenegativespeedES2017estreehasOwnObservablesframergroupByzodcryptfindLastIndexStreamtacitl10npolyfilles7dataviewclassesnodejsspecslicexssregular expressionspersistentclass-validatorsafeclonestructuredCloneArray.prototype.containsES2023datestringifierauthRxJSserializepatchformqsmetadataArrayvalidationchinesepostcss-pluginObject.keyspromiseswebmkdirnumbertyped arraydeepreact-testing-libraryquerypackage.jsongesturesformattingfigletwalkingdebugArray.prototype.findLastIndextypedBigInt64ArrayinspectprototypeStreamsECMAScript 2021definePropertyPushposeES2020mimejson-schemaECMAScript 6react animationjsdiffio-tsextensionawesomesauceArray.prototype.filterparentsquerystringcallxtermflatMapECMAScript 2019trimRightcompareclassnamefilemixinsObservablelinewraptypesfetch256getoptES2022last$.extendweaksetReactiveXjoiECMAScript 3workerexpressstyled-componentsslotdefaultstreams2ArrayBufferthroattypeofcollection.es6websitenamesWebSockettraverseremovetermdeep-copydeepcopyrequestTypeBoxtouchequalityiterationstyle__proto__CSSStyleDeclarationpasswordWeakMapchaisideemitdeepcloneassertsdir0bootstrap csssearch@@toStringTagupvariablesES2021utilitycheckcreateresolveArray.prototype.findLastargumentopensgenericshttpstypedarraycolumnquotemergeStyleSheetwatchingtapecompileres2015nested cssRegExp.prototype.flagspnpm9JSONformsbatchwaapicodesMapObject.entriesxdgdeep-cloneWeakSetcss-in-jscharacterloggernegative zerologes5valuesduplexESnextReflect.getPrototypeOfECMAScript 2015es2016ECMAScript 2017RFC-64556to5compile lesseslintconfigsyntax.envgdprbannerpackagesanitizationcopytoArraygettercss lessmodulevaluemkdirselectronshimtextTypeScriptjestcommand-lineminimalconsoleUint16Arrayargsform-validationconstdayjsgetgradients css3fromastscheme-validationimmutableexit-codereadableiterateesUint32ArrayinvariantlinuxhandlerstrimStartglobSetbrowserslistincludestypanionmatchAllchromeECMAScript 2022testexecutabletakefastcloneparentcollectionfast-cloneIteratormoveconcurrencywrapregularreact-hook-formcomputed-typesisRxwritehooksES2019pureassertlimitedyupfantasy-land[[Prototype]]reducerfindoptimizerurlsless mixinsrgbsortedutilitiesbreaktimecallbindlintphonethreedefineclientObject.fromEntriessetterenvfindupmodulescorsmkdirpECMAScript 5less csscmdoncecurlformatbootstrap lessmime-dbpackagesstablees2018fsfast-deep-copyassertionarraywatchFileratevisualbyteLengthclassnamesobjectmiddlewareasyncinternal slotescape-0yamltrimLeftunicodesyntaxerrorless compilerbabelguidjsxcommanderObject.valuesharmonyspawnlookintrinsicdragdependency managermomentprotocol-buffersajaxwordbreakawaitreact-hooksdeterministicSymboldotenvFunction.prototype.nameplugindatareusefpeast-asian-widthserializationrobuststylingtasklistenerstslibhookformES2018uuidqueueMicrotaskletexecInt8Arraygetintrinsicgradients cssmake direrror-handlingstringifytddreadablestreamutilfile systemobjutilsargvdirectoryomitES2015BigUint64ArraycolumnsvalidshellerrorhashES6operating-systemargumentsreal-timewritablerm -frcsssortredux-toolkitHyBiiteratortrimchromiumcryptomimetypesprettycolorsreducetapxdg-openttyjsonpathcoloroutputbytenodeloadinggraphqltypedarrayscachetrimEndkarmabrowserprunewatcherfunctionscallboundparsecorelimitwindowsflagsfastvar_.extendbluebirdObjectpopmotiondropassignconcatMapregexESECMAScript 2018rmpicomatchArrayBuffer.prototype.sliceeslintpluginsignalprotobufes2017ES8zeroprocessES5queuefast-deep-clonenpmurla11ybddrecursiveUnderscoreindicatortostringtag
@xdanangelxoqenpm/ad-dolorum-odio@xdanangelxoqenpm/alias-rerum-occaecati@xdanangelxoqenpm/aperiam-tempore-sapiente@xdanangelxoqenpm/autem-quaerat-omnis@xdanangelxoqenpm/autem-sapiente-consequatur@xdanangelxoqenpm/beatae-iusto-accusantium@xdanangelxoqenpm/blanditiis-explicabo-magnam@xdanangelxoqenpm/corporis-ut-eligendi@xdanangelxoqenpm/corrupti-earum-nemo@xdanangelxoqenpm/asperiores-maiores-omnis@xdanangelxoqenpm/cupiditate-doloribus-beatae@xdanangelxoqenpm/libero-atque-dolore@xdanangelxoqenpm/magni-natus-harum@xdanangelxoqenpm/natus-sequi-facilis@xdanangelxoqenpm/nesciunt-praesentium-perspiciatis@xdanangelxoqenpm/nobis-fuga-odit@xdanangelxoqenpm/nulla-aut-aliquid@xdanangelxoqenpm/occaecati-optio-pariatur@xdanangelxoqenpm/officia-omnis-dignissimos@xdanangelxoqenpm/dolorem-aliquam-cumque@xdanangelxoqenpm/esse-ad-earum@xdanangelxoqenpm/est-temporibus-rem@xdanangelxoqenpm/excepturi-excepturi-harum@xdanangelxoqenpm/quaerat-occaecati-nobis@xdanangelxoqenpm/quam-laboriosam-non@xdanangelxoqenpm/quibusdam-autem-quas@xdanangelxoqenpm/ipsam-magnam-error@xdanangelxoqenpm/itaque-blanditiis-laboriosam@xdanangelxoqenpm/iure-quia-velit@xdanangelxoqenpm/iusto-nemo-expedita@xdanangelxoqenpm/explicabo-dolorum-soluta@xdanangelxoqenpm/fuga-nesciunt-nulla@xdanangelxoqenpm/harum-voluptates-eos@xdanangelxoqenpm/id-quas-voluptate@xdanangelxoqenpm/illum-nobis-ipsum@xdanangelxoqenpm/ratione-expedita-beatae@xdanangelxoqenpm/ratione-modi-a@xdanangelxoqenpm/placeat-quis-accusantium@xdanangelxoqenpm/possimus-est-numquam@xdanangelxoqenpm/possimus-expedita-corrupti@xdanangelxoqenpm/maxime-voluptatem-autem@xdanangelxoqenpm/molestiae-qui-repellat@xdanangelxoqenpm/reiciendis-hic-similique@xdanangelxoqenpm/rem-cum-quod@xdanangelxoqenpm/repellat-quis-laudantium@xdanangelxoqenpm/reprehenderit-similique-sunt@xdanangelxoqenpm/sapiente-earum-sit@xdanangelxoqenpm/similique-reiciendis-totam@xdanangelxoqenpm/voluptatem-est-totam@xdanangelxoqenpm/voluptatum-eaque-accusantium@xdanangelxoqenpm/tenetur-aspernatur-fuga@xdanangelxoqenpm/tenetur-sequi-ab@xdanangelxoqenpm/unde-aliquam-facilis@xdanangelxoqenpm/ut-nihil-architecto@xdanangelxoqenpm/veniam-accusantium-eligendi@xdanangelxoqenpm/sit-esse-aut@xdanangelxoqenpm/tempora-optio-nisi
1.0.0

13 days ago