mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-15 04:10:40 -07:00
refactor: use camelCase for JavaScript APIs
BREAKING CHANGE: Options and method names in JavaScript API are now renamed to cammelCase, for a complete list see #109
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import { deprecate } from './util/deprecate'
|
||||
import * as _ from './util/underscore'
|
||||
|
||||
export interface LiquidOptions {
|
||||
@@ -77,13 +76,6 @@ export function normalize (options?: LiquidOptions): NormalizedOptions {
|
||||
if (options.hasOwnProperty('root')) {
|
||||
options.root = normalizeStringArray(options.root)
|
||||
}
|
||||
for (const key of Object.keys(options)) {
|
||||
if (key.indexOf('_') > -1) {
|
||||
const newKey = key.replace(/_([a-z])/g, (_, ch) => ch.toUpperCase())
|
||||
deprecate(`${key} is deprecated, use ${newKey} instead.`, 109)
|
||||
options[newKey] = options[key]
|
||||
}
|
||||
}
|
||||
return options as NormalizedOptions
|
||||
}
|
||||
|
||||
|
||||
@@ -2,9 +2,7 @@ import { Drop } from '../drop/drop'
|
||||
|
||||
type PlainObject = {
|
||||
[key: string]: any
|
||||
liquid_method_missing?: (key: string) => any // eslint-disable-line
|
||||
to_liquid?: () => any // eslint-disable-line
|
||||
toLiquid?: () => any // eslint-disable-line
|
||||
toLiquid?: () => any
|
||||
}
|
||||
|
||||
export type Context = PlainObject | Drop
|
||||
export type Context = PlainObject | Drop
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ export default class Scope {
|
||||
async get (path: string) {
|
||||
const paths = await this.propertyAccessSeq(path)
|
||||
let ctx = this.findContextFor(paths[0]) || _.last(this.contexts)
|
||||
for (let path of paths) {
|
||||
for (const path of paths) {
|
||||
ctx = this.readProperty(ctx, path)
|
||||
if (_.isNil(ctx) && this.opts.strictVariables) {
|
||||
throw new TypeError(`undefined variable: ${path}`)
|
||||
|
||||
@@ -21,7 +21,7 @@ export class Filter {
|
||||
}
|
||||
async render (value: any, scope: Scope) {
|
||||
const argv: any[] = []
|
||||
for(let arg of this.args) {
|
||||
for (const arg of this.args) {
|
||||
if (isArray(arg)) argv.push([arg[0], await evalValue(arg[1], scope)])
|
||||
else argv.push(await evalValue(arg, scope))
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ export default class Value {
|
||||
}
|
||||
async value (scope: Scope) {
|
||||
let val = await evalExp(this.initial, scope)
|
||||
for (let filter of this.filters) {
|
||||
for (const filter of this.filters) {
|
||||
val = await filter.render(val, scope)
|
||||
}
|
||||
return val
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
const reported:{[key: string]: boolean} = {}
|
||||
|
||||
export function deprecate (msg: string, issue: number) {
|
||||
if (reported[msg]) return
|
||||
console.warn(msg + ` See: https://github.com/harttle/liquidjs/issues/${issue}`)
|
||||
reported[msg] = true
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
import { deprecate } from './deprecate'
|
||||
const toStr = Object.prototype.toString
|
||||
|
||||
/*
|
||||
@@ -29,18 +28,10 @@ export function promisify (fn: any) {
|
||||
export function stringify (value: any): string {
|
||||
if (isNil(value)) return ''
|
||||
value = toLiquid(value)
|
||||
if (isFunction(value.to_s)) {
|
||||
deprecate('to_s is deprecated, use toString instead.', 109)
|
||||
return value.to_s()
|
||||
}
|
||||
return String(value)
|
||||
}
|
||||
|
||||
export function toLiquid (value: any): any {
|
||||
if (isFunction(value.to_liquid)) {
|
||||
deprecate('to_liquid is deprecated, use toLiquid instead.', 109)
|
||||
return toLiquid(value.to_liquid())
|
||||
}
|
||||
if (isFunction(value.toLiquid)) return toLiquid(value.toLiquid())
|
||||
return value
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user