
Security News
OWASP 2025 Top 10 Adds Software Supply Chain Failures, Ranked Top Community Concern
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.
Get rid of if statements in your code by using convenient api
npm install ifless
or
yarn add ifless
import Ifless from 'ifless';
const ifless = new Ifless();
const result = ifless.when(() => false, 'foo').when(() => true, 'bar').result;
console.log(result); // bar
import {IflessNumber} from 'ifless';
const iflessNumber = new IflessNumber(12);
const result = iflessNumber.whenLt(7, 'bar').whenGt(10, 'baz').result;
console.log(result); // baz
import {IflessString} from 'ifless';
const iflessString = new IflessString('O. Henry - The Remnants of the Code');
const result = iflessString
.whenStartsWith('Mark Twain', 'Author is Mark Twain')
.whenStartsWith('O. Henry', 'Author is O. Henry')
.whenStartsWith('Ernest Hemingway', 'Author is Ernest Hemingway').result;
console.log(result); // Author is O. Henry
// Reset previously performed conditions
// and run another ones without creating a new instance
const result2 = iflessString
.reset()
.whenOneOf(['lar', 'dor', 'qin'], 'one of [lar, dor, qin]')
.whenIncludes('Remnants', 'includes Remnants')
.whenStartsWith('Mark Twain', 'Starts with "Mark Twain"').result;
console.log(result2); // includes Remnants
const result3 = iflessString
.reset()
.whenEndsWith('Parade', 'Ends with "Parade"')
.whenEndsWith('Code', 'Ends with "Code"')
.whenEndsWith('Unfulfilment', 'Ends with "Unfulfilment"').result;
const result3 = iflessString
.reset()
.registerFn('containsHenry', (subject) => subject.includes('Henry'))
.registerFn('endsWithCode', (subject) => subject.endsWith('Code'))
.execute()
.whenPassed('contains Henry and ends with Code')
.result()
console.log(result2); // contains Henry and ends with Code
import {IflessObject} from 'ifless';
const iflessObject = new IflessObject({foo: 'bar'});
const result = iflessObject
.when(source => source.foo === 'qux', 'foo is qux')
.when(source => source.foo === 'bar', 'foo is bar')
.when(source => source.foo === 'corge', 'foo is corge').result;
console.log(result); // foo is bar
// the same with simplfied notation
const iflessObject2 = new IflessObject({foo: 'bar'});
const result2 = iflessObject2
.whenPathEq('foo', 'qux', 'foo is qux')
.whenPathEq('foo', 'bar', 'foo is bar')
.whenPathEq('foo', 'corge', 'foo is corge').result;
console.log(result2); // foo is bar
const iflessObject3 = new IflessObject({
message: 'feat: symbolics keys with added optional to definition, optional tuples',
author: {
name: 'ShawnMorreau'
},
date: new Date(2023, 6, 25),
});
const occurenceToEmojMapping : any = {
0: '✨',
1: '🌟',
2: '🚀',
};
const result = iflessObject3
.whenPathSatisfies(
'message',
(value: string) => value.startsWith('feat:'),
'is feature',
)
.andWhenPathEq('author.name', 'ShawnMorreau', 'is feature and author is ShawnMorreau')
.andWhenPathSatisfies('date', (value: Date) => value > new Date(2024, 1, 1), 'is feature and author is ShawnMorreau and after 2024')
.otherwise('other commit')
.whenOverResultFn(
(result: string) => result.includes('is feature'),
(result) => `${occurenceToEmojMapping[(result.match(/and/ig) || []).length]} ${result}`)
.result;
console.log(result); // 🌟 is feature and author is ShawnMorreau
const iflessObject4 = new IflessObject({foo: 'bar', bar: {baz: 'qux'}});
const result3 = iflessObject4
.whenPathSatisfies(
'foo',
value => value.startsWith('ro'),
'subject.foo starts with "ro"',
)
.whenHasKey('notExistingKey', 'has notExistingKey')
.whenPathSatisfies(
'bar.baz',
value => value.endsWith('ux'),
'subject.bar.baz ends with "ux"',
).result;
console.log(result3); // subject.bar.baz ends with "ux"

MIT © Rushan Alyautdinov
FAQs
Get rid of if statements in your code by using convenient api
We found that ifless demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.